# 0 "/home/megabug/Arduino/Test/build/sketch/Test.ino.cpp"
# 1 "/home/megabug/Arduino/Test//"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/autoconf.h" 1
# 0 "<command-line>" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h" 1

# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h"

# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h"

# 76 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h"

# 92 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/zephyr_stdint.h"

# 0 "<command-line>" 2
# 1 "/home/megabug/Arduino/Test/build/sketch/Test.ino.cpp"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 1
/*
 * Copyright (c) 2022 Dhruva Gole
 *
 * SPDX-License-Identifier: Apache-2.0
 */

       

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 1
/*
  Arduino API main include
  Copyright (c) 2016 Arduino LLC. All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/




// version 1.5.1


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Binary.h" 1
/*
  binary.h - Definitions for binary constants
  Deprecated -- use 0b binary literals instead
  Copyright (c) 2006 David A. Mellis.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/




/* If supported, 0b binary literals are preferable to these constants.
 * In that case, warn the user about these being deprecated (if possible). */

  /* C++14 introduces binary literals; C++11 introduces [[deprecated()]] */
# 37 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Binary.h"
enum {
  B0 [[deprecated("use " "0b0" " instead")]] = 0,
  B00 [[deprecated("use " "0b00" " instead")]] = 0,
  B000 [[deprecated("use " "0b000" " instead")]] = 0,
  B0000 [[deprecated("use " "0b0000" " instead")]] = 0,
  B00000 [[deprecated("use " "0b00000" " instead")]] = 0,
  B000000 [[deprecated("use " "0b000000" " instead")]] = 0,
  B0000000 [[deprecated("use " "0b0000000" " instead")]] = 0,
  B00000000 [[deprecated("use " "0b00000000" " instead")]] = 0,
  B1 [[deprecated("use " "0b1" " instead")]] = 1,
  B01 [[deprecated("use " "0b01" " instead")]] = 1,
  B001 [[deprecated("use " "0b001" " instead")]] = 1,
  B0001 [[deprecated("use " "0b0001" " instead")]] = 1,
  B00001 [[deprecated("use " "0b00001" " instead")]] = 1,
  B000001 [[deprecated("use " "0b000001" " instead")]] = 1,
  B0000001 [[deprecated("use " "0b0000001" " instead")]] = 1,
  B00000001 [[deprecated("use " "0b00000001" " instead")]] = 1,
  B10 [[deprecated("use " "0b10" " instead")]] = 2,
  B010 [[deprecated("use " "0b010" " instead")]] = 2,
  B0010 [[deprecated("use " "0b0010" " instead")]] = 2,
  B00010 [[deprecated("use " "0b00010" " instead")]] = 2,
  B000010 [[deprecated("use " "0b000010" " instead")]] = 2,
  B0000010 [[deprecated("use " "0b0000010" " instead")]] = 2,
  B00000010 [[deprecated("use " "0b00000010" " instead")]] = 2,
  B11 [[deprecated("use " "0b11" " instead")]] = 3,
  B011 [[deprecated("use " "0b011" " instead")]] = 3,
  B0011 [[deprecated("use " "0b0011" " instead")]] = 3,
  B00011 [[deprecated("use " "0b00011" " instead")]] = 3,
  B000011 [[deprecated("use " "0b000011" " instead")]] = 3,
  B0000011 [[deprecated("use " "0b0000011" " instead")]] = 3,
  B00000011 [[deprecated("use " "0b00000011" " instead")]] = 3,
  B100 [[deprecated("use " "0b100" " instead")]] = 4,
  B0100 [[deprecated("use " "0b0100" " instead")]] = 4,
  B00100 [[deprecated("use " "0b00100" " instead")]] = 4,
  B000100 [[deprecated("use " "0b000100" " instead")]] = 4,
  B0000100 [[deprecated("use " "0b0000100" " instead")]] = 4,
  B00000100 [[deprecated("use " "0b00000100" " instead")]] = 4,
  B101 [[deprecated("use " "0b101" " instead")]] = 5,
  B0101 [[deprecated("use " "0b0101" " instead")]] = 5,
  B00101 [[deprecated("use " "0b00101" " instead")]] = 5,
  B000101 [[deprecated("use " "0b000101" " instead")]] = 5,
  B0000101 [[deprecated("use " "0b0000101" " instead")]] = 5,
  B00000101 [[deprecated("use " "0b00000101" " instead")]] = 5,
  B110 [[deprecated("use " "0b110" " instead")]] = 6,
  B0110 [[deprecated("use " "0b0110" " instead")]] = 6,
  B00110 [[deprecated("use " "0b00110" " instead")]] = 6,
  B000110 [[deprecated("use " "0b000110" " instead")]] = 6,
  B0000110 [[deprecated("use " "0b0000110" " instead")]] = 6,
  B00000110 [[deprecated("use " "0b00000110" " instead")]] = 6,
  B111 [[deprecated("use " "0b111" " instead")]] = 7,
  B0111 [[deprecated("use " "0b0111" " instead")]] = 7,
  B00111 [[deprecated("use " "0b00111" " instead")]] = 7,
  B000111 [[deprecated("use " "0b000111" " instead")]] = 7,
  B0000111 [[deprecated("use " "0b0000111" " instead")]] = 7,
  B00000111 [[deprecated("use " "0b00000111" " instead")]] = 7,
  B1000 [[deprecated("use " "0b1000" " instead")]] = 8,
  B01000 [[deprecated("use " "0b01000" " instead")]] = 8,
  B001000 [[deprecated("use " "0b001000" " instead")]] = 8,
  B0001000 [[deprecated("use " "0b0001000" " instead")]] = 8,
  B00001000 [[deprecated("use " "0b00001000" " instead")]] = 8,
  B1001 [[deprecated("use " "0b1001" " instead")]] = 9,
  B01001 [[deprecated("use " "0b01001" " instead")]] = 9,
  B001001 [[deprecated("use " "0b001001" " instead")]] = 9,
  B0001001 [[deprecated("use " "0b0001001" " instead")]] = 9,
  B00001001 [[deprecated("use " "0b00001001" " instead")]] = 9,
  B1010 [[deprecated("use " "0b1010" " instead")]] = 10,
  B01010 [[deprecated("use " "0b01010" " instead")]] = 10,
  B001010 [[deprecated("use " "0b001010" " instead")]] = 10,
  B0001010 [[deprecated("use " "0b0001010" " instead")]] = 10,
  B00001010 [[deprecated("use " "0b00001010" " instead")]] = 10,
  B1011 [[deprecated("use " "0b1011" " instead")]] = 11,
  B01011 [[deprecated("use " "0b01011" " instead")]] = 11,
  B001011 [[deprecated("use " "0b001011" " instead")]] = 11,
  B0001011 [[deprecated("use " "0b0001011" " instead")]] = 11,
  B00001011 [[deprecated("use " "0b00001011" " instead")]] = 11,
  B1100 [[deprecated("use " "0b1100" " instead")]] = 12,
  B01100 [[deprecated("use " "0b01100" " instead")]] = 12,
  B001100 [[deprecated("use " "0b001100" " instead")]] = 12,
  B0001100 [[deprecated("use " "0b0001100" " instead")]] = 12,
  B00001100 [[deprecated("use " "0b00001100" " instead")]] = 12,
  B1101 [[deprecated("use " "0b1101" " instead")]] = 13,
  B01101 [[deprecated("use " "0b01101" " instead")]] = 13,
  B001101 [[deprecated("use " "0b001101" " instead")]] = 13,
  B0001101 [[deprecated("use " "0b0001101" " instead")]] = 13,
  B00001101 [[deprecated("use " "0b00001101" " instead")]] = 13,
  B1110 [[deprecated("use " "0b1110" " instead")]] = 14,
  B01110 [[deprecated("use " "0b01110" " instead")]] = 14,
  B001110 [[deprecated("use " "0b001110" " instead")]] = 14,
  B0001110 [[deprecated("use " "0b0001110" " instead")]] = 14,
  B00001110 [[deprecated("use " "0b00001110" " instead")]] = 14,
  B1111 [[deprecated("use " "0b1111" " instead")]] = 15,
  B01111 [[deprecated("use " "0b01111" " instead")]] = 15,
  B001111 [[deprecated("use " "0b001111" " instead")]] = 15,
  B0001111 [[deprecated("use " "0b0001111" " instead")]] = 15,
  B00001111 [[deprecated("use " "0b00001111" " instead")]] = 15,
  B10000 [[deprecated("use " "0b10000" " instead")]] = 16,
  B010000 [[deprecated("use " "0b010000" " instead")]] = 16,
  B0010000 [[deprecated("use " "0b0010000" " instead")]] = 16,
  B00010000 [[deprecated("use " "0b00010000" " instead")]] = 16,
  B10001 [[deprecated("use " "0b10001" " instead")]] = 17,
  B010001 [[deprecated("use " "0b010001" " instead")]] = 17,
  B0010001 [[deprecated("use " "0b0010001" " instead")]] = 17,
  B00010001 [[deprecated("use " "0b00010001" " instead")]] = 17,
  B10010 [[deprecated("use " "0b10010" " instead")]] = 18,
  B010010 [[deprecated("use " "0b010010" " instead")]] = 18,
  B0010010 [[deprecated("use " "0b0010010" " instead")]] = 18,
  B00010010 [[deprecated("use " "0b00010010" " instead")]] = 18,
  B10011 [[deprecated("use " "0b10011" " instead")]] = 19,
  B010011 [[deprecated("use " "0b010011" " instead")]] = 19,
  B0010011 [[deprecated("use " "0b0010011" " instead")]] = 19,
  B00010011 [[deprecated("use " "0b00010011" " instead")]] = 19,
  B10100 [[deprecated("use " "0b10100" " instead")]] = 20,
  B010100 [[deprecated("use " "0b010100" " instead")]] = 20,
  B0010100 [[deprecated("use " "0b0010100" " instead")]] = 20,
  B00010100 [[deprecated("use " "0b00010100" " instead")]] = 20,
  B10101 [[deprecated("use " "0b10101" " instead")]] = 21,
  B010101 [[deprecated("use " "0b010101" " instead")]] = 21,
  B0010101 [[deprecated("use " "0b0010101" " instead")]] = 21,
  B00010101 [[deprecated("use " "0b00010101" " instead")]] = 21,
  B10110 [[deprecated("use " "0b10110" " instead")]] = 22,
  B010110 [[deprecated("use " "0b010110" " instead")]] = 22,
  B0010110 [[deprecated("use " "0b0010110" " instead")]] = 22,
  B00010110 [[deprecated("use " "0b00010110" " instead")]] = 22,
  B10111 [[deprecated("use " "0b10111" " instead")]] = 23,
  B010111 [[deprecated("use " "0b010111" " instead")]] = 23,
  B0010111 [[deprecated("use " "0b0010111" " instead")]] = 23,
  B00010111 [[deprecated("use " "0b00010111" " instead")]] = 23,
  B11000 [[deprecated("use " "0b11000" " instead")]] = 24,
  B011000 [[deprecated("use " "0b011000" " instead")]] = 24,
  B0011000 [[deprecated("use " "0b0011000" " instead")]] = 24,
  B00011000 [[deprecated("use " "0b00011000" " instead")]] = 24,
  B11001 [[deprecated("use " "0b11001" " instead")]] = 25,
  B011001 [[deprecated("use " "0b011001" " instead")]] = 25,
  B0011001 [[deprecated("use " "0b0011001" " instead")]] = 25,
  B00011001 [[deprecated("use " "0b00011001" " instead")]] = 25,
  B11010 [[deprecated("use " "0b11010" " instead")]] = 26,
  B011010 [[deprecated("use " "0b011010" " instead")]] = 26,
  B0011010 [[deprecated("use " "0b0011010" " instead")]] = 26,
  B00011010 [[deprecated("use " "0b00011010" " instead")]] = 26,
  B11011 [[deprecated("use " "0b11011" " instead")]] = 27,
  B011011 [[deprecated("use " "0b011011" " instead")]] = 27,
  B0011011 [[deprecated("use " "0b0011011" " instead")]] = 27,
  B00011011 [[deprecated("use " "0b00011011" " instead")]] = 27,
  B11100 [[deprecated("use " "0b11100" " instead")]] = 28,
  B011100 [[deprecated("use " "0b011100" " instead")]] = 28,
  B0011100 [[deprecated("use " "0b0011100" " instead")]] = 28,
  B00011100 [[deprecated("use " "0b00011100" " instead")]] = 28,
  B11101 [[deprecated("use " "0b11101" " instead")]] = 29,
  B011101 [[deprecated("use " "0b011101" " instead")]] = 29,
  B0011101 [[deprecated("use " "0b0011101" " instead")]] = 29,
  B00011101 [[deprecated("use " "0b00011101" " instead")]] = 29,
  B11110 [[deprecated("use " "0b11110" " instead")]] = 30,
  B011110 [[deprecated("use " "0b011110" " instead")]] = 30,
  B0011110 [[deprecated("use " "0b0011110" " instead")]] = 30,
  B00011110 [[deprecated("use " "0b00011110" " instead")]] = 30,
  B11111 [[deprecated("use " "0b11111" " instead")]] = 31,
  B011111 [[deprecated("use " "0b011111" " instead")]] = 31,
  B0011111 [[deprecated("use " "0b0011111" " instead")]] = 31,
  B00011111 [[deprecated("use " "0b00011111" " instead")]] = 31,
  B100000 [[deprecated("use " "0b100000" " instead")]] = 32,
  B0100000 [[deprecated("use " "0b0100000" " instead")]] = 32,
  B00100000 [[deprecated("use " "0b00100000" " instead")]] = 32,
  B100001 [[deprecated("use " "0b100001" " instead")]] = 33,
  B0100001 [[deprecated("use " "0b0100001" " instead")]] = 33,
  B00100001 [[deprecated("use " "0b00100001" " instead")]] = 33,
  B100010 [[deprecated("use " "0b100010" " instead")]] = 34,
  B0100010 [[deprecated("use " "0b0100010" " instead")]] = 34,
  B00100010 [[deprecated("use " "0b00100010" " instead")]] = 34,
  B100011 [[deprecated("use " "0b100011" " instead")]] = 35,
  B0100011 [[deprecated("use " "0b0100011" " instead")]] = 35,
  B00100011 [[deprecated("use " "0b00100011" " instead")]] = 35,
  B100100 [[deprecated("use " "0b100100" " instead")]] = 36,
  B0100100 [[deprecated("use " "0b0100100" " instead")]] = 36,
  B00100100 [[deprecated("use " "0b00100100" " instead")]] = 36,
  B100101 [[deprecated("use " "0b100101" " instead")]] = 37,
  B0100101 [[deprecated("use " "0b0100101" " instead")]] = 37,
  B00100101 [[deprecated("use " "0b00100101" " instead")]] = 37,
  B100110 [[deprecated("use " "0b100110" " instead")]] = 38,
  B0100110 [[deprecated("use " "0b0100110" " instead")]] = 38,
  B00100110 [[deprecated("use " "0b00100110" " instead")]] = 38,
  B100111 [[deprecated("use " "0b100111" " instead")]] = 39,
  B0100111 [[deprecated("use " "0b0100111" " instead")]] = 39,
  B00100111 [[deprecated("use " "0b00100111" " instead")]] = 39,
  B101000 [[deprecated("use " "0b101000" " instead")]] = 40,
  B0101000 [[deprecated("use " "0b0101000" " instead")]] = 40,
  B00101000 [[deprecated("use " "0b00101000" " instead")]] = 40,
  B101001 [[deprecated("use " "0b101001" " instead")]] = 41,
  B0101001 [[deprecated("use " "0b0101001" " instead")]] = 41,
  B00101001 [[deprecated("use " "0b00101001" " instead")]] = 41,
  B101010 [[deprecated("use " "0b101010" " instead")]] = 42,
  B0101010 [[deprecated("use " "0b0101010" " instead")]] = 42,
  B00101010 [[deprecated("use " "0b00101010" " instead")]] = 42,
  B101011 [[deprecated("use " "0b101011" " instead")]] = 43,
  B0101011 [[deprecated("use " "0b0101011" " instead")]] = 43,
  B00101011 [[deprecated("use " "0b00101011" " instead")]] = 43,
  B101100 [[deprecated("use " "0b101100" " instead")]] = 44,
  B0101100 [[deprecated("use " "0b0101100" " instead")]] = 44,
  B00101100 [[deprecated("use " "0b00101100" " instead")]] = 44,
  B101101 [[deprecated("use " "0b101101" " instead")]] = 45,
  B0101101 [[deprecated("use " "0b0101101" " instead")]] = 45,
  B00101101 [[deprecated("use " "0b00101101" " instead")]] = 45,
  B101110 [[deprecated("use " "0b101110" " instead")]] = 46,
  B0101110 [[deprecated("use " "0b0101110" " instead")]] = 46,
  B00101110 [[deprecated("use " "0b00101110" " instead")]] = 46,
  B101111 [[deprecated("use " "0b101111" " instead")]] = 47,
  B0101111 [[deprecated("use " "0b0101111" " instead")]] = 47,
  B00101111 [[deprecated("use " "0b00101111" " instead")]] = 47,
  B110000 [[deprecated("use " "0b110000" " instead")]] = 48,
  B0110000 [[deprecated("use " "0b0110000" " instead")]] = 48,
  B00110000 [[deprecated("use " "0b00110000" " instead")]] = 48,
  B110001 [[deprecated("use " "0b110001" " instead")]] = 49,
  B0110001 [[deprecated("use " "0b0110001" " instead")]] = 49,
  B00110001 [[deprecated("use " "0b00110001" " instead")]] = 49,
  B110010 [[deprecated("use " "0b110010" " instead")]] = 50,
  B0110010 [[deprecated("use " "0b0110010" " instead")]] = 50,
  B00110010 [[deprecated("use " "0b00110010" " instead")]] = 50,
  B110011 [[deprecated("use " "0b110011" " instead")]] = 51,
  B0110011 [[deprecated("use " "0b0110011" " instead")]] = 51,
  B00110011 [[deprecated("use " "0b00110011" " instead")]] = 51,
  B110100 [[deprecated("use " "0b110100" " instead")]] = 52,
  B0110100 [[deprecated("use " "0b0110100" " instead")]] = 52,
  B00110100 [[deprecated("use " "0b00110100" " instead")]] = 52,
  B110101 [[deprecated("use " "0b110101" " instead")]] = 53,
  B0110101 [[deprecated("use " "0b0110101" " instead")]] = 53,
  B00110101 [[deprecated("use " "0b00110101" " instead")]] = 53,
  B110110 [[deprecated("use " "0b110110" " instead")]] = 54,
  B0110110 [[deprecated("use " "0b0110110" " instead")]] = 54,
  B00110110 [[deprecated("use " "0b00110110" " instead")]] = 54,
  B110111 [[deprecated("use " "0b110111" " instead")]] = 55,
  B0110111 [[deprecated("use " "0b0110111" " instead")]] = 55,
  B00110111 [[deprecated("use " "0b00110111" " instead")]] = 55,
  B111000 [[deprecated("use " "0b111000" " instead")]] = 56,
  B0111000 [[deprecated("use " "0b0111000" " instead")]] = 56,
  B00111000 [[deprecated("use " "0b00111000" " instead")]] = 56,
  B111001 [[deprecated("use " "0b111001" " instead")]] = 57,
  B0111001 [[deprecated("use " "0b0111001" " instead")]] = 57,
  B00111001 [[deprecated("use " "0b00111001" " instead")]] = 57,
  B111010 [[deprecated("use " "0b111010" " instead")]] = 58,
  B0111010 [[deprecated("use " "0b0111010" " instead")]] = 58,
  B00111010 [[deprecated("use " "0b00111010" " instead")]] = 58,
  B111011 [[deprecated("use " "0b111011" " instead")]] = 59,
  B0111011 [[deprecated("use " "0b0111011" " instead")]] = 59,
  B00111011 [[deprecated("use " "0b00111011" " instead")]] = 59,
  B111100 [[deprecated("use " "0b111100" " instead")]] = 60,
  B0111100 [[deprecated("use " "0b0111100" " instead")]] = 60,
  B00111100 [[deprecated("use " "0b00111100" " instead")]] = 60,
  B111101 [[deprecated("use " "0b111101" " instead")]] = 61,
  B0111101 [[deprecated("use " "0b0111101" " instead")]] = 61,
  B00111101 [[deprecated("use " "0b00111101" " instead")]] = 61,
  B111110 [[deprecated("use " "0b111110" " instead")]] = 62,
  B0111110 [[deprecated("use " "0b0111110" " instead")]] = 62,
  B00111110 [[deprecated("use " "0b00111110" " instead")]] = 62,
  B111111 [[deprecated("use " "0b111111" " instead")]] = 63,
  B0111111 [[deprecated("use " "0b0111111" " instead")]] = 63,
  B00111111 [[deprecated("use " "0b00111111" " instead")]] = 63,
  B1000000 [[deprecated("use " "0b1000000" " instead")]] = 64,
  B01000000 [[deprecated("use " "0b01000000" " instead")]] = 64,
  B1000001 [[deprecated("use " "0b1000001" " instead")]] = 65,
  B01000001 [[deprecated("use " "0b01000001" " instead")]] = 65,
  B1000010 [[deprecated("use " "0b1000010" " instead")]] = 66,
  B01000010 [[deprecated("use " "0b01000010" " instead")]] = 66,
  B1000011 [[deprecated("use " "0b1000011" " instead")]] = 67,
  B01000011 [[deprecated("use " "0b01000011" " instead")]] = 67,
  B1000100 [[deprecated("use " "0b1000100" " instead")]] = 68,
  B01000100 [[deprecated("use " "0b01000100" " instead")]] = 68,
  B1000101 [[deprecated("use " "0b1000101" " instead")]] = 69,
  B01000101 [[deprecated("use " "0b01000101" " instead")]] = 69,
  B1000110 [[deprecated("use " "0b1000110" " instead")]] = 70,
  B01000110 [[deprecated("use " "0b01000110" " instead")]] = 70,
  B1000111 [[deprecated("use " "0b1000111" " instead")]] = 71,
  B01000111 [[deprecated("use " "0b01000111" " instead")]] = 71,
  B1001000 [[deprecated("use " "0b1001000" " instead")]] = 72,
  B01001000 [[deprecated("use " "0b01001000" " instead")]] = 72,
  B1001001 [[deprecated("use " "0b1001001" " instead")]] = 73,
  B01001001 [[deprecated("use " "0b01001001" " instead")]] = 73,
  B1001010 [[deprecated("use " "0b1001010" " instead")]] = 74,
  B01001010 [[deprecated("use " "0b01001010" " instead")]] = 74,
  B1001011 [[deprecated("use " "0b1001011" " instead")]] = 75,
  B01001011 [[deprecated("use " "0b01001011" " instead")]] = 75,
  B1001100 [[deprecated("use " "0b1001100" " instead")]] = 76,
  B01001100 [[deprecated("use " "0b01001100" " instead")]] = 76,
  B1001101 [[deprecated("use " "0b1001101" " instead")]] = 77,
  B01001101 [[deprecated("use " "0b01001101" " instead")]] = 77,
  B1001110 [[deprecated("use " "0b1001110" " instead")]] = 78,
  B01001110 [[deprecated("use " "0b01001110" " instead")]] = 78,
  B1001111 [[deprecated("use " "0b1001111" " instead")]] = 79,
  B01001111 [[deprecated("use " "0b01001111" " instead")]] = 79,
  B1010000 [[deprecated("use " "0b1010000" " instead")]] = 80,
  B01010000 [[deprecated("use " "0b01010000" " instead")]] = 80,
  B1010001 [[deprecated("use " "0b1010001" " instead")]] = 81,
  B01010001 [[deprecated("use " "0b01010001" " instead")]] = 81,
  B1010010 [[deprecated("use " "0b1010010" " instead")]] = 82,
  B01010010 [[deprecated("use " "0b01010010" " instead")]] = 82,
  B1010011 [[deprecated("use " "0b1010011" " instead")]] = 83,
  B01010011 [[deprecated("use " "0b01010011" " instead")]] = 83,
  B1010100 [[deprecated("use " "0b1010100" " instead")]] = 84,
  B01010100 [[deprecated("use " "0b01010100" " instead")]] = 84,
  B1010101 [[deprecated("use " "0b1010101" " instead")]] = 85,
  B01010101 [[deprecated("use " "0b01010101" " instead")]] = 85,
  B1010110 [[deprecated("use " "0b1010110" " instead")]] = 86,
  B01010110 [[deprecated("use " "0b01010110" " instead")]] = 86,
  B1010111 [[deprecated("use " "0b1010111" " instead")]] = 87,
  B01010111 [[deprecated("use " "0b01010111" " instead")]] = 87,
  B1011000 [[deprecated("use " "0b1011000" " instead")]] = 88,
  B01011000 [[deprecated("use " "0b01011000" " instead")]] = 88,
  B1011001 [[deprecated("use " "0b1011001" " instead")]] = 89,
  B01011001 [[deprecated("use " "0b01011001" " instead")]] = 89,
  B1011010 [[deprecated("use " "0b1011010" " instead")]] = 90,
  B01011010 [[deprecated("use " "0b01011010" " instead")]] = 90,
  B1011011 [[deprecated("use " "0b1011011" " instead")]] = 91,
  B01011011 [[deprecated("use " "0b01011011" " instead")]] = 91,
  B1011100 [[deprecated("use " "0b1011100" " instead")]] = 92,
  B01011100 [[deprecated("use " "0b01011100" " instead")]] = 92,
  B1011101 [[deprecated("use " "0b1011101" " instead")]] = 93,
  B01011101 [[deprecated("use " "0b01011101" " instead")]] = 93,
  B1011110 [[deprecated("use " "0b1011110" " instead")]] = 94,
  B01011110 [[deprecated("use " "0b01011110" " instead")]] = 94,
  B1011111 [[deprecated("use " "0b1011111" " instead")]] = 95,
  B01011111 [[deprecated("use " "0b01011111" " instead")]] = 95,
  B1100000 [[deprecated("use " "0b1100000" " instead")]] = 96,
  B01100000 [[deprecated("use " "0b01100000" " instead")]] = 96,
  B1100001 [[deprecated("use " "0b1100001" " instead")]] = 97,
  B01100001 [[deprecated("use " "0b01100001" " instead")]] = 97,
  B1100010 [[deprecated("use " "0b1100010" " instead")]] = 98,
  B01100010 [[deprecated("use " "0b01100010" " instead")]] = 98,
  B1100011 [[deprecated("use " "0b1100011" " instead")]] = 99,
  B01100011 [[deprecated("use " "0b01100011" " instead")]] = 99,
  B1100100 [[deprecated("use " "0b1100100" " instead")]] = 100,
  B01100100 [[deprecated("use " "0b01100100" " instead")]] = 100,
  B1100101 [[deprecated("use " "0b1100101" " instead")]] = 101,
  B01100101 [[deprecated("use " "0b01100101" " instead")]] = 101,
  B1100110 [[deprecated("use " "0b1100110" " instead")]] = 102,
  B01100110 [[deprecated("use " "0b01100110" " instead")]] = 102,
  B1100111 [[deprecated("use " "0b1100111" " instead")]] = 103,
  B01100111 [[deprecated("use " "0b01100111" " instead")]] = 103,
  B1101000 [[deprecated("use " "0b1101000" " instead")]] = 104,
  B01101000 [[deprecated("use " "0b01101000" " instead")]] = 104,
  B1101001 [[deprecated("use " "0b1101001" " instead")]] = 105,
  B01101001 [[deprecated("use " "0b01101001" " instead")]] = 105,
  B1101010 [[deprecated("use " "0b1101010" " instead")]] = 106,
  B01101010 [[deprecated("use " "0b01101010" " instead")]] = 106,
  B1101011 [[deprecated("use " "0b1101011" " instead")]] = 107,
  B01101011 [[deprecated("use " "0b01101011" " instead")]] = 107,
  B1101100 [[deprecated("use " "0b1101100" " instead")]] = 108,
  B01101100 [[deprecated("use " "0b01101100" " instead")]] = 108,
  B1101101 [[deprecated("use " "0b1101101" " instead")]] = 109,
  B01101101 [[deprecated("use " "0b01101101" " instead")]] = 109,
  B1101110 [[deprecated("use " "0b1101110" " instead")]] = 110,
  B01101110 [[deprecated("use " "0b01101110" " instead")]] = 110,
  B1101111 [[deprecated("use " "0b1101111" " instead")]] = 111,
  B01101111 [[deprecated("use " "0b01101111" " instead")]] = 111,
  B1110000 [[deprecated("use " "0b1110000" " instead")]] = 112,
  B01110000 [[deprecated("use " "0b01110000" " instead")]] = 112,
  B1110001 [[deprecated("use " "0b1110001" " instead")]] = 113,
  B01110001 [[deprecated("use " "0b01110001" " instead")]] = 113,
  B1110010 [[deprecated("use " "0b1110010" " instead")]] = 114,
  B01110010 [[deprecated("use " "0b01110010" " instead")]] = 114,
  B1110011 [[deprecated("use " "0b1110011" " instead")]] = 115,
  B01110011 [[deprecated("use " "0b01110011" " instead")]] = 115,
  B1110100 [[deprecated("use " "0b1110100" " instead")]] = 116,
  B01110100 [[deprecated("use " "0b01110100" " instead")]] = 116,
  B1110101 [[deprecated("use " "0b1110101" " instead")]] = 117,
  B01110101 [[deprecated("use " "0b01110101" " instead")]] = 117,
  B1110110 [[deprecated("use " "0b1110110" " instead")]] = 118,
  B01110110 [[deprecated("use " "0b01110110" " instead")]] = 118,
  B1110111 [[deprecated("use " "0b1110111" " instead")]] = 119,
  B01110111 [[deprecated("use " "0b01110111" " instead")]] = 119,
  B1111000 [[deprecated("use " "0b1111000" " instead")]] = 120,
  B01111000 [[deprecated("use " "0b01111000" " instead")]] = 120,
  B1111001 [[deprecated("use " "0b1111001" " instead")]] = 121,
  B01111001 [[deprecated("use " "0b01111001" " instead")]] = 121,
  B1111010 [[deprecated("use " "0b1111010" " instead")]] = 122,
  B01111010 [[deprecated("use " "0b01111010" " instead")]] = 122,
  B1111011 [[deprecated("use " "0b1111011" " instead")]] = 123,
  B01111011 [[deprecated("use " "0b01111011" " instead")]] = 123,
  B1111100 [[deprecated("use " "0b1111100" " instead")]] = 124,
  B01111100 [[deprecated("use " "0b01111100" " instead")]] = 124,
  B1111101 [[deprecated("use " "0b1111101" " instead")]] = 125,
  B01111101 [[deprecated("use " "0b01111101" " instead")]] = 125,
  B1111110 [[deprecated("use " "0b1111110" " instead")]] = 126,
  B01111110 [[deprecated("use " "0b01111110" " instead")]] = 126,
  B1111111 [[deprecated("use " "0b1111111" " instead")]] = 127,
  B01111111 [[deprecated("use " "0b01111111" " instead")]] = 127,
  B10000000 [[deprecated("use " "0b10000000" " instead")]] = 128,
  B10000001 [[deprecated("use " "0b10000001" " instead")]] = 129,
  B10000010 [[deprecated("use " "0b10000010" " instead")]] = 130,
  B10000011 [[deprecated("use " "0b10000011" " instead")]] = 131,
  B10000100 [[deprecated("use " "0b10000100" " instead")]] = 132,
  B10000101 [[deprecated("use " "0b10000101" " instead")]] = 133,
  B10000110 [[deprecated("use " "0b10000110" " instead")]] = 134,
  B10000111 [[deprecated("use " "0b10000111" " instead")]] = 135,
  B10001000 [[deprecated("use " "0b10001000" " instead")]] = 136,
  B10001001 [[deprecated("use " "0b10001001" " instead")]] = 137,
  B10001010 [[deprecated("use " "0b10001010" " instead")]] = 138,
  B10001011 [[deprecated("use " "0b10001011" " instead")]] = 139,
  B10001100 [[deprecated("use " "0b10001100" " instead")]] = 140,
  B10001101 [[deprecated("use " "0b10001101" " instead")]] = 141,
  B10001110 [[deprecated("use " "0b10001110" " instead")]] = 142,
  B10001111 [[deprecated("use " "0b10001111" " instead")]] = 143,
  B10010000 [[deprecated("use " "0b10010000" " instead")]] = 144,
  B10010001 [[deprecated("use " "0b10010001" " instead")]] = 145,
  B10010010 [[deprecated("use " "0b10010010" " instead")]] = 146,
  B10010011 [[deprecated("use " "0b10010011" " instead")]] = 147,
  B10010100 [[deprecated("use " "0b10010100" " instead")]] = 148,
  B10010101 [[deprecated("use " "0b10010101" " instead")]] = 149,
  B10010110 [[deprecated("use " "0b10010110" " instead")]] = 150,
  B10010111 [[deprecated("use " "0b10010111" " instead")]] = 151,
  B10011000 [[deprecated("use " "0b10011000" " instead")]] = 152,
  B10011001 [[deprecated("use " "0b10011001" " instead")]] = 153,
  B10011010 [[deprecated("use " "0b10011010" " instead")]] = 154,
  B10011011 [[deprecated("use " "0b10011011" " instead")]] = 155,
  B10011100 [[deprecated("use " "0b10011100" " instead")]] = 156,
  B10011101 [[deprecated("use " "0b10011101" " instead")]] = 157,
  B10011110 [[deprecated("use " "0b10011110" " instead")]] = 158,
  B10011111 [[deprecated("use " "0b10011111" " instead")]] = 159,
  B10100000 [[deprecated("use " "0b10100000" " instead")]] = 160,
  B10100001 [[deprecated("use " "0b10100001" " instead")]] = 161,
  B10100010 [[deprecated("use " "0b10100010" " instead")]] = 162,
  B10100011 [[deprecated("use " "0b10100011" " instead")]] = 163,
  B10100100 [[deprecated("use " "0b10100100" " instead")]] = 164,
  B10100101 [[deprecated("use " "0b10100101" " instead")]] = 165,
  B10100110 [[deprecated("use " "0b10100110" " instead")]] = 166,
  B10100111 [[deprecated("use " "0b10100111" " instead")]] = 167,
  B10101000 [[deprecated("use " "0b10101000" " instead")]] = 168,
  B10101001 [[deprecated("use " "0b10101001" " instead")]] = 169,
  B10101010 [[deprecated("use " "0b10101010" " instead")]] = 170,
  B10101011 [[deprecated("use " "0b10101011" " instead")]] = 171,
  B10101100 [[deprecated("use " "0b10101100" " instead")]] = 172,
  B10101101 [[deprecated("use " "0b10101101" " instead")]] = 173,
  B10101110 [[deprecated("use " "0b10101110" " instead")]] = 174,
  B10101111 [[deprecated("use " "0b10101111" " instead")]] = 175,
  B10110000 [[deprecated("use " "0b10110000" " instead")]] = 176,
  B10110001 [[deprecated("use " "0b10110001" " instead")]] = 177,
  B10110010 [[deprecated("use " "0b10110010" " instead")]] = 178,
  B10110011 [[deprecated("use " "0b10110011" " instead")]] = 179,
  B10110100 [[deprecated("use " "0b10110100" " instead")]] = 180,
  B10110101 [[deprecated("use " "0b10110101" " instead")]] = 181,
  B10110110 [[deprecated("use " "0b10110110" " instead")]] = 182,
  B10110111 [[deprecated("use " "0b10110111" " instead")]] = 183,
  B10111000 [[deprecated("use " "0b10111000" " instead")]] = 184,
  B10111001 [[deprecated("use " "0b10111001" " instead")]] = 185,
  B10111010 [[deprecated("use " "0b10111010" " instead")]] = 186,
  B10111011 [[deprecated("use " "0b10111011" " instead")]] = 187,
  B10111100 [[deprecated("use " "0b10111100" " instead")]] = 188,
  B10111101 [[deprecated("use " "0b10111101" " instead")]] = 189,
  B10111110 [[deprecated("use " "0b10111110" " instead")]] = 190,
  B10111111 [[deprecated("use " "0b10111111" " instead")]] = 191,
  B11000000 [[deprecated("use " "0b11000000" " instead")]] = 192,
  B11000001 [[deprecated("use " "0b11000001" " instead")]] = 193,
  B11000010 [[deprecated("use " "0b11000010" " instead")]] = 194,
  B11000011 [[deprecated("use " "0b11000011" " instead")]] = 195,
  B11000100 [[deprecated("use " "0b11000100" " instead")]] = 196,
  B11000101 [[deprecated("use " "0b11000101" " instead")]] = 197,
  B11000110 [[deprecated("use " "0b11000110" " instead")]] = 198,
  B11000111 [[deprecated("use " "0b11000111" " instead")]] = 199,
  B11001000 [[deprecated("use " "0b11001000" " instead")]] = 200,
  B11001001 [[deprecated("use " "0b11001001" " instead")]] = 201,
  B11001010 [[deprecated("use " "0b11001010" " instead")]] = 202,
  B11001011 [[deprecated("use " "0b11001011" " instead")]] = 203,
  B11001100 [[deprecated("use " "0b11001100" " instead")]] = 204,
  B11001101 [[deprecated("use " "0b11001101" " instead")]] = 205,
  B11001110 [[deprecated("use " "0b11001110" " instead")]] = 206,
  B11001111 [[deprecated("use " "0b11001111" " instead")]] = 207,
  B11010000 [[deprecated("use " "0b11010000" " instead")]] = 208,
  B11010001 [[deprecated("use " "0b11010001" " instead")]] = 209,
  B11010010 [[deprecated("use " "0b11010010" " instead")]] = 210,
  B11010011 [[deprecated("use " "0b11010011" " instead")]] = 211,
  B11010100 [[deprecated("use " "0b11010100" " instead")]] = 212,
  B11010101 [[deprecated("use " "0b11010101" " instead")]] = 213,
  B11010110 [[deprecated("use " "0b11010110" " instead")]] = 214,
  B11010111 [[deprecated("use " "0b11010111" " instead")]] = 215,
  B11011000 [[deprecated("use " "0b11011000" " instead")]] = 216,
  B11011001 [[deprecated("use " "0b11011001" " instead")]] = 217,
  B11011010 [[deprecated("use " "0b11011010" " instead")]] = 218,
  B11011011 [[deprecated("use " "0b11011011" " instead")]] = 219,
  B11011100 [[deprecated("use " "0b11011100" " instead")]] = 220,
  B11011101 [[deprecated("use " "0b11011101" " instead")]] = 221,
  B11011110 [[deprecated("use " "0b11011110" " instead")]] = 222,
  B11011111 [[deprecated("use " "0b11011111" " instead")]] = 223,
  B11100000 [[deprecated("use " "0b11100000" " instead")]] = 224,
  B11100001 [[deprecated("use " "0b11100001" " instead")]] = 225,
  B11100010 [[deprecated("use " "0b11100010" " instead")]] = 226,
  B11100011 [[deprecated("use " "0b11100011" " instead")]] = 227,
  B11100100 [[deprecated("use " "0b11100100" " instead")]] = 228,
  B11100101 [[deprecated("use " "0b11100101" " instead")]] = 229,
  B11100110 [[deprecated("use " "0b11100110" " instead")]] = 230,
  B11100111 [[deprecated("use " "0b11100111" " instead")]] = 231,
  B11101000 [[deprecated("use " "0b11101000" " instead")]] = 232,
  B11101001 [[deprecated("use " "0b11101001" " instead")]] = 233,
  B11101010 [[deprecated("use " "0b11101010" " instead")]] = 234,
  B11101011 [[deprecated("use " "0b11101011" " instead")]] = 235,
  B11101100 [[deprecated("use " "0b11101100" " instead")]] = 236,
  B11101101 [[deprecated("use " "0b11101101" " instead")]] = 237,
  B11101110 [[deprecated("use " "0b11101110" " instead")]] = 238,
  B11101111 [[deprecated("use " "0b11101111" " instead")]] = 239,
  B11110000 [[deprecated("use " "0b11110000" " instead")]] = 240,
  B11110001 [[deprecated("use " "0b11110001" " instead")]] = 241,
  B11110010 [[deprecated("use " "0b11110010" " instead")]] = 242,
  B11110011 [[deprecated("use " "0b11110011" " instead")]] = 243,
  B11110100 [[deprecated("use " "0b11110100" " instead")]] = 244,
  B11110101 [[deprecated("use " "0b11110101" " instead")]] = 245,
  B11110110 [[deprecated("use " "0b11110110" " instead")]] = 246,
  B11110111 [[deprecated("use " "0b11110111" " instead")]] = 247,
  B11111000 [[deprecated("use " "0b11111000" " instead")]] = 248,
  B11111001 [[deprecated("use " "0b11111001" " instead")]] = 249,
  B11111010 [[deprecated("use " "0b11111010" " instead")]] = 250,
  B11111011 [[deprecated("use " "0b11111011" " instead")]] = 251,
  B11111100 [[deprecated("use " "0b11111100" " instead")]] = 252,
  B11111101 [[deprecated("use " "0b11111101" " instead")]] = 253,
  B11111110 [[deprecated("use " "0b11111110" " instead")]] = 254,
  B11111111 [[deprecated("use " "0b11111111" " instead")]] = 255
};
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Interrupts.h" 1
/*
  Interrupts.h - Arduino interrupt management functions
  Copyright (c) 2018 Arduino LLC. All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/





# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/*
 * stdlib.h
 *
 * Definitions for common types, variables, and functions.
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/ieeefp.h" 1 3 4
/*
Copyright (C) 1991 DJ Delorie
All rights reserved.

Redistribution, modification, and use in source and binary forms is permitted
provided that the above copyright notice and following paragraph are
duplicated in all such forms.

This file is distributed WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/picolibc.h" 1 3 4
/*
 * Autogenerated by the Meson build system.
 * Do not edit, your changes will be lost.
 */

       

/* Use atomics for fgetc/ungetc for re-entrancy */


/* Always optimize strcmp for performance */


/* Obsoleted. Use regular syscalls */


/* use global errno variable */


/* use thread local storage */


/* use thread local storage */


/* Use open/close/read/write in tinystdio */


/* Optimize for space over speed */


/* Obsoleted. Reentrant syscalls provided for us */


/* Use tiny stdio from gcc avr */
# 44 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/picolibc.h" 3 4
/* The default printf functions is the double variant */


/* The default printf functions is the float variant */


/* The default printf functions is the integer variant */


/* The default printf functions is the minimal variant */
# 62 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/picolibc.h" 3 4
/* The compiler REALLY has the attribute __alloc_size__ */


/* The compiler supports the always_inline function attribute */


/* The compiler supports the gnu_inline function attribute */


/* Use bitfields in packed structs */


/* Compiler has __builtin_add_overflow */


/* The compiler supports __builtin_alloca */


/* Compiler has __builtin_complex */


/* The compiler supports __builtin_copysign */


/* The compiler supports __builtin_copysignl */


/* The compiler supports __builtin_ctz */


/* The compiler supports __builtin_ctzl */


/* The compiler supports __builtin_ctzll */


/* Compiler has __builtin_expect */


/* The compiler supports __builtin_ffs */


/* The compiler supports __builtin_ffsl */


/* The compiler supports __builtin_ffsll */


/* The compiler supports __builtin_finitel */


/* The compiler supports __builtin_isfinite */


/* The compiler supports __builtin_isinf */


/* The compiler supports __builtin_isinfl */


/* The compiler supports __builtin_isnan */


/* The compiler supports __builtin_isnanl */


/* The compiler supports __builtin_issignalingl */


/* Compiler has __builtin_mul_overflow */


/* Compiler flag to prevent detecting memcpy/memset patterns */


/* Compiler supports _Complex */






/* IEEE fp funcs available */


/* compiler supports INIT_ARRAY sections */


/* Support _init() and _fini() functions */


/* Compiler has long double type */


/* Compiler attribute to prevent the optimizer from adding new builtin calls */


/* _set_tls and _init_tls functions available */


/* Semihost APIs supported */
# 369 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/picolibc.h" 3 4
/* math library does not set errno (offering only ieee semantics) */
# 384 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/picolibc.h" 3 4
/* The newlib version in string format. */


/* Use atomics for signal/raise for re-entrancy */


/* The Picolibc minor version number. */


/* The Picolibc version in string format. */


/* The Picolibc major version number. */




/* avoid software division in decimal conversion */
# 422 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/picolibc.h" 3 4
/* math library sets errno */
# 431 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/picolibc.h" 3 4
/* Obsoleted. Define time_t to long instead of using a 64-bit type */




/* extended locale support */


/* locale support */


/* The newlib minor version number. */


/* The newlib patch level. */


/* The newlib major version number. */


/* Use old math code (undef auto, 0 no, 1 yes) */


/* Use old math code for double funcs (undef auto, 0 no, 1 yes) */


/* Use old math code for float funcs (undef auto, 0 no, 1 yes) */


/* Compute static memory area sizes at runtime instead of link time */


/* The Picolibc minor version number. */


/* The Picolibc patch level. */


/* The Picolibc version in string format. */


/* The Picolibc major version number. */
# 14 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/ieeefp.h" 2 3 4


/* This file can define macros to choose variations of the IEEE float
   format:

   _FLT_LARGEST_EXPONENT_IS_NORMAL

	Defined if the float format uses the largest exponent for finite
	numbers rather than NaN and infinity representations.  Such a
	format cannot represent NaNs or infinities at all, but it's FLT_MAX
	is twice the IEEE value.

   _FLT_NO_DENORMALS

	Defined if the float format does not support IEEE denormals.  Every
	float with a zero exponent is taken to be a zero representation.
 
   ??? At the moment, there are no equivalent macros above for doubles and
   the macros are not fully supported by --enable-newlib-hw-fp.

   __IEEE_BIG_ENDIAN

        Defined if the float format is big endian.  This is mutually exclusive
        with __IEEE_LITTLE_ENDIAN.

   __IEEE_LITTLE_ENDIAN
 
        Defined if the float format is little endian.  This is mutually exclusive
        with __IEEE_BIG_ENDIAN.

   Note that one of __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN must be specified for a
   platform or error will occur.

   __IEEE_BYTES_LITTLE_ENDIAN

        This flag is used in conjunction with __IEEE_BIG_ENDIAN to describe a situation 
	whereby multiple words of an IEEE floating point are in big endian order, but the
	words themselves are little endian with respect to the bytes.

   _DOUBLE_IS_32BITS 

        This is used on platforms that support double by using the 32-bit IEEE
        float type.

   _FLOAT_ARG

        This represents what type a float arg is passed as.  It is used when the type is
        not promoted to double.
	

   __OBSOLETE_MATH_DEFAULT

	Default value for __OBSOLETE_MATH if that's not set by the user.
	It should be set here based on predefined feature macros.

   __OBSOLETE_MATH

	If set to 1 then some new math code will be disabled and older libm
	code will be used instead.  This is necessary because the new math
	code does not support all targets, it assumes that the toolchain has
	ISO C99 support (hexfloat literals, standard fenv semantics), the
	target has IEEE-754 conforming binary32 float and binary64 double
	(not mixed endian) representation, standard SNaN representation,
	double and single precision arithmetics has similar latency and it
	has no legacy SVID matherr support, only POSIX errno and fenv
	exception based error handling.
*/
# 109 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/ieeefp.h" 3 4
/* arm with hard fp and soft dp cannot use new float code */



/* ARM traditionally used big-endian words; and within those words the
   byte ordering was big or little endian depending upon the target.
   Modern floating-point formats are naturally ordered; in this case
   __VFP_FP__ will be defined, even if soft-float.  */
# 132 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/ieeefp.h" 3 4
/* As per ISO/IEC TS 18661 '__FLT_EVAL_METHOD__' will be defined to 16
   (if compiling with +fp16 support) so it can't be used by math.h to
   define float_t and double_t.  For values of '__FLT_EVAL_METHOD__'
   other than 0, 1, 2 the definition of float_t and double_t is
   implementation-defined.  */
# 339 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/ieeefp.h" 3 4
/* necv70 was __IEEE_LITTLE_ENDIAN. */
# 578 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/ieeefp.h" 3 4
/* New math code requires 64-bit doubles */
# 620 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/ieeefp.h" 3 4
/* Use __FLOAT_WORD_ORDER__ if we don't have
 * more specific platform knowledge
 */
# 44 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* Provide support for both ANSI and non-ANSI environments.  */

/* To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
   files aren't affected).  */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/newlib.h" 1 3 4
/*
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright © 2019 Keith Packard
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above
 *    copyright notice, this list of conditions and the following
 *    disclaimer in the documentation and/or other materials provided
 *    with the distribution.
 *
 * 3. Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */
# 44 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 1 3 4
/*
Copyright (c) 1982, 1986, 1993
The Regents of the University of California.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/ieeefp.h" 1 3 4
/*
Copyright (C) 1991 DJ Delorie
All rights reserved.

Redistribution, modification, and use in source and binary forms is permitted
provided that the above copyright notice and following paragraph are
duplicated in all such forms.

This file is distributed WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */
# 33 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 1 3 4
/*
 *  Written by Joel Sherrill <joel@OARcorp.com>.
 *
 *  COPYRIGHT (c) 1989-2014.
 *
 *  On-Line Applications Research Corporation (OAR).
 *
 *  Permission to use, copy, modify, and distribute this software for any
 *  purpose without fee is hereby granted, provided that this entire notice
 *  is included in all copies of any software which is or includes a copy
 *  or modification of this software.
 *
 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 *
 *  $Id$
 */





extern "C" {




/* Macro to test version of GCC.  Returns 0 for non-GCC or too old GCC. */
# 39 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 3 4
/* Version with trailing underscores for BSD compatibility. */


/*
 * Feature test macros control which symbols are exposed by the system
 * headers.  Any of these must be defined before including any headers.
 *
 * __STRICT_ANSI__ (defined by gcc -ansi, -std=c90, -std=c99, or -std=c11)
 *	ISO C
 *
 * _POSIX_SOURCE (deprecated by _POSIX_C_SOURCE=1)
 * _POSIX_C_SOURCE >= 1
 * 	POSIX.1-1990
 *
 * _POSIX_C_SOURCE >= 2
 * 	POSIX.2-1992
 *
 * _POSIX_C_SOURCE >= 199309L
 * 	POSIX.1b-1993 Real-time extensions
 *
 * _POSIX_C_SOURCE >= 199506L
 * 	POSIX.1c-1995 Threads extensions
 *
 * _POSIX_C_SOURCE >= 200112L
 * 	POSIX.1-2001 and C99
 *
 * _POSIX_C_SOURCE >= 200809L
 * 	POSIX.1-2008
 *
 * _XOPEN_SOURCE
 *	POSIX.1-1990 and XPG4
 *
 * _XOPEN_SOURCE_EXTENDED
 *	SUSv1 (POSIX.2-1992 plus XPG4v2)
 *
 * _XOPEN_SOURCE >= 500
 *	SUSv2 (POSIX.1c-1995 plus XSI)
 *
 * _XOPEN_SOURCE >= 600
 *	SUSv3 (POSIX.1-2001 plus XSI) and C99
 *
 * _XOPEN_SOURCE >= 700
 *	SUSv4 (POSIX.1-2008 plus XSI)
 *
 * _ISOC99_SOURCE or gcc -std=c99 or g++
 * 	ISO C99
 *
 * _ISOC11_SOURCE or gcc -std=c11 or g++ -std=c++11
 * 	ISO C11
 *
 * _ISOC2x_SOURCE or gcc -std=c2x or g++ -std=c++20
 * 	ISO C11
 *
 * _ATFILE_SOURCE (implied by _POSIX_C_SOURCE >= 200809L)
 *	"at" functions
 *
 * _LARGEFILE_SOURCE (deprecated by _XOPEN_SOURCE >= 500)
 *	fseeko, ftello
 *
 * _GNU_SOURCE
 * 	All of the above plus GNU extensions
 *
 * _BSD_SOURCE (deprecated by _DEFAULT_SOURCE)
 * _SVID_SOURCE (deprecated by _DEFAULT_SOURCE)
 * _DEFAULT_SOURCE (or none of the above)
 * 	POSIX-1.2008 with BSD and SVr4 extensions
 *
 * _FORTIFY_SOURCE = 1 or 2
 * 	Object Size Checking function wrappers
 *
 * _ZEPHYR_SOURCE
 *      Zephyr. ISO C + a small selection of other APIs.
 */
# 134 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 3 4
/* When building for Zephyr, set _ZEPHYR_SOURCE unless some other API
 * indicator is set by the application. Don't check __STRICT_ANSI__ as that
 * is set by the compiler for -std=cxx, or _POSIX_C_SOURCE as Zephyr defines
 * that for picolibc currently.
 */
# 193 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 3 4
/*
 * The following private macros are used throughout the headers to control
 * which symbols should be exposed.  They are for internal use only, as
 * indicated by the leading double underscore, and must never be used outside
 * of these headers.
 *
 * __POSIX_VISIBLE
 * 	any version of POSIX.1; enabled by default, or with _POSIX_SOURCE,
 * 	any value of _POSIX_C_SOURCE, or _XOPEN_SOURCE >= 500.
 *
 * __POSIX_VISIBLE >= 2
 * 	POSIX.2-1992; enabled by default, with _POSIX_C_SOURCE >= 2,
 * 	or _XOPEN_SOURCE >= 500.
 *
 * __POSIX_VISIBLE >= 199309
 * 	POSIX.1b-1993; enabled by default, with _POSIX_C_SOURCE >= 199309L,
 * 	or _XOPEN_SOURCE >= 500.
 *
 * __POSIX_VISIBLE >= 199506
 * 	POSIX.1c-1995; enabled by default, with _POSIX_C_SOURCE >= 199506L,
 * 	or _XOPEN_SOURCE >= 500.
 *
 * __POSIX_VISIBLE >= 200112
 * 	POSIX.1-2001; enabled by default, with _POSIX_C_SOURCE >= 200112L,
 * 	or _XOPEN_SOURCE >= 600.
 *
 * __POSIX_VISIBLE >= 200809
 * 	POSIX.1-2008; enabled by default, with _POSIX_C_SOURCE >= 200809L,
 * 	or _XOPEN_SOURCE >= 700.
 *
 * __XSI_VISIBLE
 *	XPG4 XSI extensions; enabled with any version of _XOPEN_SOURCE.
 *
 * __XSI_VISIBLE >= 4
 *	SUSv1 XSI extensions; enabled with both _XOPEN_SOURCE and
 * 	_XOPEN_SOURCE_EXTENDED together.
 *
 * __XSI_VISIBLE >= 500
 *	SUSv2 XSI extensions; enabled with _XOPEN_SOURCE >= 500.
 *
 * __XSI_VISIBLE >= 600
 *	SUSv3 XSI extensions; enabled with _XOPEN_SOURCE >= 600.
 *
 * __XSI_VISIBLE >= 700
 *	SUSv4 XSI extensions; enabled with _XOPEN_SOURCE >= 700.
 *
 * __ISO_C_VISIBLE >= 1999
 * 	ISO C99; enabled with gcc -std=c99 or newer (on by default since GCC 5),
 * 	any version of C++, or with _ISOC99_SOURCE, _POSIX_C_SOURCE >= 200112L,
 * 	or _XOPEN_SOURCE >= 600.
 *
 * __ISO_C_VISIBLE >= 2011
 * 	ISO C11; enabled with gcc -std=c11 or newer (on by default since GCC 5),
 * 	g++ -std=c++11 or newer (on by default since GCC 6), or with
 * 	_ISOC11_SOURCE.
 *
 * __ISO_C_VISIBLE >= 2020
 * 	ISO C2x; enabled with gcc -std=c2x or newer,
 * 	g++ -std=c++20 or newer, or with
 * 	_ISOC2X_SOURCE.
 *
 * __ATFILE_VISIBLE
 *	"at" functions; enabled by default, with _ATFILE_SOURCE,
 * 	_POSIX_C_SOURCE >= 200809L, or _XOPEN_SOURCE >= 700.
 *
 * __LARGEFILE_VISIBLE
 *	fseeko, ftello; enabled with _LARGEFILE_SOURCE or _XOPEN_SOURCE >= 500.
 *
 * __BSD_VISIBLE
 * 	BSD extensions; enabled by default, or with _BSD_SOURCE.
 *
 * __SVID_VISIBLE
 * 	SVr4 extensions; enabled by default, or with _SVID_SOURCE.
 *
 * __MISC_VISIBLE
 * 	Extensions found in both BSD and SVr4 (shorthand for
 * 	(__BSD_VISIBLE || __SVID_VISIBLE)), or newlib-specific
 * 	extensions; enabled by default.
 *
 * __GNU_VISIBLE
 * 	GNU extensions; enabled with _GNU_SOURCE.
 *
 * __SSP_FORTIFY_LEVEL
 * 	Object Size Checking; defined to 0 (off), 1, or 2.
 *
 * __ZEPHYR_VISIBLE
 *      Zephyr extensions; enabled with _ZEPHYR_SOURCE.
 *
 * In all cases above, "enabled by default" means either by defining
 * _DEFAULT_SOURCE, or by not defining any of the public feature test macros.
 */
# 382 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 3 4
/* RTEMS adheres to POSIX -- 1003.1b with some features from annexes.  */
# 439 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 3 4
/* XMK loosely adheres to POSIX -- 1003.1 */
# 584 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 3 4
}
# 34 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/float.h" 1 3 4
/* Copyright (C) 2002-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  5.2.4.2.2  Characteristics of floating types <float.h>
 */




/* Radix of exponent representation, b. */



/* Number of base-FLT_RADIX digits in the significand, p.  */







/* Number of decimal digits, q, such that any floating-point number with q
   decimal digits can be rounded into a floating-point number with p radix b
   digits and back again without change to the q decimal digits,

	p * log10(b)			if b is a power of 10
	floor((p - 1) * log10(b))	otherwise
*/







/* Minimum int x such that FLT_RADIX**(x-1) is a normalized float, emin */







/* Minimum negative integer such that 10 raised to that power is in the
   range of normalized floating-point numbers,

	ceil(log10(b) * (emin - 1))
*/







/* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax.  */







/* Maximum integer such that 10 raised to that power is in the range of
   representable finite floating-point numbers,

	floor(log10((1 - b**-p) * b**emax))
*/







/* Maximum representable finite floating-point number,

	(1 - b**-p) * b**emax
*/







/* The difference between 1 and the least value greater than 1 that is
   representable in the given floating point type, b**1-p.  */







/* Minimum normalized positive floating-point number, b**(emin - 1).  */







/* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown.  */
/* ??? This is supposed to change with calls to fesetround in <fenv.h>.  */





/* The floating-point expression evaluation method.  The precise
   definitions of these values are generalised to include support for
   the interchange and extended types defined in ISO/IEC TS 18661-3.
   Prior to this (for C99/C11) the definitions were:

	-1  indeterminate
	 0  evaluate all operations and constants just to the range and
	    precision of the type
	 1  evaluate operations and constants of type float and double
	    to the range and precision of the double type, evaluate
	    long double operations and constants to the range and
	    precision of the long double type
	 2  evaluate all operations and constants to the range and
	    precision of the long double type

   The TS 18661-3 definitions are:

	-1  indeterminate
	 0  evaluate all operations and constants, whose semantic type has
	    at most the range and precision of float, to the range and
	    precision of float; evaluate all other operations and constants
	    to the range and precision of the semantic type.
	 1  evaluate all operations and constants, whose semantic type has
	    at most the range and precision of double, to the range and
	    precision of double; evaluate all other operations and constants
	    to the range and precision of the semantic type.
	 2  evaluate all operations and constants, whose semantic type has
	    at most the range and precision of long double, to the range and
	    precision of long double; evaluate all other operations and
	    constants to the range and precision of the semantic type.
	 N  where _FloatN  is a supported interchange floating type
	    evaluate all operations and constants, whose semantic type has
	    at most the range and precision of the _FloatN type, to the
	    range and precision of the _FloatN type; evaluate all other
	    operations and constants to the range and precision of the
	    semantic type.
	 N + 1, where _FloatNx is a supported extended floating type
	    evaluate operations and constants, whose semantic type has at
	    most the range and precision of the _FloatNx type, to the range
	    and precision of the _FloatNx type; evaluate all other
	    operations and constants to the range and precision of the
	    semantic type.

   The compiler predefines two macros:

      __FLT_EVAL_METHOD__
      Which, depending on the value given for
      -fpermitted-flt-eval-methods, may be limited to only those values
      for FLT_EVAL_METHOD defined in C99/C11.

     __FLT_EVAL_METHOD_TS_18661_3__
      Which always permits the values for FLT_EVAL_METHOD defined in
      ISO/IEC TS 18661-3.

     Here we want to use __FLT_EVAL_METHOD__, unless
     __STDC_WANT_IEC_60559_TYPES_EXT__ is defined, in which case the user
     is specifically asking for the ISO/IEC TS 18661-3 types, so we use
     __FLT_EVAL_METHOD_TS_18661_3__.

   ??? This ought to change with the setting of the fp control word;
   the value provided by the compiler assumes the widest setting.  */







/* Number of decimal digits, n, such that any floating-point number in the
   widest supported floating type with pmax radix b digits can be rounded
   to a floating-point number with n decimal digits and back again without
   change to the value,

	pmax * log10(b)			if b is a power of 10
	ceil(1 + pmax * log10(b))	otherwise
*/







/* Versions of DECIMAL_DIG for each floating-point type.  */







/* Whether types support subnormal numbers.  */







/* Minimum positive values, including subnormals.  */
# 35 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/newlib.h" 1 3 4
/*
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright © 2019 Keith Packard
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above
 *    copyright notice, this list of conditions and the following
 *    disclaimer in the documentation and/or other materials provided
 *    with the distribution.
 *
 * 3. Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */
# 36 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 2 3 4
# 45 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 3 4
/* exceptions first */







/* 16 bit integer machines */
# 146 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 3 4
/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
# 156 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 3 4
/* Configure small REENT structure for Xilinx MicroBlaze platforms */
# 223 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 3 4
/* This block should be kept in sync with GCC's limits.h.  The point
   of having these definitions here is to not include limits.h, which
   would pollute the user namespace, while still using types of the
   the correct widths when deciding how to define __int32_t and
   __int64_t.  */
# 248 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 3 4
/* End of block that should be kept in sync with GCC's limits.h.  */
# 293 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 3 4
/* See if small reent asked for at configuration time and
   is not chosen by the platform by default.  */
# 321 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 3 4
/* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended
   charsets.  The extended charsets add a few functions and a couple
   of tables of a few K each. */





/* Figure out if long double is the same size as double. If the system
 * doesn't provide long double, then those values will be undefined
 * and cpp will substitute 0 for them in the test
 */





/* Newlib doesn't fully support long double math functions so far.
   On platforms where long double equals double the long double functions
   simply call the double functions.  On Cygwin the long double functions
   are implemented independently from newlib to be able to use optimized
   assembler functions despite using the Microsoft x86_64 ABI. */




/*
 * When the address sanitizer is enabled, we must prevent the library
 * from even reading beyond the end of input data. This happens in
 * many optimized string functions.
 */
# 45 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 2 3 4

/*  ISO C++.  */
# 77 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 3 4
/* Support gcc's __attribute__ facility.  */







/*  The traditional meaning of 'extern inline' for GCC is not
  to emit the function body unless the address is explicitly
  taken.  However this behaviour is changing to match the C99
  standard, which uses 'extern inline' to indicate that the
  function body *must* be emitted.  Likewise, a function declared
  without either 'extern' or 'static' defaults to extern linkage
  (C99 6.2.2p5), and the compiler may choose whether to use the
  inline version or call the extern linkage version (6.7.4p6).
  If we are using GCC, but do not have the new behaviour, we need
  to use extern inline; if we are using a new GCC with the
  C99-compatible behaviour, or a non-GCC compiler (which we will
  have to hope is C99, since there is no other way to achieve the
  effect of omitting the function if it isn't referenced) we use
  'static inline', which c99 defines to mean more-or-less the same
  as the Gnu C 'extern inline'.  */




/* We're using GCC in C99 mode, or an unknown compiler which
  we just have to hope obeys the C99 semantics of inline.  */
# 45 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 2 3 4




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 46 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */
# 86 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */
# 111 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 162 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 214 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
typedef unsigned int size_t;
# 241 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 284 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
   instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
   symbols in the _FOO_T_ family, stays defined even after its
   corresponding type is defined).  If we define wchar_t, then we
   must undef _WCHAR_T_; for BSD/386 1.1 (and perhaps others), if
   we undef _WCHAR_T_, then we must also define rune_t, since 
   headers like runetype.h assume that if machine/ansi.h is included,
   and _BSD_WCHAR_T_ is not defined, then rune_t is available.
   machine/ansi.h says, "Note that _WCHAR_T_ and _RUNE_T_ must be of
   the same type." */
# 311 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* FreeBSD 5 can't be handled well using "traditional" logic above
   since it no longer defines _BSD_RUNE_T_ yet still desires to export
   rune_t in some cases... */
# 396 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* A null pointer constant.  */
# 50 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 2 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 1 3 4
/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */

/* Written 2000 by Werner Almesberger */

/*-
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright (c) 1991, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Berkeley Software Design, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 * $FreeBSD$
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 1 3 4
/*
 *  Copyright (c) 2007 Patrick Mansfield <patmans@us.ibm.com>
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 1 3 4
/*
 *  Written by Joel Sherrill <joel@OARcorp.com>.
 *
 *  COPYRIGHT (c) 1989-2014.
 *
 *  On-Line Applications Research Corporation (OAR).
 *
 *  Permission to use, copy, modify, and distribute this software for any
 *  purpose without fee is hereby granted, provided that this entire notice
 *  is included in all copies of any software which is or includes a copy
 *  or modification of this software.
 *
 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 *
 *  $Id$
 */
# 9 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 2 3 4

/*
 * Guess on types by examining *_MIN / *_MAX defines.
 */

/* GCC >= 3.3.0 has __<val>__ implicitly defined. */







/* Check if "long long" is 64bit wide */
/* Modern GCCs provide __LONG_LONG_MAX__, SUSv3 wants LLONG_MAX */





/* Check if "long" is 64bit or 32bit wide */







extern "C" {



typedef signed char __int8_t;

typedef unsigned char __uint8_t;
# 55 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
typedef short int __int16_t;

typedef short unsigned int __uint16_t;
# 77 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
typedef 
# 77 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       int 
# 77 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                      __int32_t;

typedef 
# 79 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       unsigned int 
# 79 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                       __uint32_t;
# 103 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
typedef 
# 103 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       long long int 
# 103 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                      __int64_t;

typedef 
# 105 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       unsigned long long int 
# 105 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                       __uint64_t;
# 134 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
typedef signed char __int_least8_t;

typedef unsigned char __uint_least8_t;
# 160 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
typedef short int __int_least16_t;

typedef short unsigned int __uint_least16_t;
# 182 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
typedef 
# 182 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       int 
# 182 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                            __int_least32_t;

typedef 
# 184 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       unsigned int 
# 184 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                             __uint_least32_t;
# 200 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
typedef 
# 200 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       long long int 
# 200 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                            __int_least64_t;

typedef 
# 202 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       unsigned long long int 
# 202 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                             __uint_least64_t;
# 214 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
typedef long long int __intmax_t;







typedef long long unsigned int __uintmax_t;







typedef 
# 230 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       long int 
# 230 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                       __intptr_t;

typedef 
# 232 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h"
       long unsigned int 
# 232 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
                        __uintptr_t;
# 247 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 3 4
}
# 46 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 1 3 4
/*
 *  Written by Joel Sherrill <joel@OARcorp.com>.
 *
 *  COPYRIGHT (c) 1989-2014.
 *
 *  On-Line Applications Research Corporation (OAR).
 *
 *  Permission to use, copy, modify, and distribute this software for any
 *  purpose without fee is hereby granted, provided that this entire notice
 *  is included in all copies of any software which is or includes a copy
 *  or modification of this software.
 *
 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 *
 *  $Id$
 */
# 47 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */





/* snaroff@next.com says the NeXT needs this.  */




/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */
# 86 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */
# 111 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 145 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 157 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* If this symbol has done its job, get rid of it.  */




/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 241 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 396 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* A null pointer constant.  */
# 414 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Offset of member MEMBER in a struct of type TYPE. */






/* Type whose alignment is supported in every context and is at least
   as great as that of any standard type not using alignment
   specifiers.  */
typedef struct {
  long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
  long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
  /* _Float128 is defined as a basic type, so max_align_t must be
     sufficiently aligned for it.  This code must work in C++, so we
     use __float128 here; that is only available on some
     architectures, but only on i386 is extra alignment needed for
     __float128.  */



} max_align_t;






  typedef decltype(nullptr) nullptr_t;
# 48 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 2 3 4
# 71 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Testing against Clang-specific extensions.
 */
# 98 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/**
 * Not all compilers offer __builtin_expect (e.g. CompCert does
 * not have it). In that case, transparently replace all
 * occurences of that builtin with just the condition:
 */




/*
 * This code has been put in place to help reduce the addition of
 * compiler specific defines in FreeBSD code.  It helps to aid in
 * having a compiler-agnostic source tree.
 */
# 136 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Compiler memory barriers, specific to gcc and clang.
 */







/* XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced */
# 160 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
 * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
 * The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
 * mode -- there must be no spaces between its arguments, and for nested
 * __CONCAT's, all the __CONCAT's must be at the left.  __CONCAT can also
 * concatenate double-quoted strings produced by the __STRING macro, but
 * this only works with ANSI C.
 *
 * __XSTRING is like __STRING, but it expands any macros in its argument
 * first.  It is only available with ANSI C.
 */
# 217 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Compiler-dependent macros to help declare dead (non-returning) and
 * pure (no side effects) functions, and unused variables.  They are
 * null except for versions of gcc that are known to support the features
 * properly (old versions of gcc-2 supported the dead and pure features
 * in a different (wrong) way).  If we do not provide an implementation
 * for a given compiler, let the compile fail if it is told to use
 * a feature that we cannot live without.
 */
# 271 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Keywords added in C11.
 */
# 326 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Emulation of C11 _Generic().  Unlike the previously defined C11
 * keywords, it is not possible to implement this using exactly the same
 * syntax.  Therefore implement something similar under the name
 * __generic().  Unlike _Generic(), this macro can only distinguish
 * between a single type, so it requires nested invocations to
 * distinguish multiple cases.
 *
 * Note that the comma operator is used to force expr to decay in
 * order to match _Generic().
 */
# 348 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * C99 Static array indices in function parameter declarations.  Syntax such as:
 * void bar(int myArray[static 10]);
 * is allowed in C99 but not in C++.  Define __min_size appropriately so
 * headers using it can be compiled in either language.  Use like this:
 * void bar(int myArray[__min_size(10)]);
 */
# 394 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * When this macro is defined, use it to declare inline versions of extern functions.
 */
# 432 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/* XXX: should use `#if __STDC_VERSION__ < 199901'. */




/*
 * We use `__restrict' as a way to define the `restrict' type qualifier
 * without disturbing older software that is unaware of C99 keywords.
 * GCC also provides `__restrict' as an extension to support C99-style
 * restricted pointers in other language modes.
 */






/*
 * Additionally, we allow to use `__restrict_arr' for declaring arrays as
 * non-overlapping per C99.  That's supported since gcc 3.1, but it's not
 * allowed in C++.
 */
# 462 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * GNU C version 2.96 adds explicit branch prediction so that
 * the CPU back-end can hint the processor and also so that
 * code blocks can be reordered such that the predicted path
 * sees a more linear flow, thus improving cache behavior, etc.
 *
 * The following two macros provide us with a way to utilize this
 * compiler feature.  Use __predict_true() if you expect the expression
 * to evaluate to true, and __predict_false() if you expect the
 * expression to evaluate to false.
 *
 * A few notes about usage:
 *
 *	* Generally, __predict_false() error condition checks (unless
 *	  you have some _strong_ reason to do otherwise, in which case
 *	  document it), and/or __predict_true() `no-error' condition
 *	  checks, assuming you want to optimize for the no-error case.
 *
 *	* Other than that, if you don't know the likelihood of a test
 *	  succeeding from empirical or other `hard' evidence, don't
 *	  make predictions.
 *
 *	* These are meant to be used in places that are run `a lot'.
 *	  It is wasteful to make predictions in code that is run
 *	  seldomly (e.g. at subsystem initialization time) as the
 *	  basic block reordering that this affects can often generate
 *	  larger code.
 */
# 501 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/* Only default visibility is supported on PE/COFF targets. */
# 517 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Given the pointer x to the member m of the struct s, return
 * a pointer to the containing structure.  When using GCC, we first
 * assign pointer x to a local variable, to check that its type is
 * compatible with member m.
 */
# 533 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Compiler-dependent macros to declare that functions take printf-like
 * or scanf-like arguments.  They are null except for versions of gcc
 * that are known to support the features properly (old versions of gcc-2
 * didn't permit keeping the keywords out of the application namespace).
 */
# 557 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */
# 576 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
   Taken from glibc:
   Add the compiler optimization to inhibit loop transformation to library
   calls.  This is used to avoid recursive calls in memset and memmove
   default implementations.
*/
# 592 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Tell optimizer to not add new builtin calls when optimizing a
 * function body.
 */
# 684 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Nullability qualifiers: currently only supported by Clang.
 */
# 699 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Type Safety Checking
 *
 * Clang provides additional attributes to enable checking type safety
 * properties that cannot be enforced by the C type system. 
 */
# 717 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * Lock annotations.
 *
 * Clang provides support for doing basic thread-safety tests at
 * compile-time, by marking which locks will/should be held when
 * entering/leaving a functions.
 *
 * Furthermore, it is also possible to annotate variables and structure
 * members to enforce that they are only accessed when certain locks are
 * held.
 */







/* Structure implements a lock. */
/* FIXME: Use __lockable__, etc. to avoid colliding with user namespace macros,
 * once clang is fixed: https://bugs.llvm.org/show_bug.cgi?id=34319 */


/* Function acquires an exclusive or shared lock. */





/* Function attempts to acquire an exclusive or shared lock. */





/* Function releases a lock. */


/* Function asserts that an exclusive or shared lock is held. */





/* Function requires that an exclusive or shared lock is or is not held. */







/* Function should not be analyzed. */


/*
 * Function or variable should not be sanitized, e.g., by AddressSanitizer.
 * GCC has the nosanitize attribute, but as a function attribute only, and
 * warns on use as a variable attribute.
 */
# 792 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/*
 * fall-through case statement annotations
 */

/* Standard C++17/C23 attribute */
# 805 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 3 4
/* Guard variables and structure members by lock. */



/* Alignment builtins for better type checking and improved code generation. */
/* Provide fallback versions for other compilers (GCC/Clang < 10): */
# 52 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/stdlib.h" 1 3 4
/* Copyright (c) 2002 Jeff Johnston  <jjohnstn@redhat.com> */



/* place holder so platforms may add stdlib.h extensions */
# 53 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 2 3 4
# 65 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
extern "C" {

typedef struct
{
  int quot; /* quotient */
  int rem; /* remainder */
} div_t;

typedef struct
{
  long quot; /* quotient */
  long rem; /* remainder */
} ldiv_t;


typedef struct
{
  long long int quot; /* quotient */
  long long int rem; /* remainder */
} lldiv_t;




typedef int (*__compar_fn_t) (const void *, const void *);







size_t __locale_mb_cur_max (void);



void abort (void) __attribute__ ((__noreturn__));
int abs (int);






int atexit (void (*__func)(void));
double atof (const char *__nptr);



int atoi (const char *__nptr);
long atol (const char *__nptr);
void * bsearch (const void *__key,
         const void *__base,
         size_t __nmemb,
         size_t __size,
         __compar_fn_t _compar);
void free (void *) __attribute__ ((__nothrow__));
void *calloc(size_t, size_t) __attribute__((__malloc__, __malloc__(free,1))) __attribute__((__warn_unused_result__))
      __attribute__((__alloc_size__(1, 2))) __attribute__ ((__nothrow__));
div_t div (int __numer, int __denom);
void exit (int __status) __attribute__ ((__noreturn__));
char * getenv (const char *__string);



char * _findenv (const char *, int *);




long labs (long);
ldiv_t ldiv (long __numer, long __denom);
void *malloc(size_t) __attribute__((__malloc__, __malloc__(free,1))) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(1))) __attribute__ ((__nothrow__));
void *valloc (size_t) __attribute__((__malloc__, __malloc__(free,1))) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(1))) __attribute__ ((__nothrow__));
int mblen (const char *, size_t);
int mbtowc (wchar_t *__restrict, const char *__restrict, size_t);
int wctomb (char *, wchar_t);
size_t mbstowcs (wchar_t *__restrict, const char *__restrict, size_t);
size_t wcstombs (char *__restrict, const wchar_t *__restrict, size_t);
# 160 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t _compar);
int rand (void);
void *realloc(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2))) __attribute__ ((__nothrow__));
# 176 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
void srand (unsigned __seed);
double strtod (const char *__restrict __n, char **__restrict __end_PTR);

int strfromd(char *__restrict str, size_t n,
      const char *__restrict format, double fp);


float strtof (const char *__restrict __n, char **__restrict __end_PTR);

long double strtold (const char *__restrict __n, char **__restrict __end_PTR);


int strfromf(char *__restrict str, size_t n,
      const char *__restrict format, float fp);

int strfroml (char *__restrict str, size_t n,
               const char *__restrict format, long double fp);
# 202 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
long strtol (const char *__restrict __n, char **__restrict __end_PTR, int __base);
unsigned long strtoul (const char *__restrict __n, char **__restrict __end_PTR, int __base);
# 220 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
int system (const char *__string);
# 230 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
void _Exit (int __status) __attribute__ ((__noreturn__));
# 280 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
char * __itoa (int, char *, int);
char * __utoa (unsigned, char *, int);
# 320 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
long long atoll (const char *__nptr);


long long llabs (long long);
lldiv_t lldiv (long long __numer, long long __denom);
long long strtoll (const char *__restrict __n, char **__restrict __end_PTR, int __base);


unsigned long long strtoull (const char *__restrict __n, char **__restrict __end_PTR, int __base);
# 345 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
char * __dtoa (double, int, int, int *, int*, char**);
char * __ldtoa (long double, int, int, int *, int *, char **);

void __eprintf (const char *, const char *, unsigned int, const char *);

/* There are two common qsort_r variants.  If you request
   _BSD_SOURCE, you get the BSD version; otherwise you get the GNU
   version.  We want that #undef qsort_r will still let you
   invoke the underlying function, but that requires gcc support. */
# 366 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
/* On platforms where long double equals double.  */


extern long double strtold (const char *__restrict, char **__restrict);



/*
 * If we're in a mode greater than C99, expose C11 functions.
 */

void * aligned_alloc(size_t, size_t) __attribute__((__malloc__, __malloc__(free,1))) __attribute__((__alloc_align__(1)))
     __attribute__((__alloc_size__(2))) __attribute__((__warn_unused_result__)) __attribute__ ((__nothrow__));
int at_quick_exit(void (*)(void));
[[noreturn]] void
 quick_exit(int);


}
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Interrupts.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 44 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Supporting _Bool in C++ is a GCC extension.  */




/* Signal that all the definitions are present.  */
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Interrupts.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 1 3 4
/*
 *  Copyright (c) 2007 Patrick Mansfield <patmans@us.ibm.com>
 */
# 13 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_intsup.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 1 3 4
/*
 *  Written by Joel Sherrill <joel@OARcorp.com>.
 *
 *  COPYRIGHT (c) 1989-2014.
 *
 *  On-Line Applications Research Corporation (OAR).
 *
 *  Permission to use, copy, modify, and distribute this software for any
 *  purpose without fee is hereby granted, provided that this entire notice
 *  is included in all copies of any software which is or includes a copy
 *  or modification of this software.
 *
 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 *
 *  $Id$
 */
# 13 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_intsup.h" 2 3 4


/* gcc > 3.2 implicitly defines the values we are interested */






/* Determine how intptr_t and intN_t fastN_t and leastN_t are defined by gcc
   for this target.  This is used to determine the correct printf() constant in
   inttypes.h and other  constants in stdint.h.
   So we end up with
   ?(signed|unsigned) char == 0
   ?(signed|unsigned) short == 1
   ?(signed|unsigned) int == 2
   ?(signed|unsigned) short int == 3
   ?(signed|unsigned) long == 4
   ?(signed|unsigned) long int == 6
   ?(signed|unsigned) long long == 8
   ?(signed|unsigned) long long int == 10
 */
       
       
       
       
       
       
       
       
# 63 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_intsup.h" 3 4
/* Note - the tests for _INTPTR_EQ_INT and _INTPTR_EQ_SHORT are currently
   redundant as the values are not used.  But one day they may be needed
   and so the tests remain.  */
# 76 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_intsup.h" 3 4
/* Nothing to define because int32_t is safe to print as an int. */
# 190 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_intsup.h" 3 4
       
       
       
       
       
       
       
       
# 14 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 1 3 4
/*
 *  Copyright (c) 2007 Patrick Mansfield <patmans@us.ibm.com>
 */
# 13 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_stdint.h" 2 3 4


extern "C" {




typedef __int8_t int8_t ;



typedef __uint8_t uint8_t ;







typedef __int16_t int16_t ;



typedef __uint16_t uint16_t ;







typedef __int32_t int32_t ;



typedef __uint32_t uint32_t ;







typedef __int64_t int64_t ;



typedef __uint64_t uint64_t ;






typedef __intmax_t intmax_t;




typedef __uintmax_t uintmax_t;




typedef __intptr_t intptr_t;




typedef __uintptr_t uintptr_t;




}
# 15 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 2 3 4


extern "C" {



typedef __int_least8_t int_least8_t;
typedef __uint_least8_t uint_least8_t;




typedef __int_least16_t int_least16_t;
typedef __uint_least16_t uint_least16_t;




typedef __int_least32_t int_least32_t;
typedef __uint_least32_t uint_least32_t;




typedef __int_least64_t int_least64_t;
typedef __uint_least64_t uint_least64_t;



/*
 * Fastest minimum-width integer types
 *
 * Assume int to be the fastest type for all types with a width 
 * less than __INT_MAX__ rsp. INT_MAX
 */

  typedef int int_fast8_t;
  typedef unsigned int uint_fast8_t;
# 61 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
  typedef int int_fast16_t;
  typedef unsigned int uint_fast16_t;
# 71 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
  typedef 
# 71 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h"
         int 
# 71 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
                             int_fast32_t;
  typedef 
# 72 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h"
         unsigned int 
# 72 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
                              uint_fast32_t;
# 81 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
  typedef 
# 81 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h"
         long long int 
# 81 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
                             int_fast64_t;
  typedef 
# 82 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h"
         unsigned long long int 
# 82 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
                              uint_fast64_t;







/*
 * Fall back to [u]int_least<N>_t for [u]int_fast<N>_t types
 * not having been defined, yet.
 * Leave undefined, if [u]int_least<N>_t should not be available.
 */
# 149 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/* Limits of Specified-Width Integer Types */
# 341 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/* This must match size_t in stddef.h, currently long unsigned int */






/* This must match sig_atomic_t in <signal.h> (currently int) */



/* This must match ptrdiff_t  in <stddef.h> (currently long int) */







/* This must match definition in <wchar.h> */
# 371 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/* This must match definition in <wchar.h> */
# 382 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/* wint_t is unsigned int on almost all GCC targets.  */
# 394 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/** Macros for minimum-width integer constant expressions */
# 447 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/** Macros for greatest-width integer constant expression */
# 463 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
}
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Interrupts.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Common.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Common.h"
/*
  Common.h - Common definitions for Arduino core
  Copyright (c) 2017 Arduino LLC. All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/

       
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Common.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Common.h" 2



# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Common.h"
extern "C"{


void yield(void);

typedef enum {
  LOW = 0,
  HIGH = 1,
  CHANGE = 2,
  FALLING = 3,
  RISING = 4,
} PinStatus;

typedef enum {
  INPUT = 0x0,
  OUTPUT = 0x1,
  INPUT_PULLUP = 0x2,
  INPUT_PULLDOWN = 0x3,
  OUTPUT_OPENDRAIN = 0x4,
} PinMode;

typedef enum {
  LSBFIRST = 0,
  MSBFIRST = 1,
} BitOrder;
# 77 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Common.h"
typedef void (*voidFuncPtr)(void);
typedef void (*voidFuncPtrParam)(void*);

// interrupts() / noInterrupts() must be defined by the core
# 95 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Common.h"
/* TODO: request for removal */
typedef bool boolean;
typedef uint8_t byte;
typedef uint16_t word;

void init(void);
void initVariant(void);


int atexit(void (*func)()) __attribute__((weak));

int main() __attribute__((weak));





typedef uint8_t pin_size_t;


void pinMode(pin_size_t pinNumber, PinMode pinMode);
void digitalWrite(pin_size_t pinNumber, PinStatus status);
PinStatus digitalRead(pin_size_t pinNumber);
int analogRead(pin_size_t pinNumber);
void analogReference(uint8_t mode);
void analogWrite(pin_size_t pinNumber, int value);

unsigned long millis(void);
unsigned long micros(void);
void delay(unsigned long);
void delayMicroseconds(unsigned int us);
unsigned long pulseIn(pin_size_t pin, uint8_t state, unsigned long timeout);
unsigned long pulseInLong(pin_size_t pin, uint8_t state, unsigned long timeout);

void shiftOut(pin_size_t dataPin, pin_size_t clockPin, BitOrder bitOrder, uint8_t val);
uint8_t shiftIn(pin_size_t dataPin, pin_size_t clockPin, BitOrder bitOrder);

void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, PinStatus mode);
void attachInterruptParam(pin_size_t interruptNumber, voidFuncPtrParam callback, PinStatus mode, void* param);
void detachInterrupt(pin_size_t interruptNumber);

void setup(void);
void loop(void);


} // extern "C"



  template<class T, class L>
  auto min(const T& a, const L& b) -> decltype((b < a) ? b : a)
  {
    return (b < a) ? b : a;
  }

  template<class T, class L>
  auto max(const T& a, const L& b) -> decltype((b < a) ? b : a)
  {
    return (a < b) ? b : a;
  }
# 172 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Common.h"
/* C++ prototypes */
uint16_t makeWord(uint16_t w);
uint16_t makeWord(byte h, byte l);



unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);
unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);

void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
void noTone(uint8_t _pin);

// WMath prototypes
long random(long);
long random(long, long);
void randomSeed(unsigned long);
long map(long, long, long, long, long);
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Interrupts.h" 2

namespace arduino {

template <typename T>
using voidTemplateFuncPtrParam = void (*)(T param);

template<typename T> struct __container__ {
  void* param;
  voidTemplateFuncPtrParam<T> function;
};

// C++ only overloaded version of attachInterrupt function
template<typename T> void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T> userFunc, PinStatus mode, T& param) {

  struct __container__<T> *cont = new __container__<T>();
  cont->param = &param;
  cont->function = userFunc;

  // TODO: check lambda scope
  // TODO: add structure to delete(__container__) when detachInterrupt() is called
  auto f = [](void* a) -> void
  {
    T param = *(T*)((struct __container__<T>*)a)->param;
    (((struct __container__<T>*)a)->function)(param);
  };

  attachInterruptParam(interruptNum, f, mode, cont);
}

template<typename T> void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T*> userFunc, PinStatus mode, T* param) {
  attachInterruptParam(interruptNum, (voidFuncPtrParam)userFunc, mode, (void*)param);
}

}
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/IPAddress.h" 1
/*
  IPAddress.h - Base class that provides IPAddress
  Copyright (c) 2011 Adrian McEwen.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

       

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/IPAddress.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Printable.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Printable.h"
/*
  Printable.h - Interface for classes that can be printed via Print
  Copyright (c) 2016 Arduino LLC.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

       

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/*
 * stdlib.h
 *
 * Definitions for common types, variables, and functions.
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Printable.h" 2


# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Printable.h"
namespace arduino {

class Print;

/** The Printable class provides a way for new classes to allow themselves to be printed.
    By deriving from Printable and implementing the printTo method, it will then be possible
    for users to print out instances of this class by passing them into the usual
    Print::print and Print::println methods.
*/

class Printable
{
  public:
    virtual size_t printTo(Print& p) const = 0;
};

}
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/IPAddress.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/String.h" 1
/*
  String library for Wiring & Arduino
  ...mostly rewritten by Paul Stoffregen...
  Copyright (c) 2009-10 Hernando Barragan.  All right reserved.
  Copyright 2011, Paul Stoffregen, paul@pjrc.com

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/






# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/*
 * stdlib.h
 *
 * Definitions for common types, variables, and functions.
 */
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/String.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/*
 * string.h
 *
 * Definitions for memory and string functions.
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* Provide support for both ANSI and non-ANSI environments.  */

/* To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
   files aren't affected).  */
# 44 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 1 3 4
/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */

/* Written 2000 by Werner Almesberger */

/*-
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright (c) 1991, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Berkeley Software Design, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 * $FreeBSD$
 */
# 45 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 1 3 4
/*
 *  Written by Joel Sherrill <joel@OARcorp.com>.
 *
 *  COPYRIGHT (c) 1989-2014.
 *
 *  On-Line Applications Research Corporation (OAR).
 *
 *  Permission to use, copy, modify, and distribute this software for any
 *  purpose without fee is hereby granted, provided that this entire notice
 *  is included in all copies of any software which is or includes a copy
 *  or modification of this software.
 *
 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 *
 *  $Id$
 */
# 46 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 2 3 4



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 46 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */
# 86 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */
# 111 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 157 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* If this symbol has done its job, get rid of it.  */




/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 241 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 396 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* A null pointer constant.  */
# 414 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Offset of member MEMBER in a struct of type TYPE. */
# 50 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 2 3 4
# 59 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 3 4
extern "C" {

void * memchr (const void *, int, size_t);
int memcmp (const void *, const void *, size_t);
void * memcpy (void *__restrict, const void *__restrict, size_t);
void * memmove (void *, const void *, size_t);
void * memset (void *, int, size_t);
char *strcat (char *__restrict, const char *__restrict);
char *strchr (const char *, int);
int strcmp (const char *, const char *);
int strcoll (const char *, const char *);
char *strcpy (char *__restrict, const char *__restrict);
size_t strcspn (const char *, const char *);
char *strerror (int);
size_t strlen (const char *);
char *strncat (char *__restrict, const char *__restrict, size_t);
int strncmp (const char *, const char *, size_t);
char *strncpy (char *__restrict, const char *__restrict, size_t);
char *strpbrk (const char *, const char *);
char *strrchr (const char *, int);
size_t strspn (const char *, const char *);
char *strstr (const char *, const char *);

char *strtok (char *__restrict, const char *__restrict);

size_t strxfrm (char *__restrict, const char *__restrict, size_t);







char *strtok_r (char *__restrict, const char *__restrict, char **__restrict);
# 123 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 3 4
/* There are two common strerror_r variants.  If you request
   _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX
   version.  POSIX requires that #undef strerror_r will still let you
   invoke the underlying function, but that requires gcc support.  */
# 142 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 3 4
/* Reentrant version of strerror.  */
char * _strerror_r (int, int, int *);






size_t strnlen (const char *, size_t);
# 190 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 3 4
/* There are two common basename variants.  If you do NOT #include <libgen.h>
   and you do

     #define _GNU_SOURCE
     #include <string.h>

   you get the GNU version.  Otherwise you get the POSIX versionfor which you
   should #include <libgen.h>i for the function prototype.  POSIX requires that
   #undef basename will still let you invoke the underlying function.  However,
   this also implies that the POSIX version is used in this case.  That's made
   sure here. */
# 210 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/string.h" 1 3 4
/* Copyright (c) 2005 Jeff Johnston  <jjohnstn@redhat.com> */
/* This is a dummy <sys/string.h> used as a placeholder for
   systems that need to have a special header file.  */
# 211 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 2 3 4

}
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/String.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* Provide support for both ANSI and non-ANSI environments.  */

/* To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
   files aren't affected).  */
# 38 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 1 3 4
/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */

/* Written 2000 by Werner Almesberger */

/*-
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright (c) 1991, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Berkeley Software Design, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 * $FreeBSD$
 */
# 39 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/limits.h" 1 3 4
/* Copyright (c) 2002 Jeff Johnston  <jjohnstn@redhat.com> */



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/newlib.h" 1 3 4
/*
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright © 2019 Keith Packard
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above
 *    copyright notice, this list of conditions and the following
 *    disclaimer in the documentation and/or other materials provided
 *    with the distribution.
 *
 * 3. Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */
# 6 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/limits.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 1 3 4
/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */

/* Written 2000 by Werner Almesberger */

/*-
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright (c) 1991, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Berkeley Software Design, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 * $FreeBSD$
 */
# 7 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/limits.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/syslimits.h" 1 3 4
/*
 * Copyright (c) 1988, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)syslimits.h	8.1 (Berkeley) 6/2/93
 * $FreeBSD: src/sys/sys/syslimits.h,v 1.10 2001/06/18 20:24:54 wollman Exp $
 */
# 8 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/limits.h" 2 3 4







/* Maximum number of positional arguments, if _WANT_IO_POS_ARGS.  */




/* if do not have #include_next support, then we
   have to define the limits here. */
# 132 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/limits.h" 3 4
/* `_GCC_LIMITS_H_' is what GCC's file defines.  */





# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include-fixed/limits.h" 1 3 4
/* Copyright (C) 1992-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/* This administrivia gets added to the beginning of limits.h
   if the system has its own version of limits.h.  */

/* We use _GCC_LIMITS_H_ because we want this not to match
   any macros that the system's limits.h uses for its own purposes.  */







/* Copyright (C) 1991-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */




/* Number of bits in a `char'.  */



/* Maximum length of a multibyte character.  */




/* Minimum and maximum values a `signed char' can hold.  */





/* Maximum value an `unsigned char' can hold.  (Minimum is 0).  */







/* Minimum and maximum values a `char' can hold.  */
# 102 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include-fixed/limits.h" 3 4
/* Minimum and maximum values a `signed short int' can hold.  */





/* Maximum value an `unsigned short int' can hold.  (Minimum is 0).  */







/* Minimum and maximum values a `signed int' can hold.  */





/* Maximum value an `unsigned int' can hold.  (Minimum is 0).  */



/* Minimum and maximum values a `signed long int' can hold.
   (Same as `int').  */





/* Maximum value an `unsigned long int' can hold.  (Minimum is 0).  */
# 197 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include-fixed/limits.h" 3 4
/* This administrivia gets added to the end of limits.h
   if the system has its own version of limits.h.  */
# 139 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/limits.h" 2 3 4



/* The maximum number of repeated occurrences of a regular expression
 *    permitted when using the interval notation `\{M,N\}'.  */
# 40 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 2 3 4





extern "C" {

/*
 * The small ctype code does not support locales or extended character sets. It also breaks
 * libstdc++'s ctype implementation, so just skip it for c++
 */
# 59 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 3 4
/*
 * The default ctype style depends upon whether we are optimizing for
 * size and whether the library supports locale-specific ctype data
 */
# 71 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 3 4
int isalnum (int c);
int isalpha (int c);
int iscntrl (int c);
int isdigit (int c);
int isgraph (int c);
int islower (int c);
int isprint (int c);
int ispunct (int c);
int isspace (int c);
int isupper (int c);
int isxdigit (int c);
int tolower (int c);
int toupper (int c);


int isblank (int c);

extern inline /* convert to C++ keyword */ int __attribute((gnu_inline, always_inline)) isblank(int c) {
 return c == ' ' || c == '\t';
}
# 243 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 3 4
extern const char _ctype_[];
# 332 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 3 4
}
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/String.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/deprecated-avr-comp/avr/pgmspace.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/deprecated-avr-comp/avr/pgmspace.h"
/*
  pgmspace.h - Definitions for compatibility with AVR pgmspace macros

  Copyright (c) 2015 Arduino LLC

  Based on work of Paul Stoffregen on Teensy 3 (http://pjrc.com)

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  THE SOFTWARE
*/




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */

/**
 *  @file  inttypes.h
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/newlib.h" 1 3 4
/*
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright © 2019 Keith Packard
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above
 *    copyright notice, this list of conditions and the following
 *    disclaimer in the documentation and/or other materials provided
 *    with the distribution.
 *
 * 3. Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */
# 17 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 1 3 4
/*
Copyright (c) 1982, 1986, 1993
The Regents of the University of California.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 18 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_intsup.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 19 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* Provide support for both ANSI and non-ANSI environments.  */

/* To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
   files aren't affected).  */
# 20 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 21 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 2 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 46 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */
# 86 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */
# 111 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 157 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* If this symbol has done its job, get rid of it.  */




/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 241 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 396 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* A null pointer constant.  */
# 414 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Offset of member MEMBER in a struct of type TYPE. */
# 23 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 2 3 4







/* 8-bit types */




/* NOTICE: scanning 8-bit types requires use of the hh specifier
 * which is only supported on newlib platforms that
 * are built with C99 I/O format support enabled.  If the flag in
 * newlib.h hasn't been set during configuration to indicate this, the 8-bit
 * scanning format macros are disabled here as they result in undefined
 * behaviour which can include memory overwrite.  Overriding the flag after the
 * library has been built is not recommended as it will expose the underlying
 * undefined behaviour.
 */
# 59 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/* Macros below are only enabled for a newlib built with C99 I/O format support. */
# 78 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/* Macros below are only enabled for a newlib built with C99 I/O format support. */
# 96 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/* Macros below are only enabled for a newlib built with C99 I/O format support. */
# 107 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/* 16-bit types */
# 157 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/* 32-bit types */
# 207 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/* 64-bit types */
# 261 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/* max-bit types */
# 286 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/* ptr types */
# 312 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
typedef struct {
  intmax_t quot;
  intmax_t rem;
} imaxdiv_t;


extern "C" {


extern intmax_t imaxabs(intmax_t);
extern imaxdiv_t imaxdiv(intmax_t __numer, intmax_t __denomer);
extern intmax_t strtoimax(const char *__restrict, char **__restrict, int);
extern uintmax_t strtoumax(const char *__restrict, char **__restrict, int);
extern intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);
extern uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int);
# 336 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
}
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/deprecated-avr-comp/avr/pgmspace.h" 2
# 40 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/deprecated-avr-comp/avr/pgmspace.h"

# 40 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/deprecated-avr-comp/avr/pgmspace.h"
typedef void prog_void;
typedef char prog_char;
typedef unsigned char prog_uchar;
typedef int8_t prog_int8_t;
typedef uint8_t prog_uint8_t;
typedef int16_t prog_int16_t;
typedef uint16_t prog_uint16_t;
typedef int32_t prog_int32_t;
typedef uint32_t prog_uint32_t;
typedef int64_t prog_int64_t;
typedef uint64_t prog_uint64_t;

typedef const void* int_farptr_t;
typedef const void* uint_farptr_t;
# 34 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/String.h" 2


namespace arduino {

// When compiling programs with this class, the following gcc parameters
// dramatically increase performance and memory (RAM) efficiency, typically
// with little or no increase in code size.
//     -felide-constructors
//     -std=c++0x

class __FlashStringHelper;


// An inherited class for holding the result of a concatenation.  These
// result objects are assumed to be writable by subsequent concatenations.
class StringSumHelper;

// The string class
class String
{
 friend class StringSumHelper;
 // use a function pointer to allow for "if (s)" without the
 // complications of an operator bool(). for more information, see:
 // http://www.artima.com/cppsource/safebool.html
 typedef void (String::*StringIfHelperType)() const;
 void StringIfHelper() const {}

 static size_t const FLT_MAX_DECIMAL_PLACES = 10;
 static size_t const DBL_MAX_DECIMAL_PLACES = FLT_MAX_DECIMAL_PLACES;

public:
 // constructors
 // creates a copy of the initial value.
 // if the initial value is null or invalid, or if memory allocation
 // fails, the string will be marked as invalid (i.e. "if (s)" will
 // be false).
 String(const char *cstr = "");
 String(const char *cstr, unsigned int length);
 String(const uint8_t *cstr, unsigned int length) : String((const char*)cstr, length) {}
 String(const String &str);
 String(const __FlashStringHelper *str);
 String(String &&rval);
 explicit String(char c);
 explicit String(unsigned char, unsigned char base=10);
 explicit String(int, unsigned char base=10);
 explicit String(unsigned int, unsigned char base=10);
 explicit String(long, unsigned char base=10);
 explicit String(unsigned long, unsigned char base=10);
 explicit String(float, unsigned char decimalPlaces=2);
 explicit String(double, unsigned char decimalPlaces=2);
 ~String(void);

 // memory management
 // return true on success, false on failure (in which case, the string
 // is left unchanged).  reserve(0), if successful, will validate an
 // invalid string (i.e., "if (s)" will be true afterwards)
 bool reserve(unsigned int size);
 inline unsigned int length(void) const {return len;}
 inline bool isEmpty(void) const { return length() == 0; }

 // creates a copy of the assigned value.  if the value is null or
 // invalid, or if the memory allocation fails, the string will be
 // marked as invalid ("if (s)" will be false).
 String & operator = (const String &rhs);
 String & operator = (const char *cstr);
 String & operator = (const __FlashStringHelper *str);
 String & operator = (String &&rval);

 // concatenate (works w/ built-in types)

 // returns true on success, false on failure (in which case, the string
 // is left unchanged).  if the argument is null or invalid, the
 // concatenation is considered unsuccessful.
 bool concat(const String &str);
 bool concat(const char *cstr);
 bool concat(const char *cstr, unsigned int length);
 bool concat(const uint8_t *cstr, unsigned int length) {return concat((const char*)cstr, length);}
 bool concat(char c);
 bool concat(unsigned char num);
 bool concat(int num);
 bool concat(unsigned int num);
 bool concat(long num);
 bool concat(unsigned long num);
 bool concat(float num);
 bool concat(double num);
 bool concat(const __FlashStringHelper * str);

 // if there's not enough memory for the concatenated value, the string
 // will be left unchanged (but this isn't signalled in any way)
 String & operator += (const String &rhs) {concat(rhs); return (*this);}
 String & operator += (const char *cstr) {concat(cstr); return (*this);}
 String & operator += (char c) {concat(c); return (*this);}
 String & operator += (unsigned char num) {concat(num); return (*this);}
 String & operator += (int num) {concat(num); return (*this);}
 String & operator += (unsigned int num) {concat(num); return (*this);}
 String & operator += (long num) {concat(num); return (*this);}
 String & operator += (unsigned long num) {concat(num); return (*this);}
 String & operator += (float num) {concat(num); return (*this);}
 String & operator += (double num) {concat(num); return (*this);}
 String & operator += (const __FlashStringHelper *str){concat(str); return (*this);}

 friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, char c);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, int num);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, long num);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, float num);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, double num);
 friend StringSumHelper & operator + (const StringSumHelper &lhs, const __FlashStringHelper *rhs);

 // comparison (only works w/ Strings and "strings")
 operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; }
 int compareTo(const String &s) const;
 int compareTo(const char *cstr) const;
 bool equals(const String &s) const;
 bool equals(const char *cstr) const;

 friend bool operator == (const String &a, const String &b) { return a.equals(b); }
 friend bool operator == (const String &a, const char *b) { return a.equals(b); }
 friend bool operator == (const char *a, const String &b) { return b == a; }
 friend bool operator < (const String &a, const String &b) { return a.compareTo(b) < 0; }
 friend bool operator < (const String &a, const char *b) { return a.compareTo(b) < 0; }
 friend bool operator < (const char *a, const String &b) { return b.compareTo(a) > 0; }

 friend bool operator != (const String &a, const String &b) { return !(a == b); }
 friend bool operator != (const String &a, const char *b) { return !(a == b); }
 friend bool operator != (const char *a, const String &b) { return !(a == b); }
 friend bool operator > (const String &a, const String &b) { return b < a; }
 friend bool operator > (const String &a, const char *b) { return b < a; }
 friend bool operator > (const char *a, const String &b) { return b < a; }
 friend bool operator <= (const String &a, const String &b) { return !(b < a); }
 friend bool operator <= (const String &a, const char *b) { return !(b < a); }
 friend bool operator <= (const char *a, const String &b) { return !(b < a); }
 friend bool operator >= (const String &a, const String &b) { return !(a < b); }
 friend bool operator >= (const String &a, const char *b) { return !(a < b); }
 friend bool operator >= (const char *a, const String &b) { return !(a < b); }

 bool equalsIgnoreCase(const String &s) const;
 bool startsWith( const String &prefix) const;
 bool startsWith(const String &prefix, unsigned int offset) const;
 bool endsWith(const String &suffix) const;

 // character access
 char charAt(unsigned int index) const;
 void setCharAt(unsigned int index, char c);
 char operator [] (unsigned int index) const;
 char& operator [] (unsigned int index);
 void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const;
 void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const
  { getBytes((unsigned char *)buf, bufsize, index); }
 const char* c_str() const { return buffer; }
 char* begin() { return buffer; }
 char* end() { return buffer + length(); }
 const char* begin() const { return c_str(); }
 const char* end() const { return c_str() + length(); }

 // search
 int indexOf( char ch ) const;
 int indexOf( char ch, unsigned int fromIndex ) const;
 int indexOf( const String &str ) const;
 int indexOf( const String &str, unsigned int fromIndex ) const;
 int lastIndexOf( char ch ) const;
 int lastIndexOf( char ch, unsigned int fromIndex ) const;
 int lastIndexOf( const String &str ) const;
 int lastIndexOf( const String &str, unsigned int fromIndex ) const;
 String substring( unsigned int beginIndex ) const { return substring(beginIndex, len); };
 String substring( unsigned int beginIndex, unsigned int endIndex ) const;

 // modification
 void replace(char find, char replace);
 void replace(const String& find, const String& replace);
 void remove(unsigned int index);
 void remove(unsigned int index, unsigned int count);
 void toLowerCase(void);
 void toUpperCase(void);
 void trim(void);

 // parsing/conversion
 long toInt(void) const;
 float toFloat(void) const;
 double toDouble(void) const;

protected:
 char *buffer; // the actual char array
 unsigned int capacity; // the array length minus one (for the '\0')
 unsigned int len; // the String length (not counting the '\0')
protected:
 void init(void);
 void invalidate(void);
 bool changeBuffer(unsigned int maxStrLen);

 // copy and move
 String & copy(const char *cstr, unsigned int length);
 String & copy(const __FlashStringHelper *pstr, unsigned int length);
 void move(String &rhs);
};

class StringSumHelper : public String
{
public:
    StringSumHelper(const String &s) : String(s) {}
    StringSumHelper(const char *p) : String(p) {}
    StringSumHelper(char c) : String(c) {}
    StringSumHelper(unsigned char num) : String(num) {}
    StringSumHelper(int num) : String(num) {}
    StringSumHelper(unsigned int num) : String(num) {}
    StringSumHelper(long num) : String(num) {}
    StringSumHelper(unsigned long num) : String(num) {}
    StringSumHelper(float num) : String(num) {}
    StringSumHelper(double num) : String(num) {}
};

} // namespace arduino

using arduino::__FlashStringHelper;
using arduino::String;
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/IPAddress.h" 2




// forward declarations of global name space friend classes
class EthernetClass;
class DhcpClass;
class DNSClient;

namespace arduino {

// A class to make it easier to handle and pass around IP addresses

enum IPType {
    IPv4,
    IPv6
};

class IPAddress : public Printable {
private:
    union {
        uint8_t bytes[16];
        uint32_t dword[4];
    } _address;
    IPType _type;

    // Access the raw byte array containing the address.  Because this returns a pointer
    // to the internal structure rather than a copy of the address this function should only
    // be used when you know that the usage of the returned uint8_t* will be transient and not
    // stored.
    uint8_t* raw_address() { return _type == IPv4 ? &_address.bytes[12] : _address.bytes; }

public:
    // Constructors

    // Default IPv4
    IPAddress();
    IPAddress(IPType ip_type);
    IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet);
    IPAddress(uint8_t o1, uint8_t o2, uint8_t o3, uint8_t o4, uint8_t o5, uint8_t o6, uint8_t o7, uint8_t o8, uint8_t o9, uint8_t o10, uint8_t o11, uint8_t o12, uint8_t o13, uint8_t o14, uint8_t o15, uint8_t o16);
     // IPv4; see implementation note
    IPAddress(uint32_t address);
     // Default IPv4
    IPAddress(const uint8_t *address);
    IPAddress(IPType ip_type, const uint8_t *address);
    // If IPv4 fails tries IPv6 see fromString function
    IPAddress(const char *address);

    bool fromString(const char *address);
    bool fromString(const String &address) { return fromString(address.c_str()); }

    // Overloaded cast operator to allow IPAddress objects to be used where a uint32_t is expected
    // NOTE: IPv4 only; see implementation note
    operator uint32_t() const { return _type == IPv4 ? _address.dword[3] : 0; };

    bool operator==(const IPAddress& addr) const;
    bool operator!=(const IPAddress& addr) const { return !(*this == addr); };

    // NOTE: IPv4 only; we don't know the length of the pointer
    bool operator==(const uint8_t* addr) const;

    // Overloaded index operator to allow getting and setting individual octets of the address
    uint8_t operator[](int index) const;
    uint8_t& operator[](int index);

    // Overloaded copy operators to allow initialisation of IPAddress objects from other types
    // NOTE: IPv4 only
    IPAddress& operator=(const uint8_t *address);
    // NOTE: IPv4 only; see implementation note
    IPAddress& operator=(uint32_t address);
    // If IPv4 fails tries IPv6 see fromString function
    IPAddress& operator=(const char *address);

    virtual size_t printTo(Print& p) const;
    String toString() const;

    IPType type() const { return _type; }

    friend class UDP;
    friend class Client;
    friend class Server;

    friend ::EthernetClass;
    friend ::DhcpClass;
    friend ::DNSClient;

protected:
    bool fromString4(const char *address);
    bool fromString6(const char *address);
    String toString4() const;
    String toString6() const;
};

extern const IPAddress IN6ADDR_ANY;
extern const IPAddress INADDR_NONE;
}

using arduino::IPAddress;
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Print.h" 1
/*
  Print.h - Base class that provides print() and println()
  Copyright (c) 2016 Arduino LLC.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

       

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */

/**
 *  @file  inttypes.h
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Print.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 1 3 4
/* Copyright (c) 2002, 2005, 2007 Joerg Wunsch
   All rights reserved.

   Portions of documentation Copyright (c) 1990, 1991, 1993
   The Regents of the University of California.

   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:

   * Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

   * Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.

   * Neither the name of the copyright holders nor the names of
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.

  $Id: stdio.h 2527 2016-10-27 20:41:22Z joerg_wunsch $
*/




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* Provide support for both ANSI and non-ANSI environments.  */

/* To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
   files aren't affected).  */
# 43 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 2 3 4




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 1 3 4
/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */

/* Written 2000 by Werner Almesberger */

/*-
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright (c) 1991, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Berkeley Software Design, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 * $FreeBSD$
 */
# 48 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 46 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */
# 86 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */
# 111 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 157 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* If this symbol has done its job, get rid of it.  */




/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 241 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 396 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* A null pointer constant.  */
# 414 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Offset of member MEMBER in a struct of type TYPE. */
# 49 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 2 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */

/**
 *  @file  inttypes.h
 */
# 51 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 36 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Define __gnuc_va_list.  */



typedef __builtin_va_list __gnuc_va_list;


/* Define the standard macros for the user,
   if this invocation was from the user program.  */
# 56 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Define va_list, if desired, from __gnuc_va_list. */
/* We deliberately do not define va_list when called from
   stdio.h, because ANSI C says that stdio.h is not supposed to define
   va_list.  stdio.h needs to have access to that data type, 
   but must not use that name.  It should use the name __gnuc_va_list,
   which is safe because it is reserved for the implementation.  */
# 86 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* The macro _VA_LIST_ is the same thing used by this file in Ultrix.
   But on BSD NET2 we must not test or define or undef it.
   (Note that the comments in NET 2's ansi.h
   are incorrect for _VA_LIST_--see stdio.h!)  */

/* The macro _VA_LIST_DEFINED is used in Windows NT 3.5  */

/* The macro _VA_LIST is used in SCO Unix 3.2.  */

/* The macro _VA_LIST_T_H is used in the Bull dpx2  */

/* The macro __va_list__ is used by BeOS.  */

typedef __gnuc_va_list va_list;
# 52 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 1 3 4
/*
Copyright (c) 1982, 1986, 1993
The Regents of the University of California.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* unified sys/types.h: 
   start with sef's sysvi386 version.
   merge go32 version -- a few ifdefs.
   h8300hms, h8300xray, and sysvnecv70 disagree on the following types:

   typedef int gid_t;
   typedef int uid_t;
   typedef int dev_t;
   typedef int ino_t;
   typedef int mode_t;
   typedef int caddr_t;

   however, these aren't "reasonable" values, the sysvi386 ones make far 
   more sense, and should work sufficiently well (in particular, h8300 
   doesn't have a stat, and the necv70 doesn't matter.) -- eichin
 */



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* Provide support for both ANSI and non-ANSI environments.  */

/* To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
   files aren't affected).  */
# 49 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 1 3 4
/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */

/* Written 2000 by Werner Almesberger */

/*-
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright (c) 1991, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Berkeley Software Design, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 * $FreeBSD$
 */
# 50 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_types.h" 1 3 4
/*
 *  Copyright (c) 2005 Ralf Corsepious  <ralf.corsepius@rtems.org>
 */



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_default_types.h" 1 3 4
/*
 *  Copyright (c) 2007 Patrick Mansfield <patmans@us.ibm.com>
 */
# 8 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_types.h" 2 3 4
# 51 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 2 3 4

/* BSD types permitted by POSIX and always exposed as in Glibc.  Only provided
   for backward compatibility with BSD code.  The uintN_t standard types should
   be preferred in new code. */

typedef __uint8_t u_int8_t;


typedef __uint16_t u_int16_t;


typedef __uint32_t u_int32_t;


typedef __uint64_t u_int64_t;

typedef __intptr_t register_t;





# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 1 3 4
/*
Copyright (c) 1982, 1986, 1993
The Regents of the University of California.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* ANSI C namespace clean utility typedefs */

/* This file defines various typedefs needed by the system calls that support
   the C library.  Basically, they're just the POSIX versions with an '_'
   prepended.  Targets shall use <machine/_types.h> to define their own
   internal types if desired.

   There are three define patterns used for type definitions.  Lets assume
   xyz_t is a user type.

   The internal type definition uses __machine_xyz_t_defined.  It is defined by
   <machine/_types.h> to disable a default definition in <sys/_types.h>. It
   must not be used in other files.

   User type definitions are guarded by __xyz_t_defined in glibc and
   _XYZ_T_DECLARED in BSD compatible systems.
*/






# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 46 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */
# 86 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */
# 111 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 157 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* If this symbol has done its job, get rid of it.  */




/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 241 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */
# 359 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
typedef unsigned int wint_t;
# 396 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* A null pointer constant.  */
# 414 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Offset of member MEMBER in a struct of type TYPE. */
# 53 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 2 3 4

/* The Arm Compiler doesn't define wint_t as part of stddef.h so
 * define it here.
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/newlib.h" 1 3 4
/*
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright © 2019 Keith Packard
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above
 *    copyright notice, this list of conditions and the following
 *    disclaimer in the documentation and/or other materials provided
 *    with the distribution.
 *
 * 3. Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */
# 62 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 1 3 4
/*
Copyright (c) 1982, 1986, 1993
The Regents of the University of California.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 63 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/_types.h" 1 3 4
/*
 *  Copyright (c) 2005 Ralf Corsepious  <ralf.corsepius@rtems.org>
 */
# 64 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 2 3 4


typedef long __blkcnt_t;
typedef __int64_t __blkcnt64_t;



typedef long __blksize_t;



typedef __uint64_t __fsblkcnt_t;



typedef __uint32_t __fsfilcnt_t;



typedef long _off_t;





typedef int __pid_t;






typedef short __dev_t;







typedef unsigned short __uid_t;






typedef unsigned short __gid_t;




typedef __uint32_t __id_t;







typedef unsigned short __ino_t;

typedef __uint64_t __ino64_t;
# 140 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 3 4
typedef __uint32_t __mode_t;





__extension__ typedef long long _off64_t;





typedef _off_t __off_t;
typedef __uint64_t __off64_t;


typedef _off64_t __loff_t;


typedef long __key_t;


/*
 * We need fpos_t for the following, but it doesn't have a leading "_",
 * so we use _fpos_t instead.
 */

typedef long _fpos_t; /* XXX must match off_t in <sys/types.h> */
    /* (and must be `long' for now) */
# 177 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 3 4
/* Defined by GCC provided <stddef.h> */




typedef unsigned int __size_t;
# 194 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 3 4
/* If __SIZE_TYPE__ is defined (gcc) we define ssize_t based on size_t.
   We simply change "unsigned" to "signed" for this single definition
   to make sure ssize_t and size_t only differ by their signedness. */

typedef signed int _ssize_t;
# 209 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 3 4
typedef _ssize_t __ssize_t;


/* Conversion state information.  */
typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    unsigned char __wchb[4];
  } __value; /* Value so far.  */
} _mbstate_t;



/* Iconv descriptor type */
typedef void *_iconv_t;






typedef unsigned long /* clock() */ __clock_t;






typedef __int_least64_t __time_t;





typedef unsigned long __clockid_t;


typedef long __daddr_t;



typedef unsigned long __timer_t;


typedef __uint8_t __sa_family_t;



typedef __uint32_t __socklen_t;


typedef __int32_t __nl_item;
typedef unsigned short __nlink_t;
typedef long __suseconds_t; /* microseconds (signed) */
typedef unsigned long __useconds_t; /* microseconds (unsigned) */
# 74 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 75 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 2 3 4
# 124 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 3 4
typedef __blkcnt_t blkcnt_t;




typedef __blksize_t blksize_t;




typedef unsigned long /* clock() */ clock_t;





typedef __int_least64_t time_t;




typedef __daddr_t daddr_t;


typedef char * caddr_t;




typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;




typedef __id_t id_t; /* can hold a uid_t or pid_t */




typedef __ino_t ino_t; /* inode number */
# 174 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 3 4
/*
 * All these should be machine specific - right now they are all broken.
 * However, for all of Cygnus' embedded targets, we want them to all be
 * the same.  Otherwise things like sizeof (struct stat) might depend on
 * how the file was compiled (e.g. -mint16 vs -mint32, etc.).
 */


typedef __off_t off_t; /* file offset */



typedef __dev_t dev_t; /* device number or struct cdev */



typedef __uid_t uid_t; /* user id */



typedef __gid_t gid_t; /* group id */




typedef __pid_t pid_t; /* process id */




typedef __key_t key_t; /* IPC key */




typedef _ssize_t ssize_t;




typedef __mode_t mode_t; /* permissions */




typedef __nlink_t nlink_t; /* link count */




typedef __clockid_t clockid_t;





typedef __timer_t timer_t;





typedef __useconds_t useconds_t; /* microseconds (unsigned) */




typedef __suseconds_t suseconds_t;



typedef __int64_t sbintime_t;

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/features.h" 1 3 4
/*
 *  Written by Joel Sherrill <joel@OARcorp.com>.
 *
 *  COPYRIGHT (c) 1989-2014.
 *
 *  On-Line Applications Research Corporation (OAR).
 *
 *  Permission to use, copy, modify, and distribute this software for any
 *  purpose without fee is hereby granted, provided that this entire notice
 *  is included in all copies of any software which is or includes a copy
 *  or modification of this software.
 *
 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 *
 *  $Id$
 */
# 248 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/types.h" 1 3 4
/*
Copyright (C) 1991 DJ Delorie
All rights reserved.

Redistribution, modification, and use in source and binary forms is permitted
provided that the above copyright notice and following paragraph are
duplicated in all such forms.

This file is distributed WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */
/*
 * Newlib targets may provide an own version of this file in their machine
 * directory to add custom user types for <sys/types.h>.
 */
# 249 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 2 3 4





# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 255 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/types.h" 2 3 4
# 53 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 2 3 4

/*
 * This is an internal structure of the library that is subject to be
 * changed without warnings at any time.  Please do *never* reference
 * elements of it beyond by using the official interfaces provided.
 */
# 81 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 3 4
typedef uint16_t __ungetc_t;


struct __file {
 __ungetc_t unget; /* ungetc() buffer */
 uint8_t flags; /* flags, see below */
# 95 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 3 4
 int (*put)(char, struct __file *); /* function to write one char to device */
 int (*get)(struct __file *); /* function to read one char from device */
 int (*flush)(struct __file *); /* function to flush output to device */
};

/*
 * This variant includes a 'close' function which is
 * invoked from fclose when the __SCLOSE bit is set
 */
struct __file_close {
 struct __file file; /* main file struct */
 int (*close)(struct __file *); /* function to close file */
};







struct __file_ext {
        struct __file_close cfile; /* close file struct */
        __off_t (*seek)(struct __file *, __off_t offset, int whence);
        int (*setvbuf)(struct __file *, char *buf, int mode, size_t size);
};
# 128 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 3 4
/*@{*/
/**
   \c FILE is the opaque structure that is passed around between the
   various standard IO functions.
*/
typedef struct __file __FILE;

typedef __FILE FILE;



/**
   This symbol is defined when stdin/stdout/stderr are global
   variables. When undefined, the old __iob array is used which
   contains the pointers instead
*/


extern FILE *const stdin;
extern FILE *const stdout;
extern FILE *const stderr;

/* The stdin, stdout, and stderr symbols are described as macros in the C
 * standard. */
# 174 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 3 4
/**
 * Return code for an error condition during device read.
 *
 * To be used in the get function of fdevopen().
 */


/**
 * Return code for an end-of-file condition during device read.
 *
 * To be used in the get function of fdevopen().
 */
# 197 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 3 4
extern "C" {


FILE *fdevopen(int (*__put)(char, FILE*), int (*__get)(FILE*), int(*__flush)(FILE *));
int fclose(FILE *__stream);
int fflush(FILE *stream);
# 220 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 3 4
int fputc(int __c, FILE *__stream);
int putc(int __c, FILE *__stream);
int putchar(int __c);



int printf(const char *__fmt, ...) __attribute__((__format__ (printf, 1, 2)));
int fprintf(FILE *__stream, const char *__fmt, ...) __attribute__((__format__ (printf, 2, 3)));
int vprintf(const char *__fmt, va_list __ap) __attribute__((__format__ (printf, 1, 0)));
int vfprintf(FILE *__stream, const char *__fmt, va_list __ap) __attribute__((__format__ (printf, 2, 0)));
int sprintf(char *__s, const char *__fmt, ...) __attribute__((__format__ (printf, 2, 3)));
int snprintf(char *__s, size_t __n, const char *__fmt, ...) __attribute__((__format__ (printf, 3, 4)));
int vsprintf(char *__s, const char *__fmt, va_list ap) __attribute__((__format__ (printf, 2, 0)));
int vsnprintf(char *__s, size_t __n, const char *__fmt, va_list ap) __attribute__((__format__ (printf, 3, 0)));
int asprintf(char **strp, const char *fmt, ...) __attribute__((__format__ (printf, 2, 3)));
int vasprintf(char **strp, const char *fmt, va_list ap) __attribute__((__format__ (printf, 2, 0)));

int fputs(const char *__str, FILE *__stream);
int puts(const char *__str);
size_t fwrite(const void *__ptr, size_t __size, size_t __nmemb,
         FILE *__stream);

int fgetc(FILE *__stream);
int getc(FILE *__stream);
int getchar(void);


int ungetc(int __c, FILE *__stream);

int scanf(const char *__fmt, ...) __attribute__((__format__ (scanf, 1, 2)));
int fscanf(FILE *__stream, const char *__fmt, ...) __attribute__((__format__ (scanf, 2, 3)));
int vscanf(const char *__fmt, va_list __ap) __attribute__((__format__ (scanf, 1, 0)));
int vfscanf(FILE *__stream, const char *__fmt, va_list __ap) __attribute__((__format__ (scanf, 2, 0)));
int sscanf(const char *__buf, const char *__fmt, ...) __attribute__((__format__ (scanf, 2, 3)));
int vsscanf(const char *__buf, const char *__fmt, va_list ap) __attribute__((__format__ (scanf, 2, 0)));

char *fgets(char *__str, int __size, FILE *__stream);
char *gets(char *__str);
size_t fread(void *__ptr, size_t __size, size_t __nmemb,
        FILE *__stream);

void clearerr(FILE *__stream);

/* fast inlined version of clearerr() */


int feof(FILE *__stream);

/* fast inlined version of feof() */


int ferror(FILE *__stream);

/* fast inlined version of ferror() */
# 286 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 3 4
/* only mentioned for libstdc++ support, not implemented in library */




/*
 * We don't have any way of knowing any underlying POSIX limits,
 * so just use a reasonably small values here
 */







__extension__ typedef _fpos_t fpos_t;
int fgetpos(FILE *stream, fpos_t *pos);
FILE *fopen(const char *path, const char *mode) __attribute__((__malloc__, __malloc__(fclose,1)));
FILE *freopen(const char *path, const char *mode, FILE *stream);
FILE *fdopen(int, const char *) __attribute__((__malloc__, __malloc__(fclose,1)));
FILE *fmemopen(void *buf, size_t size, const char *mode) __attribute__((__malloc__, __malloc__(fclose,1)));
int fseek(FILE *stream, long offset, int whence);
int fseeko(FILE *stream, __off_t offset, int whence);
int fsetpos(FILE *stream, fpos_t *pos);
long ftell(FILE *stream);
__off_t ftello(FILE *stream);
int fileno(FILE *);
void perror(const char *s);
int remove(const char *pathname);
int rename(const char *oldpath, const char *newpath);
void rewind(FILE *stream);
void setbuf(FILE *stream, char *buf);
void setbuffer(FILE *stream, char *buf, size_t size);
void setlinebuf(FILE *stream);
int setvbuf(FILE *stream, char *buf, int mode, size_t size);
FILE *tmpfile(void);
char *tmpnam (char *s);
ssize_t getline(char **__restrict lineptr, size_t *__restrict n, FILE *__restrict stream);
ssize_t getdelim(char **__restrict lineptr, size_t *__restrict n, int delim, FILE *__restrict stream);

/*
 * The format of tmpnam names is TXXXXXX, which works with mktemp
 */


/*
 * tmpnam files are created in the current directory
 */


/*
 * We don't have any way of knowing any underlying POSIX limits,
 * so just use a reasonably small value here
 */



}


/*@}*/

static inline /* convert to C++ keyword */ uint32_t
__printf_float(float f)
{
 union {
  float f;
  uint32_t u;
 } u = { .f = f };
 return u.u;
}
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Print.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/String.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/String.h"
/*
  String library for Wiring & Arduino
  ...mostly rewritten by Paul Stoffregen...
  Copyright (c) 2009-10 Hernando Barragan.  All right reserved.
  Copyright 2011, Paul Stoffregen, paul@pjrc.com

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Print.h" 2







namespace arduino {

class Print
{
  private:
    int write_error;
    size_t printNumber(unsigned long, uint8_t);
    size_t printULLNumber(unsigned long long, uint8_t);
    size_t printFloat(double, int);
  protected:
    void setWriteError(int err = 1) { write_error = err; }
  public:
    Print() : write_error(0) {}

    int getWriteError() { return write_error; }
    void clearWriteError() { setWriteError(0); }

    virtual size_t write(uint8_t) = 0;
    size_t write(const char *str) {
      if (str == 
# 52 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Print.h" 3 4
                __null
# 52 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Print.h"
                    ) return 0;
      return write((const uint8_t *)str, strlen(str));
    }
    virtual size_t write(const uint8_t *buffer, size_t size);
    size_t write(const char *buffer, size_t size) {
      return write((const uint8_t *)buffer, size);
    }

    // default to zero, meaning "a single write may block"
    // should be overridden by subclasses with buffering
    virtual int availableForWrite() { return 0; }

    size_t print(const __FlashStringHelper *);
    size_t print(const String &);
    size_t print(const char[]);
    size_t print(char);
    size_t print(unsigned char, int = 10);
    size_t print(int, int = 10);
    size_t print(unsigned int, int = 10);
    size_t print(long, int = 10);
    size_t print(unsigned long, int = 10);
    size_t print(long long, int = 10);
    size_t print(unsigned long long, int = 10);
    size_t print(double, int = 2);
    size_t print(const Printable&);

    size_t println(const __FlashStringHelper *);
    size_t println(const String &s);
    size_t println(const char[]);
    size_t println(char);
    size_t println(unsigned char, int = 10);
    size_t println(int, int = 10);
    size_t println(unsigned int, int = 10);
    size_t println(long, int = 10);
    size_t println(unsigned long, int = 10);
    size_t println(long long, int = 10);
    size_t println(unsigned long long, int = 10);
    size_t println(double, int = 2);
    size_t println(const Printable&);
    size_t println(void);

    virtual void flush() { /* Empty implementation for backward compatibility */ }
};

}
using arduino::Print;
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/PluggableUSB.h" 1
/*
  PluggableUSB.h
  Copyright (c) 2015 Arduino LLC

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/USBAPI.h" 1
/*
  USBAPI.h
  Copyright (c) 2005-2014 Arduino.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/USBAPI.h" 2


# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/USBAPI.h"
namespace arduino {
//================================================================================
//================================================================================
//  Low level API

typedef struct __attribute__((packed))
{
  union {
    uint8_t bmRequestType;
    struct {
      uint8_t direction : 5;
      uint8_t type : 2;
      uint8_t transferDirection : 1;
    };
  };
 uint8_t bRequest;
 uint8_t wValueL;
 uint8_t wValueH;
 uint16_t wIndex;
 uint16_t wLength;
} USBSetup;

}

//================================================================================
// USB APIs (C scope)
//================================================================================

int USB_SendControl(uint8_t flags, const void* d, int len);
int USB_RecvControl(void* d, int len);
int USB_RecvControlLong(void* d, int len);

uint8_t USB_Available(uint8_t ep);
uint8_t USB_SendSpace(uint8_t ep);
int USB_Send(uint8_t ep, const void* data, int len); // blocking
int USB_Recv(uint8_t ep, void* data, int len); // non-blocking
int USB_Recv(uint8_t ep); // non-blocking
void USB_Flush(uint8_t ep);
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/PluggableUSB.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/PluggableUSB.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/PluggableUSB.h" 2


# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/PluggableUSB.h"
namespace arduino {

class PluggableUSBModule {
public:
  PluggableUSBModule(uint8_t numEps, uint8_t numIfs, unsigned int *epType) :
    numEndpoints(numEps), numInterfaces(numIfs), endpointType(epType)
  { }

protected:
  virtual bool setup(USBSetup& setup) = 0;
  virtual int getInterface(uint8_t* interfaceCount) = 0;
  virtual int getDescriptor(USBSetup& setup) = 0;
  virtual uint8_t getShortName(char *name) { name[0] = 'A'+pluggedInterface; return 1; }

  uint8_t pluggedInterface;
  uint8_t pluggedEndpoint;

  const uint8_t numEndpoints;
  const uint8_t numInterfaces;
  const unsigned int *endpointType;

  PluggableUSBModule *next = 
# 48 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/PluggableUSB.h" 3 4
                            __null
# 48 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/PluggableUSB.h"
                                ;

  friend class PluggableUSB_;
};

class PluggableUSB_ {
public:
  PluggableUSB_();
  bool plug(PluggableUSBModule *node);
  int getInterface(uint8_t* interfaceCount);
  int getDescriptor(USBSetup& setup);
  bool setup(USBSetup& setup);
  void getShortName(char *iSerialNum);

private:
  uint8_t lastIf;
  uint8_t lastEp;
  PluggableUSBModule* rootNode;
  uint8_t totalEP;
};
}

// core need to define
void* epBuffer(unsigned int n); // -> returns a pointer to the Nth element of the EP buffer structure

// Replacement for global singleton.
// This function prevents static-initialization-order-fiasco
// https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use
arduino::PluggableUSB_& PluggableUSB();
# 34 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Server.h" 1
/*
  Server.h - Base class that provides Server
  Copyright (c) 2011 Adrian McEwen.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

       



namespace arduino {

class Server : public Print {
  public:
    virtual void begin() = 0;
};

}
# 35 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/String.h" 1
/*
  String library for Wiring & Arduino
  ...mostly rewritten by Paul Stoffregen...
  Copyright (c) 2009-10 Hernando Barragan.  All right reserved.
  Copyright 2011, Paul Stoffregen, paul@pjrc.com

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
# 36 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Stream.h" 1
/*
  Stream.h - base class for character-based streams.
  Copyright (c) 2010 David A. Mellis.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

  parsing functions based on TextFinder library by Michael Margolis
*/

       

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */

/**
 *  @file  inttypes.h
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Stream.h" 2



# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Stream.h"
// compatibility macros for testing
/*
#define   getInt()            parseInt()
#define   getInt(ignore)      parseInt(ignore)
#define   getFloat()          parseFloat()
#define   getFloat(ignore)    parseFloat(ignore)
#define   getString( pre_string, post_string, buffer, length)
readBytesBetween( pre_string, terminator, buffer, length)
*/

namespace arduino {

// This enumeration provides the lookahead options for parseInt(), parseFloat()
// The rules set out here are used until either the first valid character is found
// or a time out occurs due to lack of input.
enum LookaheadMode{
    SKIP_ALL, // All invalid characters are ignored.
    SKIP_NONE, // Nothing is skipped, and the stream is not touched unless the first waiting character is valid.
    SKIP_WHITESPACE // Only tabs, spaces, line feeds & carriage returns are skipped.
};



class Stream : public Print
{
  protected:
    unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read
    unsigned long _startMillis; // used for timeout measurement
    int timedRead(); // private method to read stream with timeout
    int timedPeek(); // private method to peek stream with timeout
    int peekNextDigit(LookaheadMode lookahead, bool detectDecimal); // returns the next numeric digit in the stream or -1 if timeout

  public:
    virtual int available() = 0;
    virtual int read() = 0;
    virtual int peek() = 0;

    Stream() {_timeout=1000;}

// parsing methods

  void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second
  unsigned long getTimeout(void) { return _timeout; }

  bool find(const char *target); // reads data from the stream until the target string is found
  bool find(const uint8_t *target) { return find ((const char *)target); }
  // returns true if target string is found, false if timed out (see setTimeout)

  bool find(const char *target, size_t length); // reads data from the stream until the target string of given length is found
  bool find(const uint8_t *target, size_t length) { return find ((const char *)target, length); }
  // returns true if target string is found, false if timed out

  bool find(char target) { return find (&target, 1); }

  bool findUntil(const char *target, const char *terminator); // as find but search ends if the terminator string is found
  bool findUntil(const uint8_t *target, const char *terminator) { return findUntil((const char *)target, terminator); }

  bool findUntil(const char *target, size_t targetLen, const char *terminate, size_t termLen); // as above but search ends if the terminate string is found
  bool findUntil(const uint8_t *target, size_t targetLen, const char *terminate, size_t termLen) {return findUntil((const char *)target, targetLen, terminate, termLen); }

  long parseInt(LookaheadMode lookahead = SKIP_ALL, char ignore = '\x01' /* a char not found in a valid ASCII numeric field*/);
  // returns the first valid (long) integer value from the current position.
  // lookahead determines how parseInt looks ahead in the stream.
  // See LookaheadMode enumeration at the top of the file.
  // Lookahead is terminated by the first character that is not a valid part of an integer.
  // Once parsing commences, 'ignore' will be skipped in the stream.

  float parseFloat(LookaheadMode lookahead = SKIP_ALL, char ignore = '\x01' /* a char not found in a valid ASCII numeric field*/);
  // float version of parseInt

  size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer
  size_t readBytes( uint8_t *buffer, size_t length) { return readBytes((char *)buffer, length); }
  // terminates if length characters have been read or timeout (see setTimeout)
  // returns the number of characters placed in the buffer (0 means no valid data found)

  size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character
  size_t readBytesUntil( char terminator, uint8_t *buffer, size_t length) { return readBytesUntil(terminator, (char *)buffer, length); }
  // terminates if length characters have been read, timeout, or if the terminator character  detected
  // returns the number of characters placed in the buffer (0 means no valid data found)

  // Arduino String functions to be added here
  String readString();
  String readStringUntil(char terminator);

  protected:
  long parseInt(char ignore) { return parseInt(SKIP_ALL, ignore); }
  float parseFloat(char ignore) { return parseFloat(SKIP_ALL, ignore); }
  // These overload exists for compatibility with any class that has derived
  // Stream and used parseFloat/Int with a custom ignore character. To keep
  // the public API simple, these overload remains protected.

  struct MultiTarget {
    const char *str; // string you're searching for
    size_t len; // length of string you're searching for
    size_t index; // index used by the search routine.
  };

  // This allows you to search for an arbitrary number of strings.
  // Returns index of the target that is found first or -1 if timeout occurs.
  int findMulti(struct MultiTarget *targets, int tCount);
};



}

using arduino::Stream;
# 37 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Udp.h" 1
/*
 *  Udp.cpp: Library to send/receive UDP packets.
 *
 * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these)
 * 1) UDP does not guarantee the order in which assembled UDP packets are received. This
 * might not happen often in practice, but in larger network topologies, a UDP
 * packet can be received out of sequence. 
 * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being
 * aware of it. Again, this may not be a concern in practice on small local networks.
 * For more information, see http://www.cafeaulait.org/course/week12/35.html
 *
 * MIT License:
 * Copyright (c) 2008 Bjoern Hartmann
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * bjoern@cs.stanford.edu 12/30/2008
 */

       




namespace arduino {

class UDP : public Stream {

public:
  virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use
  virtual uint8_t beginMulticast(IPAddress, uint16_t) { return 0; } // initialize, start listening on specified multicast IP address and port. Returns 1 if successful, 0 on failure
  virtual void stop() =0; // Finish with the UDP socket

  // Sending UDP packets

  // Start building up a packet to send to the remote host specified in ip and port
  // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port
  virtual int beginPacket(IPAddress ip, uint16_t port) =0;
  // Start building up a packet to send to the remote host specified in host and port
  // Returns 1 if successful, 0 if there was a problem resolving the hostname or port
  virtual int beginPacket(const char *host, uint16_t port) =0;
  // Finish off this packet and send it
  // Returns 1 if the packet was sent successfully, 0 if there was an error
  virtual int endPacket() =0;
  // Write a single byte into the packet
  virtual size_t write(uint8_t) =0;
  // Write size bytes from buffer into the packet
  virtual size_t write(const uint8_t *buffer, size_t size) =0;

  // Start processing the next available incoming packet
  // Returns the size of the packet in bytes, or 0 if no packets are available
  virtual int parsePacket() =0;
  // Number of bytes remaining in the current packet
  virtual int available() =0;
  // Read a single byte from the current packet
  virtual int read() =0;
  // Read up to len bytes from the current packet and place them into buffer
  // Returns the number of bytes read, or 0 if none are available
  virtual int read(unsigned char* buffer, size_t len) =0;
  // Read up to len characters from the current packet and place them into buffer
  // Returns the number of characters read, or 0 if none are available
  virtual int read(char* buffer, size_t len) =0;
  // Return the next byte from the current packet without moving on to the next byte
  virtual int peek() =0;
  virtual void flush() =0; // Finish reading the current packet

  // Return the IP address of the host who sent the current incoming packet
  virtual IPAddress remoteIP() =0;
  // Return the port of the host who sent the current incoming packet
  virtual uint16_t remotePort() =0;
protected:
  uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); };
};

}

using arduino::UDP;
# 38 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/USBAPI.h" 1
/*
  USBAPI.h
  Copyright (c) 2005-2014 Arduino.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
# 39 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/WCharacter.h" 1
/*
 WCharacter.h - Character utility functions for Wiring & Arduino
 Copyright (c) 2010 Hernando Barragan.  All right reserved.
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.
 
 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.
 
 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ctype.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/WCharacter.h" 2


# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/WCharacter.h"
namespace arduino {

// WCharacter.h prototypes
inline bool isAlphaNumeric(int c) __attribute__((always_inline));
inline bool isAlpha(int c) __attribute__((always_inline));
inline bool isAscii(int c) __attribute__((always_inline));
inline bool isWhitespace(int c) __attribute__((always_inline));
inline bool isControl(int c) __attribute__((always_inline));
inline bool isDigit(int c) __attribute__((always_inline));
inline bool isGraph(int c) __attribute__((always_inline));
inline bool isLowerCase(int c) __attribute__((always_inline));
inline bool isPrintable(int c) __attribute__((always_inline));
inline bool isPunct(int c) __attribute__((always_inline));
inline bool isSpace(int c) __attribute__((always_inline));
inline bool isUpperCase(int c) __attribute__((always_inline));
inline bool isHexadecimalDigit(int c) __attribute__((always_inline));
inline int toAscii(int c) __attribute__((always_inline));
inline int toLowerCase(int c) __attribute__((always_inline));
inline int toUpperCase(int c)__attribute__((always_inline));


// Checks for an alphanumeric character. 
// It is equivalent to (isalpha(c) || isdigit(c)).
inline bool isAlphaNumeric(int c)
{
  return ( isalnum(c) == 0 ? false : true);
}


// Checks for an alphabetic character. 
// It is equivalent to (isupper(c) || islower(c)).
inline bool isAlpha(int c)
{
  return ( isalpha(c) == 0 ? false : true);
}


// Checks whether c is a 7-bit unsigned char value 
// that fits into the ASCII character set.
inline bool isAscii(int c)
{
  return ((c & ~0x7f) != 0 ? false : true );
}


// Checks for a blank character, that is, a space or a tab.
inline bool isWhitespace(int c)
{
  return ( c == '\t' || c == ' ');
}


// Checks for a control character.
inline bool isControl(int c)
{
  return ( iscntrl (c) == 0 ? false : true);
}


// Checks for a digit (0 through 9).
inline bool isDigit(int c)
{
  return ( isdigit (c) == 0 ? false : true);
}


// Checks for any printable character except space.
inline bool isGraph(int c)
{
  return ( isgraph (c) == 0 ? false : true);
}


// Checks for a lower-case character.
inline bool isLowerCase(int c)
{
  return ( c >= 'a' && c <= 'z' );
}


// Checks for any printable character including space.
inline bool isPrintable(int c)
{
  return ( isprint (c) == 0 ? false : true);
}


// Checks for any printable character which is not a space 
// or an alphanumeric character.
inline bool isPunct(int c)
{
  return ( isPrintable(c) && !isSpace(c) && !isAlphaNumeric(c) );
}


// Checks for white-space characters. For the avr-libc library, 
// these are: space, formfeed ('\f'), newline ('\n'), carriage 
// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v').
inline bool isSpace(int c)
{
  return ( isspace (c) == 0 ? false : true);
}


// Checks for an uppercase letter.
inline bool isUpperCase(int c)
{
  return ( isupper (c) == 0 ? false : true);
}


// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 
// 8 9 a b c d e f A B C D E F.
inline bool isHexadecimalDigit(int c)
{
  return ( isxdigit (c) == 0 ? false : true);
}


// Converts c to a 7-bit unsigned char value that fits into the 
// ASCII character set, by clearing the high-order bits.
inline int toAscii(int c)
{
  return (c & 0x7f);
}


// Warning:
// Many people will be unhappy if you use this function. 
// This function will convert accented letters into random 
// characters.

// Converts the letter c to lower case, if possible.
inline int toLowerCase(int c)
{
  return tolower (c);
}


// Converts the letter c to upper case, if possible.
inline int toUpperCase(int c)
{
  return toupper (c);
}

}
# 40 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2


/* Standard C library includes */
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdlib.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/*
 * stdlib.h
 *
 * Definitions for common types, variables, and functions.
 */
# 44 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 45 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 46 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/*
 * string.h
 *
 * Definitions for memory and string functions.
 */
# 47 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 1 3 4
/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */

/* Written 2000 by Werner Almesberger */

/*-
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright (c) 1991, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Berkeley Software Design, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 * $FreeBSD$
 */
# 39 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ieeefp.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* Provide support for both ANSI and non-ANSI environments.  */

/* To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
   files aren't affected).  */
# 38 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ieeefp.h" 2 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/ieeefp.h" 1 3 4
/*
Copyright (C) 1991 DJ Delorie
All rights reserved.

Redistribution, modification, and use in source and binary forms is permitted
provided that the above copyright notice and following paragraph are
duplicated in all such forms.

This file is distributed WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */
# 40 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ieeefp.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/float.h" 1 3 4
/* Copyright (C) 2002-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  5.2.4.2.2  Characteristics of floating types <float.h>
 */
# 41 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ieeefp.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 42 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ieeefp.h" 2 3 4

extern "C" {
# 124 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ieeefp.h" 3 4
/* FLOATING ROUNDING */

typedef int fp_rnd;





fp_rnd fpgetround (void);
fp_rnd fpsetround (fp_rnd);

/* EXCEPTIONS */

typedef int fp_except;






fp_except fpgetmask (void);
fp_except fpsetmask (fp_except);
fp_except fpgetsticky (void);
fp_except fpsetsticky (fp_except);

/* INTEGER ROUNDING */

typedef int fp_rdi;



fp_rdi fpgetroundtoi (void);
fp_rdi fpsetroundtoi (fp_rdi);
# 207 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/ieeefp.h" 3 4
}
# 40 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/_ansi.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* Provide support for both ANSI and non-ANSI environments.  */

/* To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
   files aren't affected).  */
# 41 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 2 3 4

extern "C" {

/* Natural log of 2 */




 /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values.  */
# 116 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
extern double atan (double);
extern double cos (double);
extern double sin (double);
extern double tan (double);
extern double tanh (double);
extern double frexp (double, int *);
extern double modf (double, double *);
extern double ceil (double);
extern double fabs (double);
extern double floor (double);

extern double acos (double);
extern double asin (double);
extern double atan2 (double, double);
extern double cosh (double);
extern double sinh (double);
extern double exp (double);
extern double ldexp (double, int);
extern double log (double);
extern double log10 (double);
extern double pow (double, double);
extern double sqrt (double);
extern double fmod (double, double);
# 160 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
/* ISO C99 types and macros. */

/* FIXME:  FLT_EVAL_METHOD should somehow be gotten from float.h (which is hard,
 * considering that the standard says the includes it defines should not
 * include other includes that it defines) and that value used.  (This can be
 * solved, but autoconf has a bug which makes the solution more difficult, so
 * it has been skipped for now.)  */





/* FLT_EVAL_METHOD == 16 has meaning as defined in ISO/IEC TS 18661-3,
 * which provides non-compliant extensions to C and POSIX (by adding
 * additional positive values for FLT_EVAL_METHOD).  It effectively has
 * same meaning as the C99 and C11 definitions for value 0, while also
 * serving as a flag that the _Float16 (float16_t) type exists.
 *
 * FLT_EVAL_METHOD could be any number of bits of supported floating point
 * format (e.g. 32, 64, 128), but currently only AArch64 and few other targets
 * might define that as 16.  */


    typedef float float_t;
    typedef double double_t;
# 246 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
/*
 * Specifies whether the target uses the snan/nan discriminator
 * definition from IEEE 754 2008 (top bit of significand is 1 for qNaN
 * and 0 for sNaN). This is set to zero in machine/math.h for targets
 * that don't do this (such as MIPS).
 */




extern int __isinff (float);
extern int __isinfd (double);
extern int __isnanf (float);
extern int __isnand (double);
extern int __fpclassifyf (float);
extern int __fpclassifyd (double);
extern int __signbitf (float);
extern int __signbitd (double);
extern int __finite (double);
extern int __finitef (float);

extern int __fpclassifyl (long double);
extern int __finitel (long double);


/* Note: isinf and isnan were once functions in newlib that took double
 *       arguments.  C99 specifies that these names are reserved for macros
 *       supporting multiple floating point types.  Thus, they are
 *       now defined as macros.  Implementations of the old functions
 *       taking double arguments still exist for compatibility purposes
 *       (prototypes for them are earlier in this header).  */

/*
 * GCC bug 66462 raises INVALID exception when __builtin_fpclassify is
 * passed snan, so we cannot use it when building with snan support.
 * clang doesn't appear to have an option to control snan behavior, and
 * it's builtin fpclassify also raises INVALID for snan, so always use
 * our version for that.
 */
# 326 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
int __iseqsigd(double x, double y);
int __iseqsigf(float x, float y);


int __iseqsigl(long double x, long double y);
# 349 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
int __issignalingf(float f);
int __issignaling(double d);


int __issignalingl(long double d);
# 415 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
/* Non ANSI double precision functions.  */

extern double infinity (void);
extern double nan (const char *);
extern double copysign (double, double);
extern double logb (double);
extern int ilogb (double);

extern double asinh (double);
extern double cbrt (double);
extern double nextafter (double, double);
extern double rint (double);
extern double scalbn (double, int);
extern double scalb (double, double);
extern double getpayload(const double *x);
extern double significand (double);

extern double exp2 (double);
extern double scalbln (double, long int);
extern double tgamma (double);
extern double nearbyint (double);
extern long int lrint (double);
extern long long int llrint (double);
extern double round (double);
extern long int lround (double);
extern long long int llround (double);
extern double trunc (double);
extern double remquo (double, double, int *);
extern double fdim (double, double);
extern double fmax (double, double);
extern double fmin (double, double);
extern double fma (double, double, double);

extern double log1p (double);
extern double expm1 (double);

extern double acosh (double);
extern double atanh (double);
extern double remainder (double, double);
extern double gamma (double);
extern double lgamma (double);
extern double erf (double);
extern double erfc (double);
extern double log2 (double);




extern double hypot (double, double);

/* Single precision versions of ANSI functions.  */

extern float atanf (float);
extern float cosf (float);
extern float sinf (float);
extern float tanf (float);
extern float tanhf (float);
extern float frexpf (float, int *);
extern float modff (float, float *);
extern float ceilf (float);
extern float fabsf (float);
extern float floorf (float);

extern float acosf (float);
extern float asinf (float);
extern float atan2f (float, float);
extern float coshf (float);
extern float sinhf (float);
extern float expf (float);
extern float ldexpf (float, int);
extern float logf (float);
extern float log10f (float);
extern float powf (float, float);
extern float sqrtf (float);
extern float fmodf (float, float);

/* Other single precision functions.  */

extern float exp2f (float);
extern float scalblnf (float, long int);
extern float tgammaf (float);
extern float nearbyintf (float);
extern long int lrintf (float);
extern long long int llrintf (float);
extern float roundf (float);
extern long int lroundf (float);
extern long long int llroundf (float);
extern float truncf (float);
extern float remquof (float, float, int *);
extern float fdimf (float, float);
extern float fmaxf (float, float);
extern float fminf (float, float);
extern float fmaf (float, float, float);

extern float infinityf (void);
extern float nanf (const char *);
extern float copysignf (float, float);
extern float logbf (float);
extern int ilogbf (float);

extern float asinhf (float);
extern float cbrtf (float);
extern float nextafterf (float, float);
extern float rintf (float);
extern float scalbnf (float, int);
extern float scalbf (float, float);
extern float log1pf (float);
extern float expm1f (float);
extern float getpayloadf(const float *x);
extern float significandf (float);

extern float acoshf (float);
extern float atanhf (float);
extern float remainderf (float, float);
extern float gammaf (float);
extern float lgammaf (float);
extern float erff (float);
extern float erfcf (float);
extern float log2f (float);
extern float hypotf (float, float);



/* These functions are always available for long double */

extern long double hypotl (long double, long double);
extern long double sqrtl (long double);
extern long double frexpl (long double, int *);
extern long double scalbnl (long double, int);
extern long double scalblnl (long double, long);
extern long double rintl (long double);
extern long int lrintl (long double);
extern long long int llrintl (long double);
extern int ilogbl (long double);
extern long double logbl (long double);
extern long double ldexpl (long double, int);
extern long double nearbyintl (long double);
extern long double ceill (long double);
extern long double fmaxl (long double, long double);
extern long double fminl (long double, long double);
extern long double roundl (long double);
extern long lroundl (long double);
extern long long int llroundl (long double);
extern long double truncl (long double);
extern long double nanl (const char *);
extern long double floorl (long double);
/* Compiler provides these */
extern long double fabsl (long double);
extern long double copysignl (long double, long double);


extern long double atanl (long double);
extern long double cosl (long double);
extern long double sinl (long double);
extern long double tanl (long double);
extern long double tanhl (long double);
extern long double modfl (long double, long double *);
extern long double log1pl (long double);
extern long double expm1l (long double);
extern long double acosl (long double);
extern long double asinl (long double);
extern long double atan2l (long double, long double);
extern long double coshl (long double);
extern long double sinhl (long double);
extern long double expl (long double);
extern long double logl (long double);
extern long double log10l (long double);
extern long double powl (long double, long double);
extern long double fmodl (long double, long double);
extern long double asinhl (long double);
extern long double cbrtl (long double);
extern long double nextafterl (long double, long double);
extern float nexttowardf (float, long double);
extern double nexttoward (double, long double);
extern long double nexttowardl (long double, long double);
extern long double log2l (long double);
extern long double exp2l (long double);
extern long double scalbl (long double, long double);
extern long double tgammal (long double);
extern long double remquol (long double, long double, int *);
extern long double fdiml (long double, long double);
extern long double fmal (long double, long double, long double);
extern long double acoshl (long double);
extern long double atanhl (long double);
extern long double remainderl (long double, long double);
extern long double lgammal (long double);
extern long double gammal (long double);
extern long double erfl (long double);
extern long double erfcl (long double);
extern long double j0l(long double);
extern long double y0l(long double);
extern long double j1l(long double);
extern long double y1l(long double);
extern long double jnl(int, long double);
extern long double ynl(int, long double);

extern long double getpayloadl(const long double *x);
extern long double significandl(long double);
# 649 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
/* GNU extensions */
# 670 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
/* Useful constants.  */
# 719 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/math.h" 1 3 4
/*
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright © 2020 Keith Packard
 * Copyright (c) 2017 embedded brains GmbH. All rights reserved
   Copyright (c) 2011, 2012 ARM Ltd.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above
 *    copyright notice, this list of conditions and the following
 *    disclaimer in the documentation and/or other materials provided
 *    with the distribution.
 *
 * 3. Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */
# 57 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/math.h" 3 4
/*
 * Double precision routines
 */

extern inline /* convert to C++ keyword */ double __attribute((gnu_inline, always_inline))
sqrt(double x)
{
 double result;





 __asm__ volatile ("vsqrt.f64 %P0, %P1" : "=w" (result) : "w" (x));




 return result;
}

extern inline /* convert to C++ keyword */ double __attribute((gnu_inline, always_inline))
fabs(double x)
{
    double result;
    __asm__ ("vabs.f64\t%P0, %P1" : "=w" (result) : "w" (x));
    return result;
}
# 145 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/math.h" 3 4
extern inline /* convert to C++ keyword */ double __attribute((gnu_inline, always_inline))
fma (double x, double y, double z)
{
  __asm__ volatile ("vfma.f64 %P0, %P1, %P2" : "+w" (z) : "w" (x), "w" (y));
  return z;
}







/*
 * Single precision functions
 */

extern inline /* convert to C++ keyword */ float __attribute((gnu_inline, always_inline))
sqrtf(float x)
{
 float result;





 __asm__ volatile ("vsqrt.f32 %0, %1" : "=w" (result) : "w" (x));




 return result;
}

extern inline /* convert to C++ keyword */ float __attribute((gnu_inline, always_inline))
fabsf(float x)
{
    float result;
    __asm__ ("vabs.f32\t%0, %1" : "=t" (result) : "t" (x));
    return result;
}
# 246 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/machine/math.h" 3 4
extern inline /* convert to C++ keyword */ float __attribute((gnu_inline, always_inline))
fmaf (float x, float y, float z)
{
  __asm__ volatile ("vfma.f32 %0, %1, %2" : "+t" (z) : "t" (x), "t" (y));
  return z;
}
# 720 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 2 3 4

}
# 48 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2


# 49 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h"
// Misc Arduino core functions



// Compatibility layer for older code
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/Compat.h" 1
/*
  Compat.h - Compatibility layer for Arduino API
  Copyright (c) 2018 Arduino LLC. All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/




namespace arduino {

inline void pinMode(pin_size_t pinNumber, int mode) {
 pinMode(pinNumber, (PinMode)mode);
};

inline void digitalWrite(pin_size_t pinNumber, int status) {
 digitalWrite(pinNumber, (PinStatus)status);
};

}
# 55 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/ArduinoAPI.h" 2
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 1
/*
 * Copyright (c) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Header files included by kernel.h.
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h"
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h"
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 2



# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h"
extern "C" {


/*
 * A type with strong alignment requirements, similar to C11 max_align_t. It can
 * be used to force alignment of data structures allocated on the stack or as
 * return * type for heap allocators.
 */
typedef union {
 long long thelonglong;
 long double thelongdouble;
 uintmax_t theuintmax_t;
 size_t thesize_t;
 uintptr_t theuintptr_t;
 void *thepvoid;
 void (*thepfunc)(void);
} z_max_align_t;

/*
 * Thread local variables are declared with different keywords depending on
 * which C/C++ standard that is used. C++11 and C23 uses "thread_local" whilst
 * C11 uses "_Thread_local". Previously the GNU "__thread" keyword was used
 * which is the same in both gcc and g++.
 */
# 51 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h"
/* Zephyr requires an int main(void) signature with C linkage for the application main if present */
extern int main(void);



}
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/limits.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/limits.h" 3 4
/* Copyright (c) 2002 Jeff Johnston  <jjohnstn@redhat.com> */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h"
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */




/**
 * @def HAS_BUILTIN(x)
 * @brief Check if the compiler supports the built-in function \a x.
 *
 * This macro is for use with conditional compilation to enable code using a
 * builtin function that may not be available in every compiler.
 */
# 52 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h" 1
/*
 * Copyright (c) 2010-2014,2017 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/**
 * @file
 * @brief GCC toolchain abstraction
 *
 * Macros to abstract compiler capabilities for GCC toolchain.
 */




/* GCC supports #pragma diagnostics since 4.6.0 */
# 39 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/*
 * Older versions of GCC do not define __BYTE_ORDER__, so it must be manually
 * detected and defined using arch-specific definitions.
 */
# 74 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/* C++11 has static_assert built in */



/*
 * GCC 4.6 and higher have the C11 _Static_assert built in and its
 * output is easier to understand than the common BUILD_ASSERT macros.
 * Don't use this in C++98 mode though (which we can hit, as
 * static_assert() is not available)
 */
# 98 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/common.h" 1
/*
 * Copyright (c) 2010-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/common.h"
/**
 * @file
 * @brief Common toolchain abstraction
 *
 * Macros to abstract compiler capabilities (common to all toolchains).
 */

/* Abstract use of extern keyword for compatibility between C and C++ */






/* Use TASK_ENTRY_CPP to tag task entry points defined in C++ files. */
# 42 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/common.h"
/*
 * Generate a reference to an external symbol.
 * The reference indicates to the linker that the symbol is required
 * by the module containing the reference and should be included
 * in the image if the module is in the image.
 *
 * The assembler directive ".set" is used to define a local symbol.
 * No memory is allocated, and the local symbol does not appear in
 * the symbol table.
 */
# 63 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/common.h"
/*
 * If the project is being built for speed (i.e. not for minimum size) then
 * align functions and branches in executable sections to improve performance.
 */
# 109 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/common.h"
/* force inlining a function */
# 136 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/common.h"
/* concatenate the values of the arguments into one */



/* Additionally used as a sentinel by gen_syscalls.py to identify what
 * functions are system calls
 *
 * Note POSIX unit tests don't still generate the system call stubs, so
 * until https://github.com/zephyrproject-rtos/zephyr/issues/5006 is
 * fixed via possibly #4174, we introduce this hack -- which will
 * disallow us to test system calls in POSIX unit testing (currently
 * not used).
 */
# 157 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/common.h"
/* Definitions for struct declaration tags. These are sentinel values used by
 * parse_syscalls.py to gather a list of names of struct declarations that
 * have these tags applied for them.
 */

/* Indicates this is a driver subsystem */


/* Indicates this is a network socket object */
# 178 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/common.h"
/*
 * This is meant to be used in conjunction with __in_section() and similar
 * where scattered structure instances are concatenated together by the linker
 * and walked by the code at run time just like a contiguous array of such
 * structures.
 *
 * Assemblers and linkers may insert alignment padding by default whose
 * size is larger than the natural alignment for those structures when
 * gathering various section segments together, messing up the array walk.
 * To prevent this, we need to provide an explicit alignment not to rely
 * on the default that might just work by luck.
 *
 * Alignment statements in  linker scripts are not sufficient as
 * the assembler may add padding by itself to each segment when switching
 * between sections within the same file even if it merges many such segments
 * into a single section in the end.
 */


/* Check if a pointer is aligned for against a specific byte boundary  */


/* Check if a pointer is aligned enough for a particular data type. */


/** @brief Tag a symbol (e.g. function) to be kept in the binary even though it is not used.
 *
 * It prevents symbol from being removed by the linker garbage collector. It
 * is achieved by adding a pointer to that symbol to the kept memory section.
 *
 * @param symbol Symbol to keep.
 */
# 99 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 100 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h" 2
# 125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"

# 125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/* The GNU assembler for Cortex-M3 uses # for immediate values, not
 * comments, so the @nobits# trick does not work.
 */







/* Unaligned access */
# 147 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/* Version of UNALIGNED_PUT() which issues a compiler_barrier() after
 * the store. It is required to workaround an apparent optimization
 * bug in GCC for ARM Cortex-M3 and higher targets, when multiple
 * byte, half-word and word stores (strb, strh, str instructions),
 * which support unaligned access, can be coalesced into store double
 * (strd) instruction, which doesn't support unaligned access (the
 * compilers in question do this optimization ignoring __packed__
 * attribute).
 */
# 177 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/* Double indirection to ensure section names are expanded before
 * stringification
 */
# 202 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/* When using XIP, using '__ramfunc' places a function into RAM instead
 * of FLASH. Make sure '__ramfunc' is defined only when
 * CONFIG_ARCH_HAS_RAMFUNC_SUPPORT is defined, so that the compiler can
 * report an error if '__ramfunc' is used but the architecture does not
 * support it.
 */
# 265 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/* When adding this, remember to follow the instructions in
 * https://docs.zephyrproject.org/latest/develop/api/api_lifecycle.html#deprecated
 */
# 296 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/* Builtins with availability that depend on the compiler version. */
# 312 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/*
 * Be *very* careful with these. You cannot filter out __DEPRECATED_MACRO with
 * -wno-deprecated, which has implications for -Werror.
 */

/*
 * Expands to nothing and generates a warning. Used like
 *
 *   #define FOO __WARN("Please use BAR instead") ...
 *
 * The warning points to the location where the macro is expanded.
 */



/* Generic message */


/* When adding this, remember to follow the instructions in
 * https://docs.zephyrproject.org/latest/develop/api/api_lifecycle.html#deprecated
 */


/* These macros allow having ARM asm functions callable from thumb */
# 362 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/*
 * These macros are used to declare assembly language symbols that need
 * to be typed properly(func or data) to be visible to the OMF tool.
 * So that the build tool could mark them as an entry point to be linked
 * correctly.  This is an elfism. Use #if 0 for a.out.
 */
# 478 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/*
 * These macros generate absolute symbols for GCC
 */

/* create an extern reference to the absolute symbol */
# 493 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/*
 * Note that GEN_ABSOLUTE_SYM(), depending on the architecture
 * and toolchain, may restrict the range of values permitted
 * for assignment to the named symbol.
 *
 * For example, on x86, "value" is interpreted as signed
 * 32-bit integer. Passing in an unsigned 32-bit integer
 * with MSB set would result in a negative integer.
 * Moreover, GCC would error out if an integer larger
 * than 2^32-1 is passed as "value".
 */

/*
 * GEN_ABSOLUTE_SYM_KCONFIG() is outputted by the build system
 * to generate named symbol/value pairs for kconfigs.
 */



/*
 * GNU/ARM backend does not have a proper operand modifier which does not
 * produces prefix # followed by value, such as %0 for PowerPC, Intel, and
 * MIPS. The workaround performed here is using %B0 which converts
 * the value to ~(value). Thus "n"(~(value)) is set in operand constraint
 * to output (value) in the ARM specific GEN_OFFSET macro.
 */
# 598 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/** @brief Return larger value of two provided expressions.
 *
 * Macro ensures that expressions are evaluated only once.
 *
 * @note Macro has limited usage compared to the standard macro as it cannot be
 *	 used:
 *	 - to generate constant integer, e.g. __aligned(Z_MAX(4,5))
 *	 - static variable, e.g. array like static uint8_t array[Z_MAX(...)];
 */







/** @brief Return smaller value of two provided expressions.
 *
 * Macro ensures that expressions are evaluated only once. See @ref Z_MAX for
 * macro limitations.
 */







/** @brief Return a value clamped to a given range.
 *
 * Macro ensures that expressions are evaluated only once. See @ref Z_MAX for
 * macro limitations.
 */
# 641 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/**
 * @brief Calculate power of two ceiling for some nonzero value
 *
 * @param x Nonzero unsigned long value
 * @return X rounded up to the next power of two
 */



/**
 * @brief Check whether or not a value is a power of 2
 *
 * @param x The value to check
 * @return true if x is a power of 2, false otherwise
 */
# 670 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/**
 * @brief Function attribute to disable stack protector.
 *
 * @note Only supported for GCC >= 11.0.0 or Clang >= 7.
 */
# 701 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/gcc.h"
/* GCC-specific warnings that aren't in clang. */
# 53 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 2




/**
 * @def __noasan
 * @brief Disable address sanitizer
 *
 * When used in the definition of a symbol, prevents that symbol (be it
 * a function or data) from being instrumented by the address
 * sanitizer feature of the compiler.  Most commonly, this is used to
 * prevent padding around data that will be treated specially by the
 * Zephyr link (c.f. SYS_INIT records, STRUCT_SECTION_ITERABLE
 * definitions) in ways that don't understand the guard padding.
 */




/**
 * @def TOOLCHAIN_GCC_VERSION
 * @brief GCC version in xxyyzz for xx.yy.zz. Zero if not GCC compatible.
 */




/**
 * @def TOOLCHAIN_CLANG_VERSION
 * @brief Clang version in xxyyzz for xx.yy.zz. Zero if not Clang compatible.
 */




/**
 * @def TOOLCHAIN_HAS_PRAGMA_DIAG
 * @brief Indicate if toolchain supports \#pragma diagnostics.
 */




/**
 * @def TOOLCHAIN_HAS_C_GENERIC
 * @brief Indicate if toolchain supports C Generic.
 */
# 112 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h"
/**
 * @def TOOLCHAIN_HAS_C_AUTO_TYPE
 * @brief Indicate if toolchain supports C __auto_type.
 */




/**
 * @def TOOLCHAIN_HAS_ZLA
 * @brief Indicate if toolchain supports Zero Length Arrays.
 */




/**
 * @def TOOLCHAIN_IGNORE_WSHADOW_BEGIN
 * @brief Begin of block to ignore -Wshadow.
 *
 * To be used inside another macro.
 * Only for toolchain supporting _Pragma("GCC diagnostic ...").
 */




/**
 * @def TOOLCHAIN_IGNORE_WSHADOW_END
 * @brief End of block to ignore -Wshadow.
 *
 * To be used inside another macro.
 * Only for toolchain supporting _Pragma("GCC diagnostic ...").
 */




/**
 * @def TOOLCHAIN_PRAGMA
 * @brief Helper for using pragma in macros.
 */






/**
 * @def TOOLCHAIN_WARNING_ADDRESS_OF_PACKED_MEMBER
 * @brief Toolchain-specific warning for taking the address of a packed member.
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_WARNING_ARRAY_BOUNDS
 * @brief Toolchain-specific warning for array bounds violations.
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_WARNING_ATTRIBUTES
 * @brief Toolchain-specific warning for unknown attributes.
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_WARNING_DELETE_NON_VIRTUAL_DTOR
 * @brief Toolchain-specific warning for deleting a pointer to an object
 * with a non-virtual destructor.
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_WARNING_EXTRA
 * @brief Toolchain-specific warning for extra warnings.
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_WARNING_NONNULL
 * @brief Toolchain-specific warning for null pointer arguments to functions marked with "nonnull".
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_WARNING_POINTER_ARITH
 * @brief Toolchain-specific warning for pointer arithmetic.
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_WARNING_SHADOW
 * @brief Toolchain-specific warning for shadow variables.
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_WARNING_UNUSED_LABEL
 * @brief Toolchain-specific warning for unused labels.
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_WARNING_UNUSED_VARIABLE
 * @brief Toolchain-specific warning for unused variables.
 *
 * Use this as an argument to the @ref TOOLCHAIN_DISABLE_WARNING and
 * @ref TOOLCHAIN_ENABLE_WARNING family of macros.
 */




/**
 * @def TOOLCHAIN_DISABLE_WARNING
 * @brief Disable the specified compiler warning for all compilers.
 */




/**
 * @def TOOLCHAIN_ENABLE_WARNING
 * @brief Re-enable the specified compiler warning for all compilers.
 *
 * Can only be used after a call to @ref TOOLCHAIN_DISABLE_WARNING.
 */




/**
 * @def TOOLCHAIN_DISABLE_CLANG_WARNING
 * @brief Disable the specified compiler warning for clang.
 */




/**
 * @def TOOLCHAIN_ENABLE_CLANG_WARNING
 * @brief Re-enable the specified compiler warning for clang.
 *
 * Can only be used after a call to @ref TOOLCHAIN_DISABLE_CLANG_WARNING.
 */




/**
 * @def TOOLCHAIN_DISABLE_GCC_WARNING
 * @brief Disable the specified compiler warning for gcc.
 */




/**
 * @def TOOLCHAIN_ENABLE_GCC_WARNING
 * @brief Re-enable the specified compiler warning for gcc.
 *
 * Can only be used after a call to @ref TOOLCHAIN_DISABLE_GCC_WARNING.
 */




/*
 * Ensure that __BYTE_ORDER__ and related preprocessor definitions are defined,
 * and that they match the Kconfig option that is used in the code itself to
 * check for endianness.
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */







/* Linker issue with XIP where the name "data" cannot be used */
# 35 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h"
/* Interrupts */
# 47 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h"
/* Architecture-specific sections */
# 81 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h"
/* Symbol table section */
# 109 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h"
/* Short section references for use in ASM files */
# 158 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/section_tags.h" 1
/* Macros for tagging symbols and putting them in the correct sections. */

/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/section_tags.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/section_tags.h" 2
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/section_tags.h"
/* Attribute macros to place code and data into IMR memory */
# 117 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/section_tags.h"
/* Symbol table section */
# 159 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 2
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 1
/*
 * Copyright (c) 1997-2015, Wind River Systems, Inc.
 * Copyright (c) 2021 Intel Corporation
 * Copyright (c) 2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h"
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_types.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_types.h"
/* Copyright (c) 1997-2015, Wind River Systems, Inc.
 * Copyright (c) 2021 Intel Corporation
 * Copyright (c) 2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


typedef long atomic_t;
typedef atomic_t atomic_val_t;
typedef void *atomic_ptr_t;
typedef atomic_ptr_t atomic_ptr_val_t;


}
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_macro.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macro utilities
 *
 * Macro utilities are the public interface for C/C++ code and device tree
 * related implementation.  In general, C/C++ will include <sys/util.h>
 * instead this file directly.  For device tree implementation, this file
 * should be include instead <sys/util_internal.h>
 */





extern "C" {


/**
 * @addtogroup sys-util
 * @{
 */

/*
 * Most of the eldritch implementation details for all the macrobatics
 * below (APIs like IS_ENABLED(), COND_CODE_1(), etc.) are hidden away
 * in this file.
 */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 * Copyright (c) 2020, Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Repetitive or obscure helper macros needed by sys/util.h.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_loops.h" 1
/*
 * Copyright (c) 2021, Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Internals for looping macros
 *
 * Repetitive or obscure helper macros needed by sys/util.h.
 */
# 1082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_loops.h"
/* Set of UTIL_LISTIFY particles */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_listify.h" 1
/*
 * Copyright (c) 2021, Nordic Semiconductor ASA
 * Copyright (c) 2023, Meta
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 1084 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_loops.h" 2
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h" 2

/* IS_ENABLED() helpers */

/* This is called from IS_ENABLED(), and sticks on a "_XXXX" prefix,
 * it will now be "_XXXX1" if config_macro is "1", or just "_XXXX" if it's
 * undefined.
 *   ENABLED:   Z_IS_ENABLED2(_XXXX1)
 *   DISABLED   Z_IS_ENABLED2(_XXXX)
 */


/* Here's the core trick, we map "_XXXX1" to "_YYYY," (i.e. a string
 * with a trailing comma), so it has the effect of making this a
 * two-argument tuple to the preprocessor only in the case where the
 * value is defined to "1"
 *   ENABLED:    _YYYY,    <--- note comma!
 *   DISABLED:   _XXXX
 */


/* Then we append an extra argument to fool the gcc preprocessor into
 * accepting it as a varargs macro.
 *                         arg1   arg2  arg3
 *   ENABLED:   Z_IS_ENABLED3(_YYYY,    1,    0)
 *   DISABLED   Z_IS_ENABLED3(_XXXX 1,  0)
 */


/* And our second argument is thus now cooked to be 1 in the case
 * where the value is defined to 1, and 0 if not:
 */


/* Implementation of IS_EQ(). Returns 1 if _0 and _1 are the same integer from
 * 0 to 4096, 0 otherwise.
 */


/* Used internally by COND_CODE_1 and COND_CODE_0. */
# 66 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h"
/* Gets second argument and removes brackets around that argument. It
 * is expected that the parameter is provided in brackets/parentheses.
 */


/* Used to remove brackets from around a single argument. */


/* Used by IS_EMPTY() */
/* reference: https://gustedt.wordpress.com/2010/06/08/detect-empty-macro-arguments/ */
# 94 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h"
/* Used by LIST_DROP_EMPTY() */
/* Adding ',' after each element would add empty element at the end of
 * list, which is hard to remove, so instead precede each element with ',',
 * this way first element is empty, and this one is easy to drop.
 */
# 128 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h"
/* Implementation details for NUM_VA_ARGS_LESS_1 */
# 139 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h"
/* Used by MACRO_MAP_CAT */
# 161 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h"
/* Used by Z_IS_EQ */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal_is_eq.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 * Copyright (c) 2020, Nordic Semiconductor ASA
 * Copyright (c) 2023, Meta
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 163 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h" 2

/*
 * Generic sparse list of odd numbers (check the implementation of
 * GPIO_DT_RESERVED_RANGES_NGPIOS as a usage example)
 */
# 178 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h"
/*
 * Generic sparse list of even numbers (check the implementation of
 * GPIO_DT_RESERVED_RANGES_NGPIOS as a usage example)
 */
# 192 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h"
/* Used by UTIL_INC */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal_util_inc.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 * Copyright (c) 2020, Nordic Semiconductor ASA
 * Copyright (c) 2023, Meta
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @cond INTERNAL_HIDDEN
 */
# 4120 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal_util_inc.h"
/**
 * INTERNAL_HIDDEN @endcond
 */
# 194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h" 2

/* Used by UTIL_DEC */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal_util_dec.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 * Copyright (c) 2020, Nordic Semiconductor ASA
 * Copyright (c) 2023, Meta
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @cond INTERNAL_HIDDEN
 */
# 4120 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal_util_dec.h"
/**
 * INTERNAL_HIDDEN @endcond
 */
# 197 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h" 2

/* Used by UTIL_X2 */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal_util_x2.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 * Copyright (c) 2020, Nordic Semiconductor ASA
 * Copyright (c) 2023, Meta
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @cond INTERNAL_HIDDEN
 */
# 4119 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal_util_x2.h"
/**
 * INTERNAL_HIDDEN @endcond
 */
# 200 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_internal.h" 2
# 35 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_macro.h" 2





/**
 * @brief Unsigned integer with bit position @p n set (signed in
 * assembly language).
 */




/** @brief 64-bit unsigned integer with bit position @p _n set. */


/**
 * @brief Set or clear a bit depending on a boolean value
 *
 * The argument @p var is a variable whose value is written to as a
 * side effect.
 *
 * @param var Variable to be altered
 * @param bit Bit number
 * @param set if 0, clears @p bit in @p var; any other value sets @p bit
 */



/**
 * @brief Bit mask with bits 0 through <tt>n-1</tt> (inclusive) set,
 * or 0 if @p n is 0.
 */


/**
 * @brief 64-bit bit mask with bits 0 through <tt>n-1</tt> (inclusive) set,
 * or 0 if @p n is 0.
 */


/** @brief Check if a @p x is a power of two */


/**
 * @brief Check if bits are set continuously from the specified bit
 *
 * The macro is not dependent on the bit-width.
 *
 * @param m Check whether the bits are set continuously or not.
 * @param s Specify the lowest bit for that is continuously set bits.
 */


/**
 * @brief Check if bits are set continuously from the LSB.
 *
 * @param m Check whether the bits are set continuously from LSB.
 */


/**
 * @brief Check if bit is set in a value
 *
 * @param value Value that contain checked bit
 * @param bit Bit number
 */


/** @brief Extract the Least Significant Bit from @p value. */


/**
 * @brief Extract a bitfield element from @p value corresponding to
 *	  the field mask @p mask.
 */


/**
 * @brief Prepare a bitfield element using @p value with @p mask representing
 *	  its field position and width. The result should be combined
 *	  with other fields using a logical OR.
 */


/**
 * @brief Check for macro definition in compiler-visible expressions
 *
 * This trick was pioneered in Linux as the config_enabled() macro. It
 * has the effect of taking a macro value that may be defined to "1"
 * or may not be defined at all and turning it into a literal
 * expression that can be handled by the C compiler instead of just
 * the preprocessor. It is often used with a @p CONFIG_FOO macro which
 * may be defined to 1 via Kconfig, or left undefined.
 *
 * That is, it works similarly to <tt>\#if defined(CONFIG_FOO)</tt>
 * except that its expansion is a C expression. Thus, much <tt>\#ifdef</tt>
 * usage can be replaced with equivalents like:
 *
 *     if (IS_ENABLED(CONFIG_FOO)) {
 *             do_something_with_foo
 *     }
 *
 * This is cleaner since the compiler can generate errors and warnings
 * for @p do_something_with_foo even when @p CONFIG_FOO is undefined.
 *
 * Note: Use of IS_ENABLED in a <tt>\#if</tt> statement is discouraged
 *       as it doesn't provide any benefit vs plain <tt>\#if defined()</tt>
 *
 * @param config_macro Macro to check
 * @return 1 if @p config_macro is defined to 1, 0 otherwise (including
 *         if @p config_macro is not defined)
 */

/* INTERNAL: the first pass above is just to expand any existing
 * macros, we need the macro value to be e.g. a literal "1" at
 * expansion time in the next macro, not "(1)", etc... Standard
 * recursive expansion does not work.
 */

/**
 * @brief Insert code depending on whether @p _flag expands to 1 or not.
 *
 * This relies on similar tricks as IS_ENABLED(), but as the result of
 * @p _flag expansion, results in either @p _if_1_code or @p
 * _else_code is expanded.
 *
 * To prevent the preprocessor from treating commas as argument
 * separators, the @p _if_1_code and @p _else_code expressions must be
 * inside brackets/parentheses: <tt>()</tt>. These are stripped away
 * during macro expansion.
 *
 * Example:
 *
 *     COND_CODE_1(CONFIG_FLAG, (uint32_t x;), (there_is_no_flag();))
 *
 * If @p CONFIG_FLAG is defined to 1, this expands to:
 *
 *     uint32_t x;
 *
 * It expands to <tt>there_is_no_flag();</tt> otherwise.
 *
 * This could be used as an alternative to:
 *
 *     #if defined(CONFIG_FLAG) && (CONFIG_FLAG == 1)
 *     #define MAYBE_DECLARE(x) uint32_t x
 *     #else
 *     #define MAYBE_DECLARE(x) there_is_no_flag()
 *     #endif
 *
 *     MAYBE_DECLARE(x);
 *
 * However, the advantage of COND_CODE_1() is that code is resolved in
 * place where it is used, while the @p \#if method defines @p
 * MAYBE_DECLARE on two lines and requires it to be invoked again on a
 * separate line. This makes COND_CODE_1() more concise and also
 * sometimes more useful when used within another macro's expansion.
 *
 * @note @p _flag can be the result of preprocessor expansion, e.g.
 *	 an expression involving <tt>NUM_VA_ARGS_LESS_1(...)</tt>.
 *	 However, @p _if_1_code is only expanded if @p _flag expands
 *	 to the integer literal 1. Integer expressions that evaluate
 *	 to 1, e.g. after doing some arithmetic, will not work.
 *
 * @param _flag evaluated flag
 * @param _if_1_code result if @p _flag expands to 1; must be in parentheses
 * @param _else_code result otherwise; must be in parentheses
 */



/**
 * @brief Like COND_CODE_1() except tests if @p _flag is 0.
 *
 * This is like COND_CODE_1(), except that it tests whether @p _flag
 * expands to the integer literal 0. It expands to @p _if_0_code if
 * so, and @p _else_code otherwise; both of these must be enclosed in
 * parentheses.
 *
 * @param _flag evaluated flag
 * @param _if_0_code result if @p _flag expands to 0; must be in parentheses
 * @param _else_code result otherwise; must be in parentheses
 * @see COND_CODE_1()
 */



/**
 * @brief Insert code if @p _flag is defined and equals 1.
 *
 * Like COND_CODE_1(), this expands to @p _code if @p _flag is defined to 1;
 * it expands to nothing otherwise.
 *
 * Example:
 *
 *     IF_ENABLED(CONFIG_FLAG, (uint32_t foo;))
 *
 * If @p CONFIG_FLAG is defined to 1, this expands to:
 *
 *     uint32_t foo;
 *
 * and to nothing otherwise.
 *
 * It can be considered as a more compact alternative to:
 *
 *     #if defined(CONFIG_FLAG) && (CONFIG_FLAG == 1)
 *     uint32_t foo;
 *     #endif
 *
 * @param _flag evaluated flag
 * @param _code result if @p _flag expands to 1; must be in parentheses
 */



/**
 * @brief Insert code if @p _flag is not defined as 1.
 *
 * This expands to nothing if @p _flag is defined and equal to 1;
 * it expands to @p _code otherwise.
 *
 * Example:
 *
 *     IF_DISABLED(CONFIG_FLAG, (uint32_t foo;))
 *
 * If @p CONFIG_FLAG isn't defined or different than 1, this expands to:
 *
 *     uint32_t foo;
 *
 * and to nothing otherwise.
 *
 * IF_DISABLED does the opposite of IF_ENABLED.
 *
 * @param _flag evaluated flag
 * @param _code result if @p _flag does not expand to 1; must be in parentheses
 */



/**
 * @brief Check if a macro has a replacement expression
 *
 * If @p a is a macro defined to a nonempty value, this will return
 * true, otherwise it will return false. It only works with defined
 * macros, so an additional @p \#ifdef test may be needed in some cases.
 *
 * This macro may be used with COND_CODE_1() and COND_CODE_0() while
 * processing `__VA_ARGS__` to avoid processing empty arguments.
 *
 * Example:
 *
 *	#define EMPTY
 *	#define NON_EMPTY	1
 *	#undef  UNDEFINED
 *	IS_EMPTY(EMPTY)
 *	IS_EMPTY(NON_EMPTY)
 *	IS_EMPTY(UNDEFINED)
 *	#if defined(EMPTY) && IS_EMPTY(EMPTY) == true
 *	some_conditional_code
 *	#endif
 *
 * In above examples, the invocations of IS_EMPTY(...) return @p true,
 * @p false, and @p true; @p some_conditional_code is included.
 *
 * @param ... macro to check for emptiness (may be `__VA_ARGS__`)
 */


/**
 * @brief Like <tt>a == b</tt>, but does evaluation and
 * short-circuiting at C preprocessor time.
 *
 * This however only works for integer literal from 0 to 4096 (literals with U suffix,
 * e.g. 0U are also included).
 *
 * Examples:
 *
 *   IS_EQ(1, 1)   -> 1
 *   IS_EQ(1U, 1U) -> 1
 *   IS_EQ(1U, 1)  -> 1
 *   IS_EQ(1, 1U)  -> 1
 *   IS_EQ(1, 0)   -> 0
 *
 * @param a Integer literal (can be with U suffix)
 * @param b Integer literal
 *
 */


/**
 * @brief Remove empty arguments from list.
 *
 * During macro expansion, `__VA_ARGS__` and other preprocessor
 * generated lists may contain empty elements, e.g.:
 *
 *	#define LIST ,a,b,,d,
 *
 * Using EMPTY to show each empty element, LIST contains:
 *
 *      EMPTY, a, b, EMPTY, d
 *
 * When processing such lists, e.g. using FOR_EACH(), all empty elements
 * will be processed, and may require filtering out.
 * To make that process easier, it is enough to invoke LIST_DROP_EMPTY
 * which will remove all empty elements.
 *
 * Example:
 *
 *	LIST_DROP_EMPTY(LIST)
 *
 * expands to:
 *
 *	a, b, d
 *
 * @param ... list to be processed
 */



/**
 * @brief Macro with an empty expansion
 *
 * This trivial definition is provided for readability when a macro
 * should expand to an empty result, which e.g. is sometimes needed to
 * silence checkpatch.
 *
 * Example:
 *
 *	#define LIST_ITEM(n) , item##n
 *
 * The above would cause checkpatch to complain, but:
 *
 *	#define LIST_ITEM(n) EMPTY, item##n
 *
 * would not.
 */


/**
 * @brief Macro that expands to its argument
 *
 * This is useful in macros like @c FOR_EACH() when there is no
 * transformation required on the list elements.
 *
 * @param V any value
 */


/**
 * @brief Get nth argument from argument list.
 *
 * @param N Argument index to fetch. Counter from 1.
 * @param ... Variable list of arguments from which one argument is returned.
 *
 * @return Nth argument.
 */


/**
 * @brief Strips n first arguments from the argument list.
 *
 * @param N Number of arguments to discard.
 * @param ... Variable list of arguments.
 *
 * @return argument list without N first arguments.
 */


/**
 * @brief Like <tt>a || b</tt>, but does evaluation and
 * short-circuiting at C preprocessor time.
 *
 * This is not the same as the binary @p || operator; in particular,
 * @p a should expand to an integer literal 0 or 1. However, @p b
 * can be any value.
 *
 * This can be useful when @p b is an expression that would cause a
 * build error when @p a is 1.
 */


/**
 * @brief Like <tt>a && b</tt>, but does evaluation and
 * short-circuiting at C preprocessor time.
 *
 * This is not the same as the binary @p &&, however; in particular,
 * @p a should expand to an integer literal 0 or 1. However, @p b
 * can be any value.
 *
 * This can be useful when @p b is an expression that would cause a
 * build error when @p a is 0.
 */


/**
 * @brief UTIL_INC(x) for an integer literal x from 0 to 4095 expands to an
 * integer literal whose value is x+1.
 *
 * @see UTIL_DEC(x)
 */


/**
 * @brief UTIL_DEC(x) for an integer literal x from 0 to 4095 expands to an
 * integer literal whose value is x-1.
 *
 * @see UTIL_INC(x)
 */


/**
 * @brief UTIL_X2(y) for an integer literal y from 0 to 4095 expands to an
 * integer literal whose value is 2y.
 */



/**
 * @brief Generates a sequence of code with configurable separator.
 *
 * Example:
 *
 *     #define FOO(i, _) MY_PWM ## i
 *     { LISTIFY(PWM_COUNT, FOO, (,)) }
 *
 * The above two lines expand to:
 *
 *    { MY_PWM0 , MY_PWM1 }
 *
 * @param LEN The length of the sequence. Must be an integer literal less
 *            than 4095.
 * @param F A macro function that accepts at least two arguments:
 *          <tt>F(i, ...)</tt>. @p F is called repeatedly in the expansion.
 *          Its first argument @p i is the index in the sequence, and
 *          the variable list of arguments passed to LISTIFY are passed
 *          through to @p F.
 *
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 *
 * @note Calling LISTIFY with undefined arguments has undefined
 * behavior.
 */


/**
 * @brief Call a macro @p F on each provided argument with a given
 *        separator between each call.
 *
 * Example:
 *
 *     #define F(x) int a##x
 *     FOR_EACH(F, (;), 4, 5, 6);
 *
 * This expands to:
 *
 *     int a4;
 *     int a5;
 *     int a6;
 *
 * @param F Macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 * @param ... Variable argument list. The macro @p F is invoked as
 *            <tt>F(element)</tt> for each element in the list.
 */



/**
 * @brief Like FOR_EACH(), but with a terminator instead of a separator,
 *        and drops empty elements from the argument list
 *
 * The @p sep argument to <tt>FOR_EACH(F, (sep), a, b)</tt> is a
 * separator which is placed between calls to @p F, like this:
 *
 *     FOR_EACH(F, (sep), a, b) // F(a) sep F(b)
 *                              //               ^^^ no sep here!
 *
 * By contrast, the @p term argument to <tt>FOR_EACH_NONEMPTY_TERM(F, (term),
 * a, b)</tt> is added after each time @p F appears in the expansion:
 *
 *     FOR_EACH_NONEMPTY_TERM(F, (term), a, b) // F(a) term F(b) term
 *                                             //                ^^^^
 *
 * Further, any empty elements are dropped:
 *
 *     FOR_EACH_NONEMPTY_TERM(F, (term), a, EMPTY, b) // F(a) term F(b) term
 *
 * This is more convenient in some cases, because FOR_EACH_NONEMPTY_TERM()
 * expands to nothing when given an empty argument list, and it's
 * often cumbersome to write a macro @p F that does the right thing
 * even when given an empty argument.
 *
 * One example is when `__VA_ARGS__` may or may not be empty,
 * and the results are embedded in a larger initializer:
 *
 *     #define SQUARE(x) ((x)*(x))
 *
 *     int my_array[] = {
 *             FOR_EACH_NONEMPTY_TERM(SQUARE, (,), FOO(...))
 *             FOR_EACH_NONEMPTY_TERM(SQUARE, (,), BAR(...))
 *             FOR_EACH_NONEMPTY_TERM(SQUARE, (,), BAZ(...))
 *     };
 *
 * This is more convenient than:
 *
 * 1. figuring out whether the @p FOO, @p BAR, and @p BAZ expansions
 *    are empty and adding a comma manually (or not) between FOR_EACH()
 *    calls
 * 2. rewriting SQUARE so it reacts appropriately when "x" is empty
 *    (which would be necessary if e.g. @p FOO expands to nothing)
 *
 * @param F Macro to invoke on each nonempty element of the variable
 *          arguments
 * @param term Terminator (e.g. comma or semicolon) placed after each
 *             invocation of F. Must be in parentheses; this is required
 *             to enable providing a comma as separator.
 * @param ... Variable argument list. The macro @p F is invoked as
 *            <tt>F(element)</tt> for each nonempty element in the list.
 */
# 569 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_macro.h"
/**
 * @brief Call macro @p F on each provided argument, with the argument's index
 *        as an additional parameter.
 *
 * This is like FOR_EACH(), except @p F should be a macro which takes two
 * arguments: <tt>F(index, variable_arg)</tt>.
 *
 * Example:
 *
 *     #define F(idx, x) int a##idx = x
 *     FOR_EACH_IDX(F, (;), 4, 5, 6);
 *
 * This expands to:
 *
 *     int a0 = 4;
 *     int a1 = 5;
 *     int a2 = 6;
 *
 * @param F Macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 * @param ... Variable argument list. The macro @p F is invoked as
 *            <tt>F(index, element)</tt> for each element in the list.
 */



/**
 * @brief Call macro @p F on each provided argument, with an additional fixed
 *	  argument as a parameter.
 *
 * This is like FOR_EACH(), except @p F should be a macro which takes two
 * arguments: <tt>F(variable_arg, fixed_arg)</tt>.
 *
 * Example:
 *
 *     static void func(int val, void *dev);
 *     FOR_EACH_FIXED_ARG(func, (;), dev, 4, 5, 6);
 *
 * This expands to:
 *
 *     func(4, dev);
 *     func(5, dev);
 *     func(6, dev);
 *
 * @param F Macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 * @param fixed_arg Fixed argument passed to @p F as the second macro parameter.
 * @param ... Variable argument list. The macro @p F is invoked as
 *            <tt>F(element, fixed_arg)</tt> for each element in the list.
 */



/**
 * @brief Calls macro @p F for each variable argument with an index and fixed
 *        argument
 *
 * This is like the combination of FOR_EACH_IDX() with FOR_EACH_FIXED_ARG().
 *
 * Example:
 *
 *     #define F(idx, x, fixed_arg) int fixed_arg##idx = x
 *     FOR_EACH_IDX_FIXED_ARG(F, (;), a, 4, 5, 6);
 *
 * This expands to:
 *
 *     int a0 = 4;
 *     int a1 = 5;
 *     int a2 = 6;
 *
 * @param F Macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            This is required to enable providing a comma as separator.
 * @param fixed_arg Fixed argument passed to @p F as the third macro parameter.
 * @param ... Variable list of arguments. The macro @p F is invoked as
 *            <tt>F(index, element, fixed_arg)</tt> for each element in
 *            the list.
 */



/** @brief Reverse arguments order.
 *
 * @param ... Variable argument list.
 */



/**
 * @brief Number of arguments in the variable arguments list minus one.
 *
 * @note Supports up to 64 arguments.
 *
 * @param ... List of arguments
 * @return  Number of variadic arguments in the argument list, minus one
 */
# 676 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_macro.h"
/**
 * @brief Number of arguments in the variable arguments list.
 *
 * @note Supports up to 63 arguments.
 *
 * @param ... List of arguments
 * @return  Number of variadic arguments in the argument list
 */



/**
 * @brief Mapping macro that pastes results together
 *
 * This is similar to FOR_EACH() in that it invokes a macro repeatedly
 * on each element of `__VA_ARGS__`. However, unlike FOR_EACH(),
 * MACRO_MAP_CAT() pastes the results together into a single token.
 *
 * For example, with this macro FOO:
 *
 *     #define FOO(x) item_##x##_
 *
 * <tt>MACRO_MAP_CAT(FOO, a, b, c),</tt> expands to the token:
 *
 *     item_a_item_b_item_c_
 *
 * @param ... Macro to expand on each argument, followed by its
 *            arguments. (The macro should take exactly one argument.)
 * @return The results of expanding the macro on each argument, all pasted
 *         together
 */


/**
 * @brief Mapping macro that pastes a fixed number of results together
 *
 * Similar to @ref MACRO_MAP_CAT(), but expects a fixed number of
 * arguments. If more arguments are given than are expected, the rest
 * are ignored.
 *
 * @param N   Number of arguments to map
 * @param ... Macro to expand on each argument, followed by its
 *            arguments. (The macro should take exactly one argument.)
 * @return The results of expanding the macro on each argument, all pasted
 *         together
 */


/**
 * @}
 */


}
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 2

/* needs to be outside _ASMLANGUAGE so 'true' and 'false' can turn
 * into '1' and '0' for asm or linker scripts
 */
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h"
/*
 * Copyright (c) 2011-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h"
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 2
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h"
extern "C" {


/* Wrapper around printk to avoid including printk.h in assert.h */
void __attribute__((format (printf, 1, 2))) assert_print(const char *fmt, ...);


}
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 2


# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h"
/** @brief Number of bits that make up a type */



extern "C" {


/**
 * @defgroup sys-util Utility Functions
 * @since 2.4
 * @version 0.1.0
 * @ingroup utilities
 * @{
 */

/** @brief Cast @p x, a pointer, to an unsigned integer. */

/** @brief Cast @p x, an unsigned integer, to a <tt>void*</tt>. */

/** @brief Cast @p x, a pointer, to a signed integer. */

/** @brief Cast @p x, a signed integer, to a <tt>void*</tt>. */






/** Number of bits in a byte. */


/** Number of bits in a nibble. */


/** Number of nibbles in a byte. */


/** Number of bits in a long int. */


/** Number of bits in a long long int. */


/**
 * @brief Create a contiguous bitmask starting at bit position @p l
 *        and ending at position @p h.
 */



/**
 * @brief Create a contiguous 64-bit bitmask starting at bit position @p l
 *        and ending at position @p h.
 */



/** @brief 0 if @p cond is true-ish; causes a compile error otherwise. */




/* The built-in function used below for type checking in C is not
 * supported by GNU C++.
 */
# 125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h"
/**
 * @brief Declare a flexible array member.
 *
 * This macro declares a flexible array member in a struct. The member
 * is named @p name and has type @p type.
 *
 * Since C99, flexible arrays are part of the C standard, but for historical
 * reasons many places still use an older GNU extension that is declare
 * zero length arrays.
 *
 * Although zero length arrays are flexible arrays, we can't blindly
 * replace [0] with [] because of some syntax limitations. This macro
 * workaround these limitations.
 *
 * It is specially useful for cases where flexible arrays are
 * used in unions or are not the last element in the struct.
 */






/**
 * @brief Whether @p ptr is an element of @p array
 *
 * This macro can be seen as a slightly stricter version of @ref PART_OF_ARRAY
 * in that it also ensures that @p ptr is aligned to an array-element boundary
 * of @p array.
 *
 * In C, passing a pointer as @p array causes a compile error.
 *
 * @param array the array in question
 * @param ptr the pointer to check
 *
 * @return 1 if @p ptr is part of @p array, 0 otherwise
 */





/**
 * @brief Index of @p ptr within @p array
 *
 * With `CONFIG_ASSERT=y`, this macro will trigger a runtime assertion
 * when @p ptr does not fall into the range of @p array or when @p ptr
 * is not aligned to an array-element boundary of @p array.
 *
 * In C, passing a pointer as @p array causes a compile error.
 *
 * @param array the array in question
 * @param ptr pointer to an element of @p array
 *
 * @return the array index of @p ptr within @p array, on success
 */






/**
 * @brief Check if a pointer @p ptr lies within @p array.
 *
 * In C but not C++, this causes a compile error if @p array is not an array
 * (e.g. if @p ptr and @p array are mixed up).
 *
 * @param array an array
 * @param ptr a pointer
 * @return 1 if @p ptr is part of @p array, 0 otherwise
 */




/**
 * @brief Array-index of @p ptr within @p array, rounded down
 *
 * This macro behaves much like @ref ARRAY_INDEX with the notable
 * difference that it accepts any @p ptr in the range of @p array rather than
 * exclusively a @p ptr aligned to an array-element boundary of @p array.
 *
 * With `CONFIG_ASSERT=y`, this macro will trigger a runtime assertion
 * when @p ptr does not fall into the range of @p array.
 *
 * In C, passing a pointer as @p array causes a compile error.
 *
 * @param array the array in question
 * @param ptr pointer to an element of @p array
 *
 * @return the array index of @p ptr within @p array, on success
 */






/**
 * @brief Iterate over members of an array using an index variable
 *
 * @param array the array in question
 * @param idx name of array index variable
 */


/**
 * @brief Iterate over members of an array using a pointer
 *
 * @param array the array in question
 * @param ptr pointer to an element of @p array
 */




/**
 * @brief Validate if two entities have a compatible type
 *
 * @param a the first entity to be compared
 * @param b the second entity to be compared
 * @return 1 if the two elements are compatible, 0 if they are not
 */


/**
 * @brief Validate CONTAINER_OF parameters, only applies to C mode.
 */
# 263 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h"
/**
 * @brief Get a pointer to a structure containing the element
 *
 * Example:
 *
 *	struct foo {
 *		int bar;
 *	};
 *
 *	struct foo my_foo;
 *	int *ptr = &my_foo.bar;
 *
 *	struct foo *container = CONTAINER_OF(ptr, struct foo, bar);
 *
 * Above, @p container points at @p my_foo.
 *
 * @param ptr pointer to a structure element
 * @param type name of the type that @p ptr is an element of
 * @param field the name of the field within the struct @p ptr points to
 * @return a pointer to the structure that contains @p ptr
 */






/**
 * @brief Report the size of a struct field in bytes.
 *
 * @param type The structure containing the field of interest.
 * @param member The field to return the size of.
 *
 * @return The field size.
 */


/**
 * @brief Concatenate input arguments
 *
 * Concatenate provided tokens into a combined token during the preprocessor pass.
 * This can be used to, for ex., build an identifier out of multiple parts,
 * where one of those parts may be, for ex, a number, another macro, or a macro argument.
 *
 * @param ... Tokens to concatencate
 *
 * @return Concatenated token.
 */



/**
 * @brief Check if @p ptr is aligned to @p align alignment
 */


/**
 * @brief Value of @p x rounded up to the next multiple of @p align.
 */




/**
 * @brief Value of @p x rounded down to the previous multiple of @p align.
 */



/** @brief Value of @p x rounded up to the next word boundary. */


/** @brief Value of @p x rounded down to the previous word boundary. */


/**
 * @brief Divide and round up.
 *
 * Example:
 * @code{.c}
 * DIV_ROUND_UP(1, 2); // 1
 * DIV_ROUND_UP(3, 2); // 2
 * @endcode
 *
 * @param n Numerator.
 * @param d Denominator.
 *
 * @return The result of @p n / @p d, rounded up.
 */


/**
 * @brief Divide and round to the nearest integer.
 *
 * Example:
 * @code{.c}
 * DIV_ROUND_CLOSEST(5, 2); // 3
 * DIV_ROUND_CLOSEST(5, -2); // -3
 * DIV_ROUND_CLOSEST(5, 3); // 2
 * @endcode
 *
 * @param n Numerator.
 * @param d Denominator.
 *
 * @return The result of @p n / @p d, rounded to the nearest integer.
 */






/**
 * @brief Obtain the maximum of two values.
 *
 * @note Arguments are evaluated twice. Use Z_MAX for a GCC-only, single
 * evaluation version
 *
 * @param a First value.
 * @param b Second value.
 *
 * @returns Maximum value of @p a and @p b.
 */




/**
 * @brief Obtain the minimum of two values.
 *
 * @note Arguments are evaluated twice. Use Z_MIN for a GCC-only, single
 * evaluation version
 *
 * @param a First value.
 * @param b Second value.
 *
 * @returns Minimum value of @p a and @p b.
 */




/**
 * @brief Clamp a value to a given range.
 *
 * @note Arguments are evaluated multiple times. Use Z_CLAMP for a GCC-only,
 * single evaluation version.
 *
 * @param val Value to be clamped.
 * @param low Lowest allowed value (inclusive).
 * @param high Highest allowed value (inclusive).
 *
 * @returns Clamped value.
 */



/**
 * @brief Checks if a value is within range.
 *
 * @note @p val is evaluated twice.
 *
 * @param val Value to be checked.
 * @param min Lower bound (inclusive).
 * @param max Upper bound (inclusive).
 *
 * @retval true If value is within range
 * @retval false If the value is not within range
 */


/**
 * @brief Is @p x a power of two?
 * @param x value to check
 * @return true if @p x is a power of two, false otherwise
 */
static inline bool is_power_of_two(unsigned int x)
{
 return (((x) != 0U) && (((x) & ((x) - 1U)) == 0U));
}

/**
 * @brief Is @p p equal to ``NULL``?
 *
 * Some macros may need to check their arguments against NULL to support
 * multiple use-cases, but NULL checks can generate warnings if such a macro
 * is used in contexts where that particular argument can never be NULL.
 *
 * The warnings can be triggered if:
 * a) all macros are expanded (e.g. when using CONFIG_COMPILER_SAVE_TEMPS=y)
 * or
 * b) tracking of macro expansions are turned off (-ftrack-macro-expansion=0)
 *
 * The warnings can be circumvented by using this inline function for doing
 * the NULL check within the macro. The compiler is still able to optimize the
 * NULL check out at a later stage.
 *
 * @param p Pointer to check
 * @return true if @p p is equal to ``NULL``, false otherwise
 */
static inline __attribute__((always_inline)) bool is_null_no_warn(void *p)
{
 return p == 
# 465 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 3 4
            __null
# 465 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h"
                ;
}

/**
 * @brief Arithmetic shift right
 * @param value value to shift
 * @param shift number of bits to shift
 * @return @p value shifted right by @p shift; opened bit positions are
 *         filled with the sign bit
 */
static inline int64_t arithmetic_shift_right(int64_t value, uint8_t shift)
{
 int64_t sign_ext;

 if (shift == 0U) {
  return value;
 }

 /* extract sign bit */
 sign_ext = (value >> 63) & 1;

 /* make all bits of sign_ext be the same as the value's sign bit */
 sign_ext = -sign_ext;

 /* shift value and fill opened bit positions with sign bit */
 return (value >> shift) | (sign_ext << (64 - shift));
}

/**
 * @brief byte by byte memcpy.
 *
 * Copy `size` bytes of `src` into `dest`. This is guaranteed to be done byte by byte.
 *
 * @param dst Pointer to the destination memory.
 * @param src Pointer to the source of the data.
 * @param size The number of bytes to copy.
 */
static inline void bytecpy(void *dst, const void *src, size_t size)
{
 size_t i;

 for (i = 0; i < size; ++i) {
  ((volatile uint8_t *)dst)[i] = ((volatile const uint8_t *)src)[i];
 }
}

/**
 * @brief byte by byte swap.
 *
 * Swap @a size bytes between memory regions @a a and @a b. This is
 * guaranteed to be done byte by byte.
 *
 * @param a Pointer to the first memory region.
 * @param b Pointer to the second memory region.
 * @param size The number of bytes to swap.
 */
static inline void byteswp(void *a, void *b, size_t size)
{
 uint8_t t;
 uint8_t *aa = (uint8_t *)a;
 uint8_t *bb = (uint8_t *)b;

 for (; size > 0; --size) {
  t = *aa;
  *aa++ = *bb;
  *bb++ = t;
 }
}

/**
 * @brief      Convert a single character into a hexadecimal nibble.
 *
 * @param c     The character to convert
 * @param x     The address of storage for the converted number.
 *
 *  @return Zero on success or (negative) error code otherwise.
 */
int char2hex(char c, uint8_t *x);

/**
 * @brief      Convert a single hexadecimal nibble into a character.
 *
 * @param c     The number to convert
 * @param x     The address of storage for the converted character.
 *
 *  @return Zero on success or (negative) error code otherwise.
 */
int hex2char(uint8_t x, char *c);

/**
 * @brief      Convert a binary array into string representation.
 *
 * @param buf     The binary array to convert
 * @param buflen  The length of the binary array to convert
 * @param hex     Address of where to store the string representation.
 * @param hexlen  Size of the storage area for string representation.
 *
 * @return     The length of the converted string, or 0 if an error occurred.
 */
size_t bin2hex(const uint8_t *buf, size_t buflen, char *hex, size_t hexlen);

/**
 * @brief      Convert a hexadecimal string into a binary array.
 *
 * @param hex     The hexadecimal string to convert
 * @param hexlen  The length of the hexadecimal string to convert.
 * @param buf     Address of where to store the binary data
 * @param buflen  Size of the storage area for binary data
 *
 * @return     The length of the binary array, or 0 if an error occurred.
 */
size_t hex2bin(const char *hex, size_t hexlen, uint8_t *buf, size_t buflen);

/**
 * @brief Convert a binary coded decimal (BCD 8421) value to binary.
 *
 * @param bcd BCD 8421 value to convert.
 *
 * @return Binary representation of input value.
 */
static inline uint8_t bcd2bin(uint8_t bcd)
{
 return ((10 * (bcd >> 4)) + (bcd & 0x0F));
}

/**
 * @brief Convert a binary value to binary coded decimal (BCD 8421).
 *
 * @param bin Binary value to convert.
 *
 * @return BCD 8421 representation of input value.
 */
static inline uint8_t bin2bcd(uint8_t bin)
{
 return (((bin / 10) << 4) | (bin % 10));
}

/**
 * @brief      Convert a uint8_t into a decimal string representation.
 *
 * Convert a uint8_t value into its ASCII decimal string representation.
 * The string is terminated if there is enough space in buf.
 *
 * @param buf     Address of where to store the string representation.
 * @param buflen  Size of the storage area for string representation.
 * @param value   The value to convert to decimal string
 *
 * @return     The length of the converted string (excluding terminator if
 *             any), or 0 if an error occurred.
 */
uint8_t u8_to_dec(char *buf, uint8_t buflen, uint8_t value);

/**
 * @brief Sign extend an 8, 16 or 32 bit value using the index bit as sign bit.
 *
 * @param value The value to sign expand.
 * @param index 0 based bit index to sign bit (0 to 31)
 */
static inline int32_t sign_extend(uint32_t value, uint8_t index)
{
 { };

 uint8_t shift = 31 - index;

 return (int32_t)(value << shift) >> shift;
}

/**
 * @brief Sign extend a 64 bit value using the index bit as sign bit.
 *
 * @param value The value to sign expand.
 * @param index 0 based bit index to sign bit (0 to 63)
 */
static inline int64_t sign_extend_64(uint64_t value, uint8_t index)
{
 { };

 uint8_t shift = 63 - index;

 return (int64_t)(value << shift) >> shift;
}

/**
 * @brief Properly truncate a NULL-terminated UTF-8 string
 *
 * Take a NULL-terminated UTF-8 string and ensure that if the string has been
 * truncated (by setting the NULL terminator) earlier by other means, that
 * the string ends with a properly formatted UTF-8 character (1-4 bytes).
 *
 * @htmlonly
 * Example:
 *      char test_str[] = "€€€";
 *      char trunc_utf8[8];
 *
 *      printf("Original : %s\n", test_str); // €€€
 *      strncpy(trunc_utf8, test_str, sizeof(trunc_utf8));
 *      trunc_utf8[sizeof(trunc_utf8) - 1] = '\0';
 *      printf("Bad      : %s\n", trunc_utf8); // €€�
 *      utf8_trunc(trunc_utf8);
 *      printf("Truncated: %s\n", trunc_utf8); // €€
 * @endhtmlonly
 *
 * @param utf8_str NULL-terminated string
 *
 * @return Pointer to the @p utf8_str
 */
char *utf8_trunc(char *utf8_str);

/**
 * @brief Copies a UTF-8 encoded string from @p src to @p dst
 *
 * The resulting @p dst will always be NULL terminated if @p n is larger than 0,
 * and the @p dst string will always be properly UTF-8 truncated.
 *
 * @param dst The destination of the UTF-8 string.
 * @param src The source string
 * @param n   The size of the @p dst buffer. Maximum number of characters copied
 *            is @p n - 1. If 0 nothing will be done, and the @p dst will not be
 *            NULL terminated.
 *
 * @return Pointer to the @p dst
 */
char *utf8_lcpy(char *dst, const char *src, size_t n);





/**
 * @brief Compute log2(x)
 *
 * @note This macro expands its argument multiple times (to permit use
 *       in constant expressions), which must not have side effects.
 *
 * @param x An unsigned integral value to compute logarithm of (positive only)
 *
 * @return log2(x) when 1 <= x <= max(x), -1 when x < 1
 */


/**
 * @brief Compute ceil(log2(x))
 *
 * @note This macro expands its argument multiple times (to permit use
 *       in constant expressions), which must not have side effects.
 *
 * @param x An unsigned integral value
 *
 * @return ceil(log2(x)) when 1 <= x <= max(type(x)), 0 when x < 1
 */


/**
 * @brief Compute next highest power of two
 *
 * Equivalent to 2^ceil(log2(x))
 *
 * @note This macro expands its argument multiple times (to permit use
 *       in constant expressions), which must not have side effects.
 *
 * @param x An unsigned integral value
 *
 * @return 2^ceil(log2(x)) or 0 if 2^ceil(log2(x)) would saturate 64-bits
 */


/**
 * @brief Determine if a buffer exceeds highest address
 *
 * This macro determines if a buffer identified by a starting address @a addr
 * and length @a buflen spans a region of memory that goes beyond the highest
 * possible address (thereby resulting in a pointer overflow).
 *
 * @param addr Buffer starting address
 * @param buflen Length of the buffer
 *
 * @return true if pointer overflow detected, false otherwise
 */




/**
 * @brief XOR n bytes
 *
 * @param dst  Destination of where to store result. Shall be @p len bytes.
 * @param src1 First source. Shall be @p len bytes.
 * @param src2 Second source. Shall be @p len bytes.
 * @param len  Number of bytes to XOR.
 */
static inline void mem_xor_n(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, size_t len)
{
 while (len--) {
  *dst++ = *src1++ ^ *src2++;
 }
}

/**
 * @brief XOR 32 bits
 *
 * @param dst  Destination of where to store result. Shall be 32 bits.
 * @param src1 First source. Shall be 32 bits.
 * @param src2 Second source. Shall be 32 bits.
 */
static inline void mem_xor_32(uint8_t dst[4], const uint8_t src1[4], const uint8_t src2[4])
{
 mem_xor_n(dst, src1, src2, 4U);
}

/**
 * @brief XOR 128 bits
 *
 * @param dst  Destination of where to store result. Shall be 128 bits.
 * @param src1 First source. Shall be 128 bits.
 * @param src2 Second source. Shall be 128 bits.
 */
static inline void mem_xor_128(uint8_t dst[16], const uint8_t src1[16], const uint8_t src2[16])
{
 mem_xor_n(dst, src1, src2, 16);
}


}


/* This file must be included at the end of the !_ASMLANGUAGE guard.
 * It depends on macros defined in this file above which cannot be forward declared.
 */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h" 1
/*
 * Copyright (c) 2019 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h" 2


extern "C" {


/**
 * @file
 * @defgroup timeutil_unit_apis Time Units Helpers
 * @ingroup timeutil_apis
 *
 * @brief Various helper APIs for converting between time units.
 * @{
 */

/** @brief System-wide macro to denote "forever" in milliseconds
 *
 *  Usage of this macro is limited to APIs that want to expose a timeout value
 *  that can optionally be unlimited, or "forever".
 *  This macro can not be fed into kernel functions or macros directly. Use
 *  @ref SYS_TIMEOUT_MS instead.
 */


/** @brief System-wide macro to denote "forever" in microseconds
 *
 * See @ref SYS_FOREVER_MS.
 */


/** @brief System-wide macro to initialize #k_timeout_t with a number of ticks
 * converted from milliseconds.
 */




/** @brief System-wide macro to convert milliseconds to kernel timeouts
 */


/* Exhaustively enumerated, highly optimized time unit conversion API */
# 75 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h"
/**
 * @brief Get the system timer frequency.
 * @return system timer frequency in Hz
 */






/** @internal
 * Macro determines if fast conversion algorithm can be used. It checks if
 * maximum timeout represented in source frequency domain and multiplied by
 * target frequency fits in 64 bits.
 *
 * @param from_hz Source frequency.
 * @param to_hz Target frequency.
 *
 * @retval true Use faster algorithm.
 * @retval false Use algorithm preventing overflow of intermediate value.
 */




/* Time converter generator gadget.  Selects from one of three
 * conversion algorithms: ones that take advantage when the
 * frequencies are an integer ratio (in either direction), or a full
 * precision conversion.  Clever use of extra arguments causes all the
 * selection logic to be optimized out, and the generated code even
 * reduces to 32 bit only if a ratio conversion is available and the
 * result is 32 bits.
 *
 * This isn't intended to be used directly, instead being wrapped
 * appropriately in a user-facing API.  The boolean arguments are:
 *
 *    const_hz  - The hz arguments are known to be compile-time
 *                constants (because otherwise the modulus test would
 *                have to be done at runtime)
 *    result32  - The result will be truncated to 32 bits on use
 *    round_up  - Return the ceiling of the resulting fraction
 *    round_off - Return the nearest value to the resulting fraction
 *                (pass both round_up/off as false to get "round_down")
 *
 * All of this must be implemented as expressions so that, when constant,
 * the results may be used to initialize global variables.
 */

/* true if the conversion is the identity */



/* true if the conversion requires a simple integer multiply */



/* true if the conversion requires a simple integer division */



/*
 * Compute the offset needed to round the result correctly when
 * the conversion requires a simple integer division
 */





/*
 * All users of this macro MUST ensure its output is never used when a/b
 * is zero because it incorrectly but by design never returns zero.
 *
 * Some compiler versions emit a divide-by-zero warning for this code:
 * "false ? 42/0 : 43". Dealing with (generated) dead code is hard:
 * https://github.com/zephyrproject-rtos/zephyr/issues/63564
 * https://blog.llvm.org/2011/05/what-every-c-programmer-should-know_21.html
 *
 * To silence such divide-by-zero warnings, "cheat" and never return
 * zero.  Return 1 instead. Use octal "01u" as a breadcrumb to ease a
 * little bit the huge pain of "reverse-engineering" pre-processor
 * output.
 *
 * The "Elvis" operator "a/b ?: 1" is tempting because it avoids
 * evaluating the same expression twice. However: 1. it's a non-standard
 * GNU extension; 2. everything in this file is designed to be computed
 * at compile time anyway.
 */


/*
 * Compute the offset needed to round the result correctly when
 * the conversion requires a full mul/div
 */





/* Integer division 32-bit conversion */
# 189 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h"
/* Integer multiplication 32-bit conversion */



/* General 32-bit conversion */




/* Integer division 64-bit conversion */





/* Integer multiplication 64-bit conversion */



/* Fast 64-bit conversion. This relies on the multiply not overflowing */




/* Slow 64-bit conversion. This avoids overflowing the multiply */





/* General 64-bit conversion. Uses one of the two above macros */





/* Convert, generating a 32-bit result */
# 244 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h"
/* Convert, generating a 64-bit result */
# 268 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h"
/* The following code is programmatically generated using this perl
 * code, which enumerates all possible combinations of units, rounding
 * modes and precision.  Do not edit directly.
 *
 * Note that nano/microsecond conversions are only defined with 64 bit
 * precision.  These units conversions were not available in 32 bit
 * variants historically, and doing 32 bit math with units that small
 * has precision traps that we probably don't want to support in an
 * official API.
 *
 * #!/usr/bin/perl -w
 * use strict;
 *
 * my %human = ("sec" => "seconds",
 *              "ms" => "milliseconds",
 *              "us" => "microseconds",
 *              "ns" => "nanoseconds",
 *              "cyc" => "hardware cycles",
 *              "ticks" => "ticks");
 * my %human_round = ("ceil" => "Rounds up",
 *                    "near" => "Round nearest",
 *                    "floor" => "Truncates");
 *
 * sub big { return $_[0] eq "us" || $_[0] eq "ns"; }
 * sub prefix { return $_[0] eq "sec" || $_[0] eq "ms" || $_[0] eq "us" || $_[0] eq "ns"; }
 *
 * for my $from_unit ("sec", "ms", "us", "ns", "cyc", "ticks") {
 *     for my $to_unit ("sec", "ms", "us", "ns", "cyc", "ticks") {
 *         next if $from_unit eq $to_unit;
 *         next if prefix($from_unit) && prefix($to_unit);
 *         for my $round ("floor", "near", "ceil") {
 *             for(my $big=0; $big <= 1; $big++) {
 *                 my $sz = $big ? 64 : 32;
 *                 my $sym = "k_${from_unit}_to_${to_unit}_$round$sz";
 *                 my $type = "uint${sz}_t";
 *                 my $const_hz = ($from_unit eq "cyc" || $to_unit eq "cyc")
 *                     ? "Z_CCYC" : "true";
 *                 my $ret32 = $big ? "64" : "32";
 *                 my $rup = $round eq "ceil" ? "true" : "false";
 *                 my $roff = $round eq "near" ? "true" : "false";
 *
 *                 my $hfrom = $human{$from_unit};
 *                 my $hto = $human{$to_unit};
 *                 my $hround = $human_round{$round};
 *                 print "/", "** \@brief Convert $hfrom to $hto. $ret32 bits. $hround.\n";
 *                 print " *\n";
 *                 print " * Converts time values in $hfrom to $hto.\n";
 *                 print " * Computes result in $sz bit precision.\n";
 *                 if ($round eq "ceil") {
 *                     print " * Rounds up to the next highest output unit.\n";
 *                 } elsif ($round eq "near") {
 *                     print " * Rounds to the nearest output unit.\n";
 *                 } else {
 *                     print " * Truncates to the next lowest output unit.\n";
 *                 }
 *                 print " *\n";
 *                 print " * \@warning Generated. Do not edit. See above.\n";
 *                 print " *\n";
 *                 print " * \@param t Source time in $hfrom. uint64_t\n";
 *                 print " *\n";
 *                 print " * \@return The converted time value in $hto. $type\n";
 *                 print " *", "/\n";
 *                 print "#define $sym(t) \\\n";
 *                 print "\tz_tmcvt_$ret32(t, Z_HZ_$from_unit, Z_HZ_$to_unit,";
 *                 print " $const_hz, $rup, $roff)\n";
 *                 print "\n\n";
 *             }
 *         }
 *     }
 * }
 */

/* Some more concise declarations to simplify the generator script and
 * save bytes below
 */
# 351 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h"
/** @brief Convert seconds to hardware cycles. 32 bits. Truncates.
 *
 * Converts time values in seconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert seconds to hardware cycles. 64 bits. Truncates.
 *
 * Converts time values in seconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert seconds to hardware cycles. 32 bits. Round nearest.
 *
 * Converts time values in seconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert seconds to hardware cycles. 64 bits. Round nearest.
 *
 * Converts time values in seconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert seconds to hardware cycles. 32 bits. Rounds up.
 *
 * Converts time values in seconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert seconds to hardware cycles. 64 bits. Rounds up.
 *
 * Converts time values in seconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert seconds to ticks. 32 bits. Truncates.
 *
 * Converts time values in seconds to ticks.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert seconds to ticks. 64 bits. Truncates.
 *
 * Converts time values in seconds to ticks.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert seconds to ticks. 32 bits. Round nearest.
 *
 * Converts time values in seconds to ticks.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert seconds to ticks. 64 bits. Round nearest.
 *
 * Converts time values in seconds to ticks.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert seconds to ticks. 32 bits. Rounds up.
 *
 * Converts time values in seconds to ticks.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert seconds to ticks. 64 bits. Rounds up.
 *
 * Converts time values in seconds to ticks.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in seconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert milliseconds to hardware cycles. 32 bits. Truncates.
 *
 * Converts time values in milliseconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert milliseconds to hardware cycles. 64 bits. Truncates.
 *
 * Converts time values in milliseconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert milliseconds to hardware cycles. 32 bits. Round nearest.
 *
 * Converts time values in milliseconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert milliseconds to hardware cycles. 64 bits. Round nearest.
 *
 * Converts time values in milliseconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert milliseconds to hardware cycles. 32 bits. Rounds up.
 *
 * Converts time values in milliseconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert milliseconds to hardware cycles. 64 bits. Rounds up.
 *
 * Converts time values in milliseconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert milliseconds to ticks. 32 bits. Truncates.
 *
 * Converts time values in milliseconds to ticks.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert milliseconds to ticks. 64 bits. Truncates.
 *
 * Converts time values in milliseconds to ticks.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert milliseconds to ticks. 32 bits. Round nearest.
 *
 * Converts time values in milliseconds to ticks.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert milliseconds to ticks. 64 bits. Round nearest.
 *
 * Converts time values in milliseconds to ticks.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert milliseconds to ticks. 32 bits. Rounds up.
 *
 * Converts time values in milliseconds to ticks.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert milliseconds to ticks. 64 bits. Rounds up.
 *
 * Converts time values in milliseconds to ticks.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in milliseconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert microseconds to hardware cycles. 32 bits. Truncates.
 *
 * Converts time values in microseconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert microseconds to hardware cycles. 64 bits. Truncates.
 *
 * Converts time values in microseconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert microseconds to hardware cycles. 32 bits. Round nearest.
 *
 * Converts time values in microseconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert microseconds to hardware cycles. 64 bits. Round nearest.
 *
 * Converts time values in microseconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert microseconds to hardware cycles. 32 bits. Rounds up.
 *
 * Converts time values in microseconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert microseconds to hardware cycles. 64 bits. Rounds up.
 *
 * Converts time values in microseconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert microseconds to ticks. 32 bits. Truncates.
 *
 * Converts time values in microseconds to ticks.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert microseconds to ticks. 64 bits. Truncates.
 *
 * Converts time values in microseconds to ticks.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert microseconds to ticks. 32 bits. Round nearest.
 *
 * Converts time values in microseconds to ticks.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert microseconds to ticks. 64 bits. Round nearest.
 *
 * Converts time values in microseconds to ticks.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert microseconds to ticks. 32 bits. Rounds up.
 *
 * Converts time values in microseconds to ticks.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert microseconds to ticks. 64 bits. Rounds up.
 *
 * Converts time values in microseconds to ticks.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in microseconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert nanoseconds to hardware cycles. 32 bits. Truncates.
 *
 * Converts time values in nanoseconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert nanoseconds to hardware cycles. 64 bits. Truncates.
 *
 * Converts time values in nanoseconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert nanoseconds to hardware cycles. 32 bits. Round nearest.
 *
 * Converts time values in nanoseconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert nanoseconds to hardware cycles. 64 bits. Round nearest.
 *
 * Converts time values in nanoseconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert nanoseconds to hardware cycles. 32 bits. Rounds up.
 *
 * Converts time values in nanoseconds to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert nanoseconds to hardware cycles. 64 bits. Rounds up.
 *
 * Converts time values in nanoseconds to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert nanoseconds to ticks. 32 bits. Truncates.
 *
 * Converts time values in nanoseconds to ticks.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert nanoseconds to ticks. 64 bits. Truncates.
 *
 * Converts time values in nanoseconds to ticks.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert nanoseconds to ticks. 32 bits. Round nearest.
 *
 * Converts time values in nanoseconds to ticks.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert nanoseconds to ticks. 64 bits. Round nearest.
 *
 * Converts time values in nanoseconds to ticks.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert nanoseconds to ticks. 32 bits. Rounds up.
 *
 * Converts time values in nanoseconds to ticks.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert nanoseconds to ticks. 64 bits. Rounds up.
 *
 * Converts time values in nanoseconds to ticks.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in nanoseconds. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert hardware cycles to seconds. 32 bits. Truncates.
 *
 * Converts time values in hardware cycles to seconds.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in seconds. uint32_t
 */




/** @brief Convert hardware cycles to seconds. 64 bits. Truncates.
 *
 * Converts time values in hardware cycles to seconds.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in seconds. uint64_t
 */




/** @brief Convert hardware cycles to seconds. 32 bits. Round nearest.
 *
 * Converts time values in hardware cycles to seconds.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in seconds. uint32_t
 */




/** @brief Convert hardware cycles to seconds. 64 bits. Round nearest.
 *
 * Converts time values in hardware cycles to seconds.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in seconds. uint64_t
 */




/** @brief Convert hardware cycles to seconds. 32 bits. Rounds up.
 *
 * Converts time values in hardware cycles to seconds.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in seconds. uint32_t
 */




/** @brief Convert hardware cycles to seconds. 64 bits. Rounds up.
 *
 * Converts time values in hardware cycles to seconds.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in seconds. uint64_t
 */




/** @brief Convert hardware cycles to milliseconds. 32 bits. Truncates.
 *
 * Converts time values in hardware cycles to milliseconds.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in milliseconds. uint32_t
 */




/** @brief Convert hardware cycles to milliseconds. 64 bits. Truncates.
 *
 * Converts time values in hardware cycles to milliseconds.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in milliseconds. uint64_t
 */




/** @brief Convert hardware cycles to milliseconds. 32 bits. Round nearest.
 *
 * Converts time values in hardware cycles to milliseconds.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in milliseconds. uint32_t
 */




/** @brief Convert hardware cycles to milliseconds. 64 bits. Round nearest.
 *
 * Converts time values in hardware cycles to milliseconds.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in milliseconds. uint64_t
 */




/** @brief Convert hardware cycles to milliseconds. 32 bits. Rounds up.
 *
 * Converts time values in hardware cycles to milliseconds.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in milliseconds. uint32_t
 */




/** @brief Convert hardware cycles to milliseconds. 64 bits. Rounds up.
 *
 * Converts time values in hardware cycles to milliseconds.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in milliseconds. uint64_t
 */




/** @brief Convert hardware cycles to microseconds. 32 bits. Truncates.
 *
 * Converts time values in hardware cycles to microseconds.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in microseconds. uint32_t
 */




/** @brief Convert hardware cycles to microseconds. 64 bits. Truncates.
 *
 * Converts time values in hardware cycles to microseconds.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in microseconds. uint64_t
 */




/** @brief Convert hardware cycles to microseconds. 32 bits. Round nearest.
 *
 * Converts time values in hardware cycles to microseconds.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in microseconds. uint32_t
 */




/** @brief Convert hardware cycles to microseconds. 64 bits. Round nearest.
 *
 * Converts time values in hardware cycles to microseconds.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in microseconds. uint64_t
 */




/** @brief Convert hardware cycles to microseconds. 32 bits. Rounds up.
 *
 * Converts time values in hardware cycles to microseconds.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in microseconds. uint32_t
 */




/** @brief Convert hardware cycles to microseconds. 64 bits. Rounds up.
 *
 * Converts time values in hardware cycles to microseconds.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in microseconds. uint64_t
 */




/** @brief Convert hardware cycles to nanoseconds. 32 bits. Truncates.
 *
 * Converts time values in hardware cycles to nanoseconds.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in nanoseconds. uint32_t
 */




/** @brief Convert hardware cycles to nanoseconds. 64 bits. Truncates.
 *
 * Converts time values in hardware cycles to nanoseconds.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in nanoseconds. uint64_t
 */




/** @brief Convert hardware cycles to nanoseconds. 32 bits. Round nearest.
 *
 * Converts time values in hardware cycles to nanoseconds.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in nanoseconds. uint32_t
 */




/** @brief Convert hardware cycles to nanoseconds. 64 bits. Round nearest.
 *
 * Converts time values in hardware cycles to nanoseconds.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in nanoseconds. uint64_t
 */




/** @brief Convert hardware cycles to nanoseconds. 32 bits. Rounds up.
 *
 * Converts time values in hardware cycles to nanoseconds.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in nanoseconds. uint32_t
 */




/** @brief Convert hardware cycles to nanoseconds. 64 bits. Rounds up.
 *
 * Converts time values in hardware cycles to nanoseconds.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in nanoseconds. uint64_t
 */




/** @brief Convert hardware cycles to ticks. 32 bits. Truncates.
 *
 * Converts time values in hardware cycles to ticks.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert hardware cycles to ticks. 64 bits. Truncates.
 *
 * Converts time values in hardware cycles to ticks.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert hardware cycles to ticks. 32 bits. Round nearest.
 *
 * Converts time values in hardware cycles to ticks.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert hardware cycles to ticks. 64 bits. Round nearest.
 *
 * Converts time values in hardware cycles to ticks.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert hardware cycles to ticks. 32 bits. Rounds up.
 *
 * Converts time values in hardware cycles to ticks.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in ticks. uint32_t
 */




/** @brief Convert hardware cycles to ticks. 64 bits. Rounds up.
 *
 * Converts time values in hardware cycles to ticks.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in hardware cycles. uint64_t
 *
 * @return The converted time value in ticks. uint64_t
 */




/** @brief Convert ticks to seconds. 32 bits. Truncates.
 *
 * Converts time values in ticks to seconds.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in seconds. uint32_t
 */




/** @brief Convert ticks to seconds. 64 bits. Truncates.
 *
 * Converts time values in ticks to seconds.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in seconds. uint64_t
 */




/** @brief Convert ticks to seconds. 32 bits. Round nearest.
 *
 * Converts time values in ticks to seconds.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in seconds. uint32_t
 */




/** @brief Convert ticks to seconds. 64 bits. Round nearest.
 *
 * Converts time values in ticks to seconds.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in seconds. uint64_t
 */




/** @brief Convert ticks to seconds. 32 bits. Rounds up.
 *
 * Converts time values in ticks to seconds.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in seconds. uint32_t
 */




/** @brief Convert ticks to seconds. 64 bits. Rounds up.
 *
 * Converts time values in ticks to seconds.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in seconds. uint64_t
 */




/** @brief Convert ticks to milliseconds. 32 bits. Truncates.
 *
 * Converts time values in ticks to milliseconds.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in milliseconds. uint32_t
 */




/** @brief Convert ticks to milliseconds. 64 bits. Truncates.
 *
 * Converts time values in ticks to milliseconds.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in milliseconds. uint64_t
 */




/** @brief Convert ticks to milliseconds. 32 bits. Round nearest.
 *
 * Converts time values in ticks to milliseconds.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in milliseconds. uint32_t
 */




/** @brief Convert ticks to milliseconds. 64 bits. Round nearest.
 *
 * Converts time values in ticks to milliseconds.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in milliseconds. uint64_t
 */




/** @brief Convert ticks to milliseconds. 32 bits. Rounds up.
 *
 * Converts time values in ticks to milliseconds.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in milliseconds. uint32_t
 */




/** @brief Convert ticks to milliseconds. 64 bits. Rounds up.
 *
 * Converts time values in ticks to milliseconds.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in milliseconds. uint64_t
 */




/** @brief Convert ticks to microseconds. 32 bits. Truncates.
 *
 * Converts time values in ticks to microseconds.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in microseconds. uint32_t
 */




/** @brief Convert ticks to microseconds. 64 bits. Truncates.
 *
 * Converts time values in ticks to microseconds.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in microseconds. uint64_t
 */




/** @brief Convert ticks to microseconds. 32 bits. Round nearest.
 *
 * Converts time values in ticks to microseconds.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in microseconds. uint32_t
 */




/** @brief Convert ticks to microseconds. 64 bits. Round nearest.
 *
 * Converts time values in ticks to microseconds.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in microseconds. uint64_t
 */




/** @brief Convert ticks to microseconds. 32 bits. Rounds up.
 *
 * Converts time values in ticks to microseconds.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in microseconds. uint32_t
 */




/** @brief Convert ticks to microseconds. 64 bits. Rounds up.
 *
 * Converts time values in ticks to microseconds.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in microseconds. uint64_t
 */




/** @brief Convert ticks to nanoseconds. 32 bits. Truncates.
 *
 * Converts time values in ticks to nanoseconds.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in nanoseconds. uint32_t
 */




/** @brief Convert ticks to nanoseconds. 64 bits. Truncates.
 *
 * Converts time values in ticks to nanoseconds.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in nanoseconds. uint64_t
 */




/** @brief Convert ticks to nanoseconds. 32 bits. Round nearest.
 *
 * Converts time values in ticks to nanoseconds.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in nanoseconds. uint32_t
 */




/** @brief Convert ticks to nanoseconds. 64 bits. Round nearest.
 *
 * Converts time values in ticks to nanoseconds.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in nanoseconds. uint64_t
 */




/** @brief Convert ticks to nanoseconds. 32 bits. Rounds up.
 *
 * Converts time values in ticks to nanoseconds.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in nanoseconds. uint32_t
 */




/** @brief Convert ticks to nanoseconds. 64 bits. Rounds up.
 *
 * Converts time values in ticks to nanoseconds.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in nanoseconds. uint64_t
 */




/** @brief Convert ticks to hardware cycles. 32 bits. Truncates.
 *
 * Converts time values in ticks to hardware cycles.
 * Computes result in 32 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert ticks to hardware cycles. 64 bits. Truncates.
 *
 * Converts time values in ticks to hardware cycles.
 * Computes result in 64 bit precision.
 * Truncates to the next lowest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert ticks to hardware cycles. 32 bits. Round nearest.
 *
 * Converts time values in ticks to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert ticks to hardware cycles. 64 bits. Round nearest.
 *
 * Converts time values in ticks to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds to the nearest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */




/** @brief Convert ticks to hardware cycles. 32 bits. Rounds up.
 *
 * Converts time values in ticks to hardware cycles.
 * Computes result in 32 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in hardware cycles. uint32_t
 */




/** @brief Convert ticks to hardware cycles. 64 bits. Rounds up.
 *
 * Converts time values in ticks to hardware cycles.
 * Computes result in 64 bit precision.
 * Rounds up to the next highest output unit.
 *
 * @warning Generated. Do not edit. See above.
 *
 * @param t Source time in ticks. uint64_t
 *
 * @return The converted time value in hardware cycles. uint64_t
 */
# 2084 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h"
/**
 * @}
 */


}
# 794 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 2



/** @brief Number of bytes in @p x kibibytes */






/** @brief Number of bytes in @p x mebibytes */

/** @brief Number of bytes in @p x gibibytes */


/** @brief Number of Hz in @p x kHz */

/** @brief Number of Hz in @p x MHz */


/**
 * @brief For the POSIX architecture add a minimal delay in a busy wait loop.
 * For other architectures this is a no-op.
 *
 * In the POSIX ARCH, code takes zero simulated time to execute,
 * so busy wait loops become infinite loops, unless we
 * force the loop to take a bit of time.
 * Include this macro in all busy wait/spin loops
 * so they will also work when building for the POSIX architecture.
 *
 * @param t Time in microseconds we will busy wait
 */






/**
 * @brief Wait for an expression to return true with a timeout
 *
 * Spin on an expression with a timeout and optional delay between iterations
 *
 * Commonly needed when waiting on hardware to complete an asynchronous
 * request to read/write/initialize/reset, but useful for any expression.
 *
 * @param expr Truth expression upon which to poll, e.g.: XYZREG & XYZREG_EN
 * @param timeout Timeout to wait for in microseconds, e.g.: 1000 (1ms)
 * @param delay_stmt Delay statement to perform each poll iteration
 *                   e.g.: NULL, k_yield(), k_msleep(1) or k_busy_wait(1)
 *
 * @retval expr As a boolean return, if false then it has timed out.
 */
# 858 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h"
/**
 * @}
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 2


extern "C" {


/* Low-level primitives come in several styles: */
# 39 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h"
/* Default.  See this file for the Doxygen reference: */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_builtin.h" 1
/* atomic operations */

/*
 * Copyright (c) 1997-2015, Wind River Systems, Inc.
 * Copyright (c) 2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_builtin.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_builtin.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_types.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_types.h"
/* Copyright (c) 1997-2015, Wind River Systems, Inc.
 * Copyright (c) 2021 Intel Corporation
 * Copyright (c) 2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_builtin.h" 2


extern "C" {


/* Included from <atomic.h> */

static inline bool atomic_cas(atomic_t *target, atomic_val_t old_value,
     atomic_val_t new_value)
{
 return __atomic_compare_exchange_n(target, &old_value, new_value,
        0, 5,
        5);
}

static inline bool atomic_ptr_cas(atomic_ptr_t *target, atomic_ptr_val_t old_value,
      atomic_ptr_val_t new_value)
{
 return __atomic_compare_exchange_n(target, &old_value, new_value,
        0, 5,
        5);
}

static inline atomic_val_t atomic_add(atomic_t *target, atomic_val_t value)
{
 return __atomic_fetch_add(target, value, 5);
}

static inline atomic_val_t atomic_sub(atomic_t *target, atomic_val_t value)
{
 return __atomic_fetch_sub(target, value, 5);
}

static inline atomic_val_t atomic_inc(atomic_t *target)
{
 return atomic_add(target, 1);
}

static inline atomic_val_t atomic_dec(atomic_t *target)
{
 return atomic_sub(target, 1);
}

static inline atomic_val_t atomic_get(const atomic_t *target)
{
 return __atomic_load_n(target, 5);
}

static inline atomic_ptr_val_t atomic_ptr_get(const atomic_ptr_t *target)
{
 return __atomic_load_n(target, 5);
}

static inline atomic_val_t atomic_set(atomic_t *target, atomic_val_t value)
{
 /* This builtin, as described by Intel, is not a traditional
	 * test-and-set operation, but rather an atomic exchange operation. It
	 * writes value into *ptr, and returns the previous contents of *ptr.
	 */
 return __atomic_exchange_n(target, value, 5);
}

static inline atomic_ptr_val_t atomic_ptr_set(atomic_ptr_t *target, atomic_ptr_val_t value)
{
 return __atomic_exchange_n(target, value, 5);
}

static inline atomic_val_t atomic_clear(atomic_t *target)
{
 return atomic_set(target, 0);
}

static inline atomic_ptr_val_t atomic_ptr_clear(atomic_ptr_t *target)
{
 return atomic_ptr_set(target, 
# 90 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_builtin.h" 3 4
                              __null
# 90 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic_builtin.h"
                                  );
}

static inline atomic_val_t atomic_or(atomic_t *target, atomic_val_t value)
{
 return __atomic_fetch_or(target, value, 5);
}

static inline atomic_val_t atomic_xor(atomic_t *target, atomic_val_t value)
{
 return __atomic_fetch_xor(target, value, 5);
}

static inline atomic_val_t atomic_and(atomic_t *target, atomic_val_t value)
{
 return __atomic_fetch_and(target, value, 5);
}

static inline atomic_val_t atomic_nand(atomic_t *target, atomic_val_t value)
{
 return __atomic_fetch_nand(target, value, 5);
}


}
# 41 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 2


/* Portable higher-level utilities: */

/**
 * @defgroup atomic_apis Atomic Services APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Initialize an atomic variable.
 *
 * This macro can be used to initialize an atomic variable. For example,
 * @code atomic_t my_var = ATOMIC_INIT(75); @endcode
 *
 * @param i Value to assign to atomic variable.
 */


/**
 * @brief Initialize an atomic pointer variable.
 *
 * This macro can be used to initialize an atomic pointer variable. For
 * example,
 * @code atomic_ptr_t my_ptr = ATOMIC_PTR_INIT(&data); @endcode
 *
 * @param p Pointer value to assign to atomic pointer variable.
 */


/**
 * @cond INTERNAL_HIDDEN
 */





/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief This macro computes the number of atomic variables necessary to
 * represent a bitmap with @a num_bits.
 *
 * @param num_bits Number of bits.
 */


/**
 * @brief Define an array of atomic variables.
 *
 * This macro defines an array of atomic variables containing at least
 * @a num_bits bits.
 *
 * @note
 * If used from file scope, the bits of the array are initialized to zero;
 * if used from within a function, the bits are left uninitialized.
 *
 * @cond INTERNAL_HIDDEN
 * @note
 * This macro should be replicated in the PREDEFINED field of the documentation
 * Doxyfile.
 * @endcond
 *
 * @param name Name of array of atomic variables.
 * @param num_bits Number of bits needed.
 */



/**
 * @brief Atomically get and test a bit.
 *
 * Atomically get a value and then test whether bit number @a bit of @a target is set or not.
 * The target may be a single atomic variable or an array of them.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable or array.
 * @param bit Bit number (starting from 0).
 *
 * @return true if the bit was set, false if it wasn't.
 */
static inline bool atomic_test_bit(const atomic_t *target, int bit)
{
 atomic_val_t val = atomic_get(((target) + ((bit) / (sizeof(atomic_val_t) * (8)))));

 return (1 & (val >> (bit & ((sizeof(atomic_val_t) * (8)) - 1)))) != 0;
}

/**
 * @brief Atomically clear a bit and test it.
 *
 * Atomically clear bit number @a bit of @a target and return its old value.
 * The target may be a single atomic variable or an array of them.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable or array.
 * @param bit Bit number (starting from 0).
 *
 * @return false if the bit was already cleared, true if it wasn't.
 */
static inline bool atomic_test_and_clear_bit(atomic_t *target, int bit)
{
 atomic_val_t mask = (1UL << ((unsigned long)(bit) & ((sizeof(atomic_val_t) * (8)) - 1U)));
 atomic_val_t old;

 old = atomic_and(((target) + ((bit) / (sizeof(atomic_val_t) * (8)))), ~mask);

 return (old & mask) != 0;
}

/**
 * @brief Atomically set a bit and test it.
 *
 * Atomically set bit number @a bit of @a target and return its old value.
 * The target may be a single atomic variable or an array of them.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable or array.
 * @param bit Bit number (starting from 0).
 *
 * @return true if the bit was already set, false if it wasn't.
 */
static inline bool atomic_test_and_set_bit(atomic_t *target, int bit)
{
 atomic_val_t mask = (1UL << ((unsigned long)(bit) & ((sizeof(atomic_val_t) * (8)) - 1U)));
 atomic_val_t old;

 old = atomic_or(((target) + ((bit) / (sizeof(atomic_val_t) * (8)))), mask);

 return (old & mask) != 0;
}

/**
 * @brief Atomically clear a bit.
 *
 * Atomically clear bit number @a bit of @a target.
 * The target may be a single atomic variable or an array of them.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable or array.
 * @param bit Bit number (starting from 0).
 */
static inline void atomic_clear_bit(atomic_t *target, int bit)
{
 atomic_val_t mask = (1UL << ((unsigned long)(bit) & ((sizeof(atomic_val_t) * (8)) - 1U)));

 (void)atomic_and(((target) + ((bit) / (sizeof(atomic_val_t) * (8)))), ~mask);
}

/**
 * @brief Atomically set a bit.
 *
 * Atomically set bit number @a bit of @a target.
 * The target may be a single atomic variable or an array of them.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable or array.
 * @param bit Bit number (starting from 0).
 */
static inline void atomic_set_bit(atomic_t *target, int bit)
{
 atomic_val_t mask = (1UL << ((unsigned long)(bit) & ((sizeof(atomic_val_t) * (8)) - 1U)));

 (void)atomic_or(((target) + ((bit) / (sizeof(atomic_val_t) * (8)))), mask);
}

/**
 * @brief Atomically set a bit to a given value.
 *
 * Atomically set bit number @a bit of @a target to value @a val.
 * The target may be a single atomic variable or an array of them.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable or array.
 * @param bit Bit number (starting from 0).
 * @param val true for 1, false for 0.
 */
static inline void atomic_set_bit_to(atomic_t *target, int bit, bool val)
{
 atomic_val_t mask = (1UL << ((unsigned long)(bit) & ((sizeof(atomic_val_t) * (8)) - 1U)));

 if (val) {
  (void)atomic_or(((target) + ((bit) / (sizeof(atomic_val_t) * (8)))), mask);
 } else {
  (void)atomic_and(((target) + ((bit) / (sizeof(atomic_val_t) * (8)))), ~mask);
 }
}

/**
 * @brief Atomic compare-and-set.
 *
 * This routine performs an atomic compare-and-set on @a target. If the current
 * value of @a target equals @a old_value, @a target is set to @a new_value.
 * If the current value of @a target does not equal @a old_value, @a target
 * is left unchanged.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 * @param old_value Original value to compare against.
 * @param new_value New value to store.
 * @return true if @a new_value is written, false otherwise.
 */
bool atomic_cas(atomic_t *target, atomic_val_t old_value, atomic_val_t new_value);

/**
 * @brief Atomic compare-and-set with pointer values
 *
 * This routine performs an atomic compare-and-set on @a target. If the current
 * value of @a target equals @a old_value, @a target is set to @a new_value.
 * If the current value of @a target does not equal @a old_value, @a target
 * is left unchanged.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 * @param old_value Original value to compare against.
 * @param new_value New value to store.
 * @return true if @a new_value is written, false otherwise.
 */
bool atomic_ptr_cas(atomic_ptr_t *target, atomic_ptr_val_t old_value,
      atomic_ptr_val_t new_value);

/**
 * @brief Atomic addition.
 *
 * This routine performs an atomic addition on @a target.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 * @param value Value to add.
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_add(atomic_t *target, atomic_val_t value);

/**
 * @brief Atomic subtraction.
 *
 * This routine performs an atomic subtraction on @a target.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 * @param value Value to subtract.
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_sub(atomic_t *target, atomic_val_t value);

/**
 * @brief Atomic increment.
 *
 * This routine performs an atomic increment by 1 on @a target.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_inc(atomic_t *target);

/**
 * @brief Atomic decrement.
 *
 * This routine performs an atomic decrement by 1 on @a target.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_dec(atomic_t *target);

/**
 * @brief Atomic get.
 *
 * This routine performs an atomic read on @a target.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 *
 * @return Value of @a target.
 */
atomic_val_t atomic_get(const atomic_t *target);

/**
 * @brief Atomic get a pointer value
 *
 * This routine performs an atomic read on @a target.
 *
 * @note @atomic_api
 *
 * @param target Address of pointer variable.
 *
 * @return Value of @a target.
 */
atomic_ptr_val_t atomic_ptr_get(const atomic_ptr_t *target);

/**
 * @brief Atomic get-and-set.
 *
 * This routine atomically sets @a target to @a value and returns
 * the previous value of @a target.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 * @param value Value to write to @a target.
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_set(atomic_t *target, atomic_val_t value);

/**
 * @brief Atomic get-and-set for pointer values
 *
 * This routine atomically sets @a target to @a value and returns
 * the previous value of @a target.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 * @param value Value to write to @a target.
 *
 * @return Previous value of @a target.
 */
atomic_ptr_val_t atomic_ptr_set(atomic_ptr_t *target, atomic_ptr_val_t value);

/**
 * @brief Atomic clear.
 *
 * This routine atomically sets @a target to zero and returns its previous
 * value. (Hence, it is equivalent to atomic_set(target, 0).)
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_clear(atomic_t *target);

/**
 * @brief Atomic clear of a pointer value
 *
 * This routine atomically sets @a target to zero and returns its previous
 * value. (Hence, it is equivalent to atomic_set(target, 0).)
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 *
 * @return Previous value of @a target.
 */
atomic_ptr_val_t atomic_ptr_clear(atomic_ptr_t *target);

/**
 * @brief Atomic bitwise inclusive OR.
 *
 * This routine atomically sets @a target to the bitwise inclusive OR of
 * @a target and @a value.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 * @param value Value to OR.
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_or(atomic_t *target, atomic_val_t value);

/**
 * @brief Atomic bitwise exclusive OR (XOR).
 *
 * @note @atomic_api
 *
 * This routine atomically sets @a target to the bitwise exclusive OR (XOR) of
 * @a target and @a value.
 *
 * @param target Address of atomic variable.
 * @param value Value to XOR
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_xor(atomic_t *target, atomic_val_t value);

/**
 * @brief Atomic bitwise AND.
 *
 * This routine atomically sets @a target to the bitwise AND of @a target
 * and @a value.
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 * @param value Value to AND.
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_and(atomic_t *target, atomic_val_t value);

/**
 * @brief Atomic bitwise NAND.
 *
 * This routine atomically sets @a target to the bitwise NAND of @a target
 * and @a value. (This operation is equivalent to target = ~(target & value).)
 *
 * @note @atomic_api
 *
 * @param target Address of atomic variable.
 * @param value Value to NAND.
 *
 * @return Previous value of @a target.
 */
atomic_val_t atomic_nand(atomic_t *target, atomic_val_t value);

/**
 * @}
 */


}
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 1
/*
 * Copyright (c) 2011-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 1
/*
 * Copyright (c) 2013-2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @defgroup doubly-linked-list_apis Doubly-linked list
 * @ingroup datastructure_apis
 *
 * @brief Doubly-linked list implementation
 *
 * Doubly-linked list implementation using inline macros/functions.
 * This API is not thread safe, and thus if a list is used across threads,
 * calls to functions must be protected with synchronization primitives.
 *
 * The lists are expected to be initialized such that both the head and tail
 * pointers point to the list itself.  Initializing the lists in such a fashion
 * simplifies the adding and removing of nodes to/from the list.
 *
 * @{
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 2



# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
extern "C" {



struct _dnode {
 union {
  struct _dnode *head;
  struct _dnode *next;
 };
 union {
  struct _dnode *tail;
  struct _dnode *prev;
 };
};

/**
 * @brief Doubly-linked list structure.
 */
typedef struct _dnode sys_dlist_t;
/**
 * @brief Doubly-linked list node structure.
 */
typedef struct _dnode sys_dnode_t;


/**
 * @brief Provide the primitive to iterate on a list
 * Note: the loop is unsafe and thus __dn should not be removed
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_DLIST_FOR_EACH_NODE(l, n) {
 *         <user code>
 *     }
 *
 * This and other SYS_DLIST_*() macros are not thread safe.
 *
 * @param __dl A pointer on a sys_dlist_t to iterate on
 * @param __dn A sys_dnode_t pointer to peek each node of the list
 */




/**
 * @brief Provide the primitive to iterate on a list, from a node in the list
 * Note: the loop is unsafe and thus __dn should not be removed
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_DLIST_ITERATE_FROM_NODE(l, n) {
 *         <user code>
 *     }
 *
 * Like SYS_DLIST_FOR_EACH_NODE(), but __dn already contains a node in the list
 * where to start searching for the next entry from. If NULL, it starts from
 * the head.
 *
 * This and other SYS_DLIST_*() macros are not thread safe.
 *
 * @param __dl A pointer on a sys_dlist_t to iterate on
 * @param __dn A sys_dnode_t pointer to peek each node of the list;
 *             it contains the starting node, or NULL to start from the head
 */






/**
 * @brief Provide the primitive to safely iterate on a list
 * Note: __dn can be removed, it will not break the loop.
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_DLIST_FOR_EACH_NODE_SAFE(l, n, s) {
 *         <user code>
 *     }
 *
 * This and other SYS_DLIST_*() macros are not thread safe.
 *
 * @param __dl A pointer on a sys_dlist_t to iterate on
 * @param __dn A sys_dnode_t pointer to peek each node of the list
 * @param __dns A sys_dnode_t pointer for the loop to run safely
 */






/**
 * @brief Provide the primitive to resolve the container of a list node
 * Note: it is safe to use with NULL pointer nodes
 *
 * @param __dn A pointer on a sys_dnode_t to get its container
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_dnode_t within the container struct
 */


/**
 * @brief Provide the primitive to peek container of the list head
 *
 * @param __dl A pointer on a sys_dlist_t to peek
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_dnode_t within the container struct
 */



/**
 * @brief Provide the primitive to peek the next container
 *
 * @param __dl A pointer on a sys_dlist_t to peek
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_dnode_t within the container struct
 */





/**
 * @brief Provide the primitive to iterate on a list under a container
 * Note: the loop is unsafe and thus __cn should not be detached
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_DLIST_FOR_EACH_CONTAINER(l, c, n) {
 *         <user code>
 *     }
 *
 * @param __dl A pointer on a sys_dlist_t to iterate on
 * @param __cn A container struct type pointer to peek each entry of the list
 * @param __n The field name of sys_dnode_t within the container struct
 */





/**
 * @brief Provide the primitive to safely iterate on a list under a container
 * Note: __cn can be detached, it will not break the loop.
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_DLIST_FOR_EACH_CONTAINER_SAFE(l, c, cn, n) {
 *         <user code>
 *     }
 *
 * @param __dl A pointer on a sys_dlist_t to iterate on
 * @param __cn A container struct type pointer to peek each entry of the list
 * @param __cns A container struct type pointer for the loop to run safely
 * @param __n The field name of sys_dnode_t within the container struct
 */






/**
 * @brief initialize list to its empty state
 *
 * @param list the doubly-linked list
 */

static inline void sys_dlist_init(sys_dlist_t *list)
{
 list->head = (sys_dnode_t *)list;
 list->tail = (sys_dnode_t *)list;
}

/**
 * @brief Static initializer for a doubly-linked list
 */


/**
 * @brief initialize node to its state when not in a list
 *
 * @param node the node
 */

static inline void sys_dnode_init(sys_dnode_t *node)
{
 node->next = 
# 221 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
             __null
# 221 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                 ;
 node->prev = 
# 222 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
             __null
# 222 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                 ;
}

/**
 * @brief check if a node is a member of any list
 *
 * @param node the node
 *
 * @return true if node is linked into a list, false if it is not
 */

static inline bool sys_dnode_is_linked(const sys_dnode_t *node)
{
 return node->next != 
# 235 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                     __null
# 235 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                         ;
}

/**
 * @brief check if a node is the list's head
 *
 * @param list the doubly-linked list to operate on
 * @param node the node to check
 *
 * @return true if node is the head, false otherwise
 */

static inline bool sys_dlist_is_head(sys_dlist_t *list, sys_dnode_t *node)
{
 return list->head == node;
}

/**
 * @brief check if a node is the list's tail
 *
 * @param list the doubly-linked list to operate on
 * @param node the node to check
 *
 * @return true if node is the tail, false otherwise
 */

static inline bool sys_dlist_is_tail(sys_dlist_t *list, sys_dnode_t *node)
{
 return list->tail == node;
}

/**
 * @brief check if the list is empty
 *
 * @param list the doubly-linked list to operate on
 *
 * @return true if empty, false otherwise
 */

static inline bool sys_dlist_is_empty(sys_dlist_t *list)
{
 return list->head == list;
}

/**
 * @brief check if more than one node present
 *
 * This and other sys_dlist_*() functions are not thread safe.
 *
 * @param list the doubly-linked list to operate on
 *
 * @return true if multiple nodes, false otherwise
 */

static inline bool sys_dlist_has_multiple_nodes(sys_dlist_t *list)
{
 return list->head != list->tail;
}

/**
 * @brief get a reference to the head item in the list
 *
 * @param list the doubly-linked list to operate on
 *
 * @return a pointer to the head element, NULL if list is empty
 */

static inline sys_dnode_t *sys_dlist_peek_head(sys_dlist_t *list)
{
 return sys_dlist_is_empty(list) ? 
# 304 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                                  __null 
# 304 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                                       : list->head;
}

/**
 * @brief get a reference to the head item in the list
 *
 * The list must be known to be non-empty.
 *
 * @param list the doubly-linked list to operate on
 *
 * @return a pointer to the head element
 */

static inline sys_dnode_t *sys_dlist_peek_head_not_empty(sys_dlist_t *list)
{
 return list->head;
}

/**
 * @brief get a reference to the next item in the list, node is not NULL
 *
 * Faster than sys_dlist_peek_next() if node is known not to be NULL.
 *
 * @param list the doubly-linked list to operate on
 * @param node the node from which to get the next element in the list
 *
 * @return a pointer to the next element from a node, NULL if node is the tail
 */

static inline sys_dnode_t *sys_dlist_peek_next_no_check(sys_dlist_t *list,
       sys_dnode_t *node)
{
 return (node == list->tail) ? 
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                              __null 
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                                   : node->next;
}

/**
 * @brief get a reference to the next item in the list
 *
 * @param list the doubly-linked list to operate on
 * @param node the node from which to get the next element in the list
 *
 * @return a pointer to the next element from a node, NULL if node is the tail
 * or NULL (when node comes from reading the head of an empty list).
 */

static inline sys_dnode_t *sys_dlist_peek_next(sys_dlist_t *list,
            sys_dnode_t *node)
{
 return (node != 
# 352 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                __null
# 352 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                    ) ? sys_dlist_peek_next_no_check(list, node) : 
# 352 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                                                                   __null
# 352 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                                                                       ;
}

/**
 * @brief get a reference to the previous item in the list, node is not NULL
 *
 * Faster than sys_dlist_peek_prev() if node is known not to be NULL.
 *
 * @param list the doubly-linked list to operate on
 * @param node the node from which to get the previous element in the list
 *
 * @return a pointer to the previous element from a node, NULL if node is the
 *	   tail
 */

static inline sys_dnode_t *sys_dlist_peek_prev_no_check(sys_dlist_t *list,
       sys_dnode_t *node)
{
 return (node == list->head) ? 
# 370 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                              __null 
# 370 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                                   : node->prev;
}

/**
 * @brief get a reference to the previous item in the list
 *
 * @param list the doubly-linked list to operate on
 * @param node the node from which to get the previous element in the list
 *
 * @return a pointer to the previous element from a node, NULL if node is the
 * 	   tail or NULL (when node comes from reading the head of an empty
 * 	   list).
 */

static inline sys_dnode_t *sys_dlist_peek_prev(sys_dlist_t *list,
            sys_dnode_t *node)
{
 return (node != 
# 387 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                __null
# 387 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                    ) ? sys_dlist_peek_prev_no_check(list, node) : 
# 387 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                                                                   __null
# 387 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                                                                       ;
}

/**
 * @brief get a reference to the tail item in the list
 *
 * @param list the doubly-linked list to operate on
 *
 * @return a pointer to the tail element, NULL if list is empty
 */

static inline sys_dnode_t *sys_dlist_peek_tail(sys_dlist_t *list)
{
 return sys_dlist_is_empty(list) ? 
# 400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                                  __null 
# 400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                                       : list->tail;
}

/**
 * @brief add node to tail of list
 *
 * This and other sys_dlist_*() functions are not thread safe.
 *
 * @param list the doubly-linked list to operate on
 * @param node the element to append
 */

static inline void sys_dlist_append(sys_dlist_t *list, sys_dnode_t *node)
{
 sys_dnode_t *const tail = list->tail;

 node->next = list;
 node->prev = tail;

 tail->next = node;
 list->tail = node;
}

/**
 * @brief add node to head of list
 *
 * This and other sys_dlist_*() functions are not thread safe.
 *
 * @param list the doubly-linked list to operate on
 * @param node the element to append
 */

static inline void sys_dlist_prepend(sys_dlist_t *list, sys_dnode_t *node)
{
 sys_dnode_t *const head = list->head;

 node->next = head;
 node->prev = list;

 head->prev = node;
 list->head = node;
}

/**
 * @brief Insert a node into a list
 *
 * Insert a node before a specified node in a dlist.
 *
 * @param successor the position before which "node" will be inserted
 * @param node the element to insert
 */
static inline void sys_dlist_insert(sys_dnode_t *successor, sys_dnode_t *node)
{
 sys_dnode_t *const prev = successor->prev;

 node->prev = prev;
 node->next = successor;
 prev->next = node;
 successor->prev = node;
}

/**
 * @brief insert node at position
 *
 * Insert a node in a location depending on a external condition. The cond()
 * function checks if the node is to be inserted _before_ the current node
 * against which it is checked.
 * This and other sys_dlist_*() functions are not thread safe.
 *
 * @param list the doubly-linked list to operate on
 * @param node the element to insert
 * @param cond a function that determines if the current node is the correct
 *             insert point
 * @param data parameter to cond()
 */

static inline void sys_dlist_insert_at(sys_dlist_t *list, sys_dnode_t *node,
 int (*cond)(sys_dnode_t *node, void *data), void *data)
{
 if (sys_dlist_is_empty(list)) {
  sys_dlist_append(list, node);
 } else {
  sys_dnode_t *pos = sys_dlist_peek_head(list);

  while ((pos != 
# 484 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                __null
# 484 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                    ) && (cond(pos, data) == 0)) {
   pos = sys_dlist_peek_next(list, pos);
  }
  if (pos != 
# 487 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
            __null
# 487 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                ) {
   sys_dlist_insert(pos, node);
  } else {
   sys_dlist_append(list, node);
  }
 }
}

/**
 * @brief remove a specific node from a list
 *
 * Like :c:func:`sys_dlist_remove()`, this routine removes a specific node
 * from a list. However, unlike :c:func:`sys_dlist_remove()`, this routine
 * does not re-initialize the removed node. One significant implication of
 * this difference is that the function :c:func`sys_dnode_is_linked()` will
 * not work on a dequeued node.
 *
 * The list is implicit from the node. The node must be part of a list.
 * This and other sys_dlist_*() functions are not thread safe.
 *
 * @param node the node to dequeue
 */
static inline void sys_dlist_dequeue(sys_dnode_t *node)
{
 sys_dnode_t *const prev = node->prev;
 sys_dnode_t *const next = node->next;

 prev->next = next;
 next->prev = prev;
}

/**
 * @brief remove a specific node from a list
 *
 * The list is implicit from the node. The node must be part of a list.
 * This and other sys_dlist_*() functions are not thread safe.
 *
 * @param node the node to remove
 */

static inline void sys_dlist_remove(sys_dnode_t *node)
{
 sys_dnode_t *const prev = node->prev;
 sys_dnode_t *const next = node->next;

 prev->next = next;
 next->prev = prev;
 sys_dnode_init(node);
}

/**
 * @brief get the first node in a list
 *
 * This and other sys_dlist_*() functions are not thread safe.
 *
 * @param list the doubly-linked list to operate on
 *
 * @return the first node in the list, NULL if list is empty
 */

static inline sys_dnode_t *sys_dlist_get(sys_dlist_t *list)
{
 sys_dnode_t *node = 
# 549 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                    __null
# 549 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                        ;

 if (!sys_dlist_is_empty(list)) {
  node = list->head;
  sys_dlist_remove(node);
 }

 return node;
}

/**
 * @brief Compute the size of the given list in O(n) time
 *
 * @param list A pointer on the list
 *
 * @return an integer equal to the size of the list, or 0 if empty
 */
static inline size_t sys_dlist_len(sys_dlist_t *list)
{
 size_t len = 0;
 sys_dnode_t *node = 
# 569 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
                    __null
# 569 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
                        ;

 for (node = sys_dlist_peek_head(list); node != 
# 571 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 3 4
__null
# 571 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
; node = sys_dlist_peek_next(list, node)) {
  len++;
 }
 return len;
}

/** @} */


}
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 1
/*
 * Copyright (c) 2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

 /**
  * @file
  * @defgroup single-linked-list_apis Single-linked list
  * @ingroup datastructure_apis
  *
  * @brief Single-linked list implementation.
  *
  * Single-linked list implementation using inline macros/functions.
  * This API is not thread safe, and thus if a list is used across threads,
  * calls to functions must be protected with synchronization primitives.
  * @{
  */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/list_gen.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/list_gen.h"
/*
 * Copyright (c) 2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/list_gen.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/list_gen.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h"
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/list_gen.h" 2
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 2


extern "C" {



/** @cond INTERNAL_HIDDEN */
struct _snode {
 struct _snode *next;
};
/** @endcond */

/** Single-linked list node structure. */
typedef struct _snode sys_snode_t;

/** @cond INTERNAL_HIDDEN */
struct _slist {
 sys_snode_t *head;
 sys_snode_t *tail;
};
/** @endcond */

/** Single-linked list structure. */
typedef struct _slist sys_slist_t;

/**
 * @brief Provide the primitive to iterate on a list
 * Note: the loop is unsafe and thus __sn should not be removed
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SLIST_FOR_EACH_NODE(l, n) {
 *         <user code>
 *     }
 *
 * This and other SYS_SLIST_*() macros are not thread safe.
 *
 * @param __sl A pointer on a sys_slist_t to iterate on
 * @param __sn A sys_snode_t pointer to peek each node of the list
 */



/**
 * @brief Provide the primitive to iterate on a list, from a node in the list
 * Note: the loop is unsafe and thus __sn should not be removed
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SLIST_ITERATE_FROM_NODE(l, n) {
 *         <user code>
 *     }
 *
 * Like SYS_SLIST_FOR_EACH_NODE(), but __dn already contains a node in the list
 * where to start searching for the next entry from. If NULL, it starts from
 * the head.
 *
 * This and other SYS_SLIST_*() macros are not thread safe.
 *
 * @param __sl A pointer on a sys_slist_t to iterate on
 * @param __sn A sys_snode_t pointer to peek each node of the list
 *             it contains the starting node, or NULL to start from the head
 */



/**
 * @brief Provide the primitive to safely iterate on a list
 * Note: __sn can be removed, it will not break the loop.
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SLIST_FOR_EACH_NODE_SAFE(l, n, s) {
 *         <user code>
 *     }
 *
 * This and other SYS_SLIST_*() macros are not thread safe.
 *
 * @param __sl A pointer on a sys_slist_t to iterate on
 * @param __sn A sys_snode_t pointer to peek each node of the list
 * @param __sns A sys_snode_t pointer for the loop to run safely
 */



/**
 * @brief Provide the primitive to resolve the container of a list node
 * Note: it is safe to use with NULL pointer nodes
 *
 * @param __ln A pointer on a sys_node_t to get its container
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_node_t within the container struct
 */



/**
 * @brief Provide the primitive to peek container of the list head
 *
 * @param __sl A pointer on a sys_slist_t to peek
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_node_t within the container struct
 */



/**
 * @brief Provide the primitive to peek container of the list tail
 *
 * @param __sl A pointer on a sys_slist_t to peek
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_node_t within the container struct
 */



/**
 * @brief Provide the primitive to peek the next container
 *
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_node_t within the container struct
 */



/**
 * @brief Provide the primitive to iterate on a list under a container
 * Note: the loop is unsafe and thus __cn should not be detached
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SLIST_FOR_EACH_CONTAINER(l, c, n) {
 *         <user code>
 *     }
 *
 * @param __sl A pointer on a sys_slist_t to iterate on
 * @param __cn A pointer to peek each entry of the list
 * @param __n The field name of sys_node_t within the container struct
 */



/**
 * @brief Provide the primitive to safely iterate on a list under a container
 * Note: __cn can be detached, it will not break the loop.
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SLIST_FOR_EACH_NODE_SAFE(l, c, cn, n) {
 *         <user code>
 *     }
 *
 * @param __sl A pointer on a sys_slist_t to iterate on
 * @param __cn A pointer to peek each entry of the list
 * @param __cns A pointer for the loop to run safely
 * @param __n The field name of sys_node_t within the container struct
 */




/*
 * Required function definitions for the list_gen.h interface
 *
 * These are the only functions that do not treat the list/node pointers
 * as completely opaque types.
 */

/**
 * @brief Initialize a list
 *
 * @param list A pointer on the list to initialize
 */
static inline void sys_slist_init(sys_slist_t *list)
{
 list->head = 
# 201 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
             __null
# 201 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
                 ;
 list->tail = 
# 202 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
             __null
# 202 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
                 ;
}

/**
 * @brief Statically initialize a single-linked list
 * @param ptr_to_list A pointer on the list to initialize
 */


static inline sys_snode_t *z_snode_next_peek(sys_snode_t *node)
{
 return node->next;
}

static inline void z_snode_next_set(sys_snode_t *parent, sys_snode_t *child)
{
 parent->next = child;
}

static inline void z_slist_head_set(sys_slist_t *list, sys_snode_t *node)
{
 list->head = node;
}

static inline void z_slist_tail_set(sys_slist_t *list, sys_snode_t *node)
{
 list->tail = node;
}

/**
 * @brief Peek the first node from the list
 *
 * @param list A point on the list to peek the first node from
 *
 * @return A pointer on the first node of the list (or NULL if none)
 */
static inline sys_snode_t *sys_slist_peek_head(sys_slist_t *list)
{
 return list->head;
}

/**
 * @brief Peek the last node from the list
 *
 * @param list A point on the list to peek the last node from
 *
 * @return A pointer on the last node of the list (or NULL if none)
 */
static inline sys_snode_t *sys_slist_peek_tail(sys_slist_t *list)
{
 return list->tail;
}

/*
 * Derived, generated APIs
 */

/**
 * @brief Test if the given list is empty
 *
 * @param list A pointer on the list to test
 *
 * @return a boolean, true if it's empty, false otherwise
 */
static inline bool sys_slist_is_empty(sys_slist_t *list);

static inline bool sys_slist_is_empty(sys_slist_t *list) { return (sys_slist_peek_head(list) == 
# 268 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 268 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
); }

/**
 * @brief Peek the next node from current node, node is not NULL
 *
 * Faster then sys_slist_peek_next() if node is known not to be NULL.
 *
 * @param node A pointer on the node where to peek the next node
 *
 * @return a pointer on the next node (or NULL if none)
 */
static inline sys_snode_t *sys_slist_peek_next_no_check(sys_snode_t *node);

static inline sys_snode_t * sys_slist_peek_next_no_check(sys_snode_t *node) { return z_snode_next_peek(node); }

/**
 * @brief Peek the next node from current node
 *
 * @param node A pointer on the node where to peek the next node
 *
 * @return a pointer on the next node (or NULL if none)
 */
static inline sys_snode_t *sys_slist_peek_next(sys_snode_t *node);

static inline sys_snode_t * sys_slist_peek_next(sys_snode_t *node) { return (node != 
# 292 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 292 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) ? sys_slist_peek_next_no_check(node) : 
# 292 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 292 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
; }

/**
 * @brief Prepend a node to the given list
 *
 * This and other sys_slist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param node A pointer on the node to prepend
 */
static inline void sys_slist_prepend(sys_slist_t *list,
         sys_snode_t *node);

static inline void sys_slist_prepend(sys_slist_t *list, sys_snode_t *node) { z_snode_next_set(node, sys_slist_peek_head(list)); z_slist_head_set(list, node); if (sys_slist_peek_tail(list) == 
# 305 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 305 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) { z_slist_tail_set(list, sys_slist_peek_head(list)); } }

/**
 * @brief Append a node to the given list
 *
 * This and other sys_slist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param node A pointer on the node to append
 */
static inline void sys_slist_append(sys_slist_t *list,
        sys_snode_t *node);

static inline void sys_slist_append(sys_slist_t *list, sys_snode_t *node) { z_snode_next_set(node, 
# 318 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 318 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
); if (sys_slist_peek_tail(list) == 
# 318 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 318 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) { z_slist_tail_set(list, node); z_slist_head_set(list, node); } else { z_snode_next_set( sys_slist_peek_tail(list), node); z_slist_tail_set(list, node); } }

/**
 * @brief Append a list to the given list
 *
 * Append a singly-linked, NULL-terminated list consisting of nodes containing
 * the pointer to the next node as the first element of a node, to @a list.
 * This and other sys_slist_*() functions are not thread safe.
 *
 * FIXME: Why are the element parameters void *?
 *
 * @param list A pointer on the list to affect
 * @param head A pointer to the first element of the list to append
 * @param tail A pointer to the last element of the list to append
 */
static inline void sys_slist_append_list(sys_slist_t *list,
      void *head, void *tail);

static inline void sys_slist_append_list(sys_slist_t *list, void *head, void *tail) { if (head != 
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null 
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
&& tail != 
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) { if (sys_slist_peek_tail(list) == 
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) { z_slist_head_set(list, (sys_snode_t *)head); } else { z_snode_next_set( sys_slist_peek_tail(list), (sys_snode_t *)head); } z_slist_tail_set(list, (sys_snode_t *)tail); } }

/**
 * @brief merge two slists, appending the second one to the first
 *
 * When the operation is completed, the appending list is empty.
 * This and other sys_slist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param list_to_append A pointer to the list to append.
 */
static inline void sys_slist_merge_slist(sys_slist_t *list,
      sys_slist_t *list_to_append);

static inline void sys_slist_merge_slist ( sys_slist_t *list, sys_slist_t *list_to_append) { sys_snode_t *head, *tail; head = sys_slist_peek_head(list_to_append); tail = sys_slist_peek_tail(list_to_append); sys_slist_append_list(list, head, tail); sys_slist_init(list_to_append); }

/**
 * @brief Insert a node to the given list
 *
 * This and other sys_slist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param prev A pointer on the previous node
 * @param node A pointer on the node to insert
 */
static inline void sys_slist_insert(sys_slist_t *list,
        sys_snode_t *prev,
        sys_snode_t *node);

static inline void sys_slist_insert(sys_slist_t *list, sys_snode_t *prev, sys_snode_t *node) { if (prev == 
# 365 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 365 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) { sys_slist_prepend(list, node); } else if (z_snode_next_peek(prev) == 
# 365 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 365 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) { sys_slist_append(list, node); } else { z_snode_next_set(node, z_snode_next_peek(prev)); z_snode_next_set(prev, node); } }

/**
 * @brief Fetch and remove the first node of the given list
 *
 * List must be known to be non-empty.
 * This and other sys_slist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 *
 * @return A pointer to the first node of the list
 */
static inline sys_snode_t *sys_slist_get_not_empty(sys_slist_t *list);

static inline sys_snode_t * sys_slist_get_not_empty(sys_slist_t *list) { sys_snode_t *node = sys_slist_peek_head(list); z_slist_head_set(list, z_snode_next_peek(node)); if (sys_slist_peek_tail(list) == node) { z_slist_tail_set(list, sys_slist_peek_head(list)); } return node; }

/**
 * @brief Fetch and remove the first node of the given list
 *
 * This and other sys_slist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 *
 * @return A pointer to the first node of the list (or NULL if empty)
 */
static inline sys_snode_t *sys_slist_get(sys_slist_t *list);

static inline sys_snode_t * sys_slist_get(sys_slist_t *list) { return sys_slist_is_empty(list) ? 
# 392 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null 
# 392 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
: sys_slist_get_not_empty(list); }

/**
 * @brief Remove a node
 *
 * This and other sys_slist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param prev_node A pointer on the previous node
 *        (can be NULL, which means the node is the list's head)
 * @param node A pointer on the node to remove
 */
static inline void sys_slist_remove(sys_slist_t *list,
        sys_snode_t *prev_node,
        sys_snode_t *node);

static inline void sys_slist_remove(sys_slist_t *list, sys_snode_t *prev_node, sys_snode_t *node) { if (prev_node == 
# 408 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 408 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) { z_slist_head_set(list, z_snode_next_peek(node)); if (sys_slist_peek_tail(list) == node) { z_slist_tail_set(list, sys_slist_peek_head(list)); } } else { z_snode_next_set(prev_node, z_snode_next_peek(node)); if (sys_slist_peek_tail(list) == node) { z_slist_tail_set(list, prev_node); } } z_snode_next_set(node, 
# 408 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 408 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
); }

/**
 * @brief Find and remove a node from a list
 *
 * This and other sys_slist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param node A pointer on the node to remove from the list
 *
 * @return true if node was removed
 */
static inline bool sys_slist_find_and_remove(sys_slist_t *list,
          sys_snode_t *node);

/**
 * @brief Find if a node is already linked in a singly linked list
 *
 * This and other sys_slist_*() functions are not thread safe.
 *
 * @param list A pointer to the list to check
 * @param node A pointer to the node to search in the list
 * @param[out] prev A pointer to the previous node
 *
 * @return true if node was found in the list, false otherwise
 */
static inline bool sys_slist_find(sys_slist_t *list, sys_snode_t *node,
         sys_snode_t **prev);
static inline bool sys_slist_find( sys_slist_t *list, sys_snode_t *node, sys_snode_t **prev) { sys_snode_t *current = 
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
; sys_snode_t *previous = 
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
; for ((current) = sys_slist_peek_head(list); (current) != 
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
; (current) = sys_slist_peek_next(current)) { if (current == node) { if (prev != 
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) { *prev = previous; } return true; } previous = current; } if (prev != 
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
) { *prev = previous; } return false; }

/**
 * @brief Compute the size of the given list in O(n) time
 *
 * @param list A pointer on the list
 *
 * @return an integer equal to the size of the list, or 0 if empty
 */
static inline size_t sys_slist_len(sys_slist_t *list);

static inline size_t sys_slist_len(sys_slist_t * list) { size_t len = 0; static sys_snode_t * node; for ((node) = sys_slist_peek_head(list); (node) != 
# 447 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 447 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
; (node) = sys_slist_peek_next(node)) { len++; } return len; }

/** @} */
static inline bool sys_slist_find_and_remove(sys_slist_t *list, sys_snode_t *node) { sys_snode_t *prev = 
# 450 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 450 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
; sys_snode_t *test; for ((test) = sys_slist_peek_head(list); (test) != 
# 450 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 3 4
__null
# 450 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h"
; (test) = sys_slist_peek_next(test)) { if (test == node) { sys_slist_remove(list, prev, node); return true; } prev = test; } return false; }


}
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 1
/*
 * Copyright (c) 2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

 /**
  * @file
  * @defgroup flagged-single-linked-list_apis Flagged Single-linked list
  * @ingroup datastructure_apis
  *
  * @brief Flagged single-linked list implementation.
  *
  * Similar to @ref single-linked-list_apis with the added ability to define
  * user "flags" bits for each node. They can be accessed and modified
  * using the sys_sfnode_flags_get() and sys_sfnode_flags_set() APIs.
  *
  * Flagged single-linked list implementation using inline macros/functions.
  * This API is not thread safe, and thus if a list is used across threads,
  * calls to functions must be protected with synchronization primitives.
  *
  * @{
  */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h"
/*
 * Copyright (c) 2011-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/list_gen.h" 1
/*
 * Copyright (c) 2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 2


extern "C" {


/** @cond INTERNAL_HIDDEN */
struct _sfnode {
 uintptr_t next_and_flags;
};
/** @endcond */

/** Flagged single-linked list node structure. */
typedef struct _sfnode sys_sfnode_t;

/** @cond INTERNAL_HIDDEN */
struct _sflist {
 sys_sfnode_t *head;
 sys_sfnode_t *tail;
};
/** @endcond */

/** Flagged single-linked list structure. */
typedef struct _sflist sys_sflist_t;

/**
 * @brief Provide the primitive to iterate on a list
 * Note: the loop is unsafe and thus __sn should not be removed
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SFLIST_FOR_EACH_NODE(l, n) {
 *         <user code>
 *     }
 *
 * This and other SYS_SFLIST_*() macros are not thread safe.
 *
 * @param __sl A pointer on a sys_sflist_t to iterate on
 * @param __sn A sys_sfnode_t pointer to peek each node of the list
 */



/**
 * @brief Provide the primitive to iterate on a list, from a node in the list
 * Note: the loop is unsafe and thus __sn should not be removed
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SFLIST_ITERATE_FROM_NODE(l, n) {
 *         <user code>
 *     }
 *
 * Like SYS_SFLIST_FOR_EACH_NODE(), but __dn already contains a node in the list
 * where to start searching for the next entry from. If NULL, it starts from
 * the head.
 *
 * This and other SYS_SFLIST_*() macros are not thread safe.
 *
 * @param __sl A pointer on a sys_sflist_t to iterate on
 * @param __sn A sys_sfnode_t pointer to peek each node of the list
 *             it contains the starting node, or NULL to start from the head
 */



/**
 * @brief Provide the primitive to safely iterate on a list
 * Note: __sn can be removed, it will not break the loop.
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SFLIST_FOR_EACH_NODE_SAFE(l, n, s) {
 *         <user code>
 *     }
 *
 * This and other SYS_SFLIST_*() macros are not thread safe.
 *
 * @param __sl A pointer on a sys_sflist_t to iterate on
 * @param __sn A sys_sfnode_t pointer to peek each node of the list
 * @param __sns A sys_sfnode_t pointer for the loop to run safely
 */



/**
 * @brief Provide the primitive to resolve the container of a list node
 * Note: it is safe to use with NULL pointer nodes
 *
 * @param __ln A pointer on a sys_sfnode_t to get its container
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_sfnode_t within the container struct
 */



/**
 * @brief Provide the primitive to peek container of the list head
 *
 * @param __sl A pointer on a sys_sflist_t to peek
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_sfnode_t within the container struct
 */



/**
 * @brief Provide the primitive to peek container of the list tail
 *
 * @param __sl A pointer on a sys_sflist_t to peek
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_sfnode_t within the container struct
 */



/**
 * @brief Provide the primitive to peek the next container
 *
 * @param __cn Container struct type pointer
 * @param __n The field name of sys_sfnode_t within the container struct
 */



/**
 * @brief Provide the primitive to iterate on a list under a container
 * Note: the loop is unsafe and thus __cn should not be detached
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SFLIST_FOR_EACH_CONTAINER(l, c, n) {
 *         <user code>
 *     }
 *
 * @param __sl A pointer on a sys_sflist_t to iterate on
 * @param __cn A pointer to peek each entry of the list
 * @param __n The field name of sys_sfnode_t within the container struct
 */



/**
 * @brief Provide the primitive to safely iterate on a list under a container
 * Note: __cn can be detached, it will not break the loop.
 *
 * User _MUST_ add the loop statement curly braces enclosing its own code:
 *
 *     SYS_SFLIST_FOR_EACH_NODE_SAFE(l, c, cn, n) {
 *         <user code>
 *     }
 *
 * @param __sl A pointer on a sys_sflist_t to iterate on
 * @param __cn A pointer to peek each entry of the list
 * @param __cns A pointer for the loop to run safely
 * @param __n The field name of sys_sfnode_t within the container struct
 */




/*
 * Required function definitions for the list_gen.h interface
 *
 * These are the only functions that do not treat the list/node pointers
 * as completely opaque types.
 */

/**
 * @brief Initialize a list
 *
 * @param list A pointer on the list to initialize
 */
static inline void sys_sflist_init(sys_sflist_t *list)
{
 list->head = 
# 206 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
             __null
# 206 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
                 ;
 list->tail = 
# 207 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
             __null
# 207 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
                 ;
}

/**
 * @brief Statically initialize a flagged single-linked list
 * @param ptr_to_list A pointer on the list to initialize
 */


/* Flag bits are stored in unused LSB of the sys_sfnode_t pointer */

/* At least 2 available flag bits are expected */
static_assert(((uintptr_t)(__alignof__(sys_sfnode_t) - 1)) >= 0x3, "" );

static inline sys_sfnode_t *z_sfnode_next_peek(sys_sfnode_t *node)
{
 return (sys_sfnode_t *)(node->next_and_flags & ~((uintptr_t)(__alignof__(sys_sfnode_t) - 1)));
}

static inline uint8_t sys_sfnode_flags_get(sys_sfnode_t *node);

static inline void z_sfnode_next_set(sys_sfnode_t *parent,
           sys_sfnode_t *child)
{
 uint8_t cur_flags = sys_sfnode_flags_get(parent);

 parent->next_and_flags = cur_flags | (uintptr_t)child;
}

static inline void z_sflist_head_set(sys_sflist_t *list, sys_sfnode_t *node)
{
 list->head = node;
}

static inline void z_sflist_tail_set(sys_sflist_t *list, sys_sfnode_t *node)
{
 list->tail = node;
}

/**
 * @brief Peek the first node from the list
 *
 * @param list A point on the list to peek the first node from
 *
 * @return A pointer on the first node of the list (or NULL if none)
 */
static inline sys_sfnode_t *sys_sflist_peek_head(sys_sflist_t *list)
{
 return list->head;
}

/**
 * @brief Peek the last node from the list
 *
 * @param list A point on the list to peek the last node from
 *
 * @return A pointer on the last node of the list (or NULL if none)
 */
static inline sys_sfnode_t *sys_sflist_peek_tail(sys_sflist_t *list)
{
 return list->tail;
}

/*
 * APIs specific to sflist type
 */

/**
 * @brief Fetch flags value for a particular sfnode
 *
 * @param node A pointer to the node to fetch flags from
 * @return The value of flags, which will be between 0 and 3 on 32-bit
 *         architectures, or between 0 and 7 on 64-bit architectures
 */
static inline uint8_t sys_sfnode_flags_get(sys_sfnode_t *node)
{
 return node->next_and_flags & ((uintptr_t)(__alignof__(sys_sfnode_t) - 1));
}

/**
 * @brief Initialize an sflist node
 *
 * Set an initial flags value for this slist node, which can be a value between
 * 0 and 3 on 32-bit architectures, or between 0 and 7 on 64-bit architectures.
 * These flags will persist even if the node is moved around within a list,
 * removed, or transplanted to a different slist.
 *
 * This is ever so slightly faster than sys_sfnode_flags_set() and should
 * only be used on a node that hasn't been added to any list.
 *
 * @param node A pointer to the node to set the flags on
 * @param flags The flags value to set
 */
static inline void sys_sfnode_init(sys_sfnode_t *node, uint8_t flags)
{
 { };
 node->next_and_flags = flags;
}

/**
 * @brief Set flags value for an sflist node
 *
 * Set a flags value for this slist node, which can be a value between
 * 0 and 3 on 32-bit architectures, or between 0 and 7 on 64-bit architectures.
 * These flags will persist even if the node is moved around within a list,
 * removed, or transplanted to a different slist.
 *
 * @param node A pointer to the node to set the flags on
 * @param flags The flags value to set
 */
static inline void sys_sfnode_flags_set(sys_sfnode_t *node, uint8_t flags)
{
 { };
 node->next_and_flags = (uintptr_t)(z_sfnode_next_peek(node)) | flags;
}

/*
 * Derived, generated APIs
 */

/**
 * @brief Test if the given list is empty
 *
 * @param list A pointer on the list to test
 *
 * @return a boolean, true if it's empty, false otherwise
 */
static inline bool sys_sflist_is_empty(sys_sflist_t *list);

static inline bool sys_sflist_is_empty(sys_sflist_t *list) { return (sys_sflist_peek_head(list) == 
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
); }

/**
 * @brief Peek the next node from current node, node is not NULL
 *
 * Faster then sys_sflist_peek_next() if node is known not to be NULL.
 *
 * @param node A pointer on the node where to peek the next node
 *
 * @return a pointer on the next node (or NULL if none)
 */
static inline sys_sfnode_t *sys_sflist_peek_next_no_check(sys_sfnode_t *node);

static inline sys_sfnode_t * sys_sflist_peek_next_no_check(sys_sfnode_t *node) { return z_sfnode_next_peek(node); }

/**
 * @brief Peek the next node from current node
 *
 * @param node A pointer on the node where to peek the next node
 *
 * @return a pointer on the next node (or NULL if none)
 */
static inline sys_sfnode_t *sys_sflist_peek_next(sys_sfnode_t *node);

static inline sys_sfnode_t * sys_sflist_peek_next(sys_sfnode_t *node) { return (node != 
# 360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
) ? sys_sflist_peek_next_no_check(node) : 
# 360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
; }

/**
 * @brief Prepend a node to the given list
 *
 * This and other sys_sflist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param node A pointer on the node to prepend
 */
static inline void sys_sflist_prepend(sys_sflist_t *list,
          sys_sfnode_t *node);

static inline void sys_sflist_prepend(sys_sflist_t *list, sys_sfnode_t *node) { z_sfnode_next_set(node, sys_sflist_peek_head(list)); z_sflist_head_set(list, node); if (sys_sflist_peek_tail(list) == 
# 373 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 373 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
) { z_sflist_tail_set(list, sys_sflist_peek_head(list)); } }

/**
 * @brief Append a node to the given list
 *
 * This and other sys_sflist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param node A pointer on the node to append
 */
static inline void sys_sflist_append(sys_sflist_t *list,
         sys_sfnode_t *node);

static inline void sys_sflist_append(sys_sflist_t *list, sys_sfnode_t *node) { z_sfnode_next_set(node, 
# 386 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 386 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
); if (sys_sflist_peek_tail(list) == 
# 386 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 386 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
) { z_sflist_tail_set(list, node); z_sflist_head_set(list, node); } else { z_sfnode_next_set( sys_sflist_peek_tail(list), node); z_sflist_tail_set(list, node); } }

/**
 * @brief Append a list to the given list
 *
 * Append a singly-linked, NULL-terminated list consisting of nodes containing
 * the pointer to the next node as the first element of a node, to @a list.
 * This and other sys_sflist_*() functions are not thread safe.
 *
 * FIXME: Why are the element parameters void *?
 *
 * @param list A pointer on the list to affect
 * @param head A pointer to the first element of the list to append
 * @param tail A pointer to the last element of the list to append
 */
static inline void sys_sflist_append_list(sys_sflist_t *list,
       void *head, void *tail);

static inline void sys_sflist_append_list(sys_sflist_t *list, void *head, void *tail) { if (head != 
# 404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null 
# 404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
&& tail != 
# 404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
) { if (sys_sflist_peek_tail(list) == 
# 404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
) { z_sflist_head_set(list, (sys_sfnode_t *)head); } else { z_sfnode_next_set( sys_sflist_peek_tail(list), (sys_sfnode_t *)head); } z_sflist_tail_set(list, (sys_sfnode_t *)tail); } }

/**
 * @brief merge two sflists, appending the second one to the first
 *
 * When the operation is completed, the appending list is empty.
 * This and other sys_sflist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param list_to_append A pointer to the list to append.
 */
static inline void sys_sflist_merge_sflist(sys_sflist_t *list,
        sys_sflist_t *list_to_append);

static inline void sys_sflist_merge_sflist ( sys_sflist_t *list, sys_sflist_t *list_to_append) { sys_sfnode_t *head, *tail; head = sys_sflist_peek_head(list_to_append); tail = sys_sflist_peek_tail(list_to_append); sys_sflist_append_list(list, head, tail); sys_sflist_init(list_to_append); }

/**
 * @brief Insert a node to the given list
 *
 * This and other sys_sflist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param prev A pointer on the previous node
 * @param node A pointer on the node to insert
 */
static inline void sys_sflist_insert(sys_sflist_t *list,
         sys_sfnode_t *prev,
         sys_sfnode_t *node);

static inline void sys_sflist_insert(sys_sflist_t *list, sys_sfnode_t *prev, sys_sfnode_t *node) { if (prev == 
# 433 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 433 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
) { sys_sflist_prepend(list, node); } else if (z_sfnode_next_peek(prev) == 
# 433 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 433 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
) { sys_sflist_append(list, node); } else { z_sfnode_next_set(node, z_sfnode_next_peek(prev)); z_sfnode_next_set(prev, node); } }

/**
 * @brief Fetch and remove the first node of the given list
 *
 * List must be known to be non-empty.
 * This and other sys_sflist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 *
 * @return A pointer to the first node of the list
 */
static inline sys_sfnode_t *sys_sflist_get_not_empty(sys_sflist_t *list);

static inline sys_sfnode_t * sys_sflist_get_not_empty(sys_sflist_t *list) { sys_sfnode_t *node = sys_sflist_peek_head(list); z_sflist_head_set(list, z_sfnode_next_peek(node)); if (sys_sflist_peek_tail(list) == node) { z_sflist_tail_set(list, sys_sflist_peek_head(list)); } return node; }

/**
 * @brief Fetch and remove the first node of the given list
 *
 * This and other sys_sflist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 *
 * @return A pointer to the first node of the list (or NULL if empty)
 */
static inline sys_sfnode_t *sys_sflist_get(sys_sflist_t *list);

static inline sys_sfnode_t * sys_sflist_get(sys_sflist_t *list) { return sys_sflist_is_empty(list) ? 
# 460 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null 
# 460 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
: sys_sflist_get_not_empty(list); }

/**
 * @brief Remove a node
 *
 * This and other sys_sflist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param prev_node A pointer on the previous node
 *        (can be NULL, which means the node is the list's head)
 * @param node A pointer on the node to remove
 */
static inline void sys_sflist_remove(sys_sflist_t *list,
         sys_sfnode_t *prev_node,
         sys_sfnode_t *node);

static inline void sys_sflist_remove(sys_sflist_t *list, sys_sfnode_t *prev_node, sys_sfnode_t *node) { if (prev_node == 
# 476 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 476 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
) { z_sflist_head_set(list, z_sfnode_next_peek(node)); if (sys_sflist_peek_tail(list) == node) { z_sflist_tail_set(list, sys_sflist_peek_head(list)); } } else { z_sfnode_next_set(prev_node, z_sfnode_next_peek(node)); if (sys_sflist_peek_tail(list) == node) { z_sflist_tail_set(list, prev_node); } } z_sfnode_next_set(node, 
# 476 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 476 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
); }

/**
 * @brief Find and remove a node from a list
 *
 * This and other sys_sflist_*() functions are not thread safe.
 *
 * @param list A pointer on the list to affect
 * @param node A pointer on the node to remove from the list
 *
 * @return true if node was removed
 */
static inline bool sys_sflist_find_and_remove(sys_sflist_t *list,
           sys_sfnode_t *node);

static inline bool sys_sflist_find_and_remove(sys_sflist_t *list, sys_sfnode_t *node) { sys_sfnode_t *prev = 
# 491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
; sys_sfnode_t *test; for ((test) = sys_sflist_peek_head(list); (test) != 
# 491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
; (test) = sys_sflist_peek_next(test)) { if (test == node) { sys_sflist_remove(list, prev, node); return true; } prev = test; } return false; }

/**
 * @brief Compute the size of the given list in O(n) time
 *
 * @param list A pointer on the list
 *
 * @return an integer equal to the size of the list, or 0 if empty
 */
static inline size_t sys_sflist_len(sys_sflist_t *list);

static inline size_t sys_sflist_len(sys_sflist_t * list) { size_t len = 0; static sys_sfnode_t * node; for ((node) = sys_sflist_peek_head(list); (node) != 
# 502 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h" 3 4
__null
# 502 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sflist.h"
; (node) = sys_sflist_peek_next(node)) { len++; } return len; }

/** @} */


}
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/obj_core.h" 1
/*
 * Copyright (c) 2023, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 1
/*
 * Copyright (c) 2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

 /**
  * @file
  * @defgroup single-linked-list_apis Single-linked list
  * @ingroup datastructure_apis
  *
  * @brief Single-linked list implementation.
  *
  * Single-linked list implementation using inline macros/functions.
  * This API is not thread safe, and thus if a list is used across threads,
  * calls to functions must be protected with synchronization primitives.
  * @{
  */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/obj_core.h" 2

/**
 * @defgroup obj_core_apis Object Core APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Convert kernel object pointer into its object core pointer
 */


/**
 * @brief Generate new object type IDs based on a 4 letter string
 */


/* Known kernel object types */

/** Condition variable object type */

/** CPU object type */

/** Event object type */

/** FIFO object type */

/** Kernel object type */

/** LIFO object type */

/** Memory block object type */

/** Mailbox object type */

/** Memory slab object type */

/** Message queue object type */

/** Mutex object type */

/** Pipe object type */

/** Semaphore object type */

/** Stack object type */

/** Thread object type */

/** Timer object type */


struct k_obj_type;
struct k_obj_core;

/**
 * @cond INTERNAL_HIDDEN
 */
# 81 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/obj_core.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * Tools may use this list as an entry point to identify all registered
 * object types and the object cores linked to them.
 */
extern sys_slist_t z_obj_type_list;

/** Object core statistics descriptor */
struct k_obj_core_stats_desc {
 size_t raw_size;
 size_t query_size;

 /** Function pointer to retrieve internal representation of stats */
 int (*raw)(struct k_obj_core *obj_core, void *stats);
 /** Function pointer to retrieve reported statistics */
 int (*query)(struct k_obj_core *obj_core, void *stats);
 /** Function pointer to reset object's statistics */
 int (*reset)(struct k_obj_core *obj_core);
 /** Function pointer to disable object's statistics gathering */
 int (*disable)(struct k_obj_core *obj_core);
 /** Function pointer to enable object's statistics gathering */
 int (*enable)(struct k_obj_core *obj_core);
};

/** Object type structure */
struct k_obj_type {
 sys_snode_t node;
 sys_slist_t list;
 uint32_t id;
 size_t obj_core_offset;




};

/** Object core structure */
struct k_obj_core {
 sys_snode_t node;
 struct k_obj_type *type;



};

/**
 * @brief Initialize a specific object type
 *
 * Initializes a specific object type and links it into the object core
 * framework.
 *
 * @param type Pointer to the object type to initialize
 * @param id A means to identify the object type
 * @param off Offset of object core within the structure
 *
 * @retval Pointer to initialized object type
 */
struct k_obj_type *z_obj_type_init(struct k_obj_type *type,
       uint32_t id, size_t off);

/**
 * @brief Find a specific object type by ID
 *
 * Given an object type ID, this function searches for the object type that
 * is associated with the specified type ID @a type_id.
 *
 * @param type_id  Type ID associated with object type
 *
 * @retval NULL if object type not found
 * @retval Pointer to object type if found
 */
struct k_obj_type *k_obj_type_find(uint32_t type_id);

/**
 * @brief Walk the object type's list of object cores
 *
 * This function takes a global spinlock and walks the object type's list
 * of object cores and invokes the callback function on each element while
 * holding that lock. Although this will ensure that the list is not modified,
 * one can expect a significant penalty in terms of performance and latency.
 *
 * The callback function shall either return non-zero to stop further walking,
 * or it shall return 0 to continue walking.
 *
 * @param type  Pointer to the object type
 * @param func  Callback to invoke on each object core of the object type
 * @param data  Custom data passed to the callback
 *
 * @retval non-zero if walk is terminated by the callback; otherwise 0
 */
int k_obj_type_walk_locked(struct k_obj_type *type,
      int (*func)(struct k_obj_core *, void *),
      void *data);

/**
 * @brief Walk the object type's list of object cores
 *
 * This function is similar to k_obj_type_walk_locked() except that it walks
 * the list without obtaining the global spinlock. No synchronization is
 * provided here. Mutation of the list of objects while this function is in
 * progress must be prevented at the application layer, otherwise
 * undefined/unreliable behavior, corruption and/or crashes may result.
 *
 * The callback function shall either return non-zero to stop further walking,
 * or it shall return 0 to continue walking.
 *
 * @param type  Pointer to the object type
 * @param func  Callback to invoke on each object core of the object type
 * @param data  Custom data passed to the callback
 *
 * @retval non-zero if walk is terminated by the callback; otherwise 0
 */
int k_obj_type_walk_unlocked(struct k_obj_type *type,
        int (*func)(struct k_obj_core *, void *),
        void *data);

/**
 * @brief Initialize the core of the kernel object
 *
 * Initializing the kernel object core associates it with the specified
 * kernel object type.
 *
 * @param obj_core Pointer to the kernel object to initialize
 * @param type Pointer to the kernel object type
 */
void k_obj_core_init(struct k_obj_core *obj_core, struct k_obj_type *type);

/**
 * @brief Link the kernel object to the kernel object type list
 *
 * A kernel object can be optionally linked into the kernel object type's
 * list of objects. A kernel object must have been initialized before it
 * can be linked. Linked kernel objects can be traversed and have information
 * extracted from them by system tools.
 *
 * @param obj_core Pointer to the kernel object
 */
void k_obj_core_link(struct k_obj_core *obj_core);

/**
 * @brief Automatically link the kernel object after initializing it
 *
 * A useful wrapper to both initialize the core of the kernel object and
 * automatically link it into the kernel object type's list of objects.
 *
 * @param obj_core Pointer to the kernel object to initialize
 * @param type Pointer to the kernel object type
 */
void k_obj_core_init_and_link(struct k_obj_core *obj_core,
         struct k_obj_type *type);

/**
 * @brief Unlink the kernel object from the kernel object type list
 *
 * Kernel objects can be unlinked from their respective kernel object type
 * lists. If on a list, it must be done at the end of the kernel object's life
 * cycle.
 *
 * @param obj_core Pointer to the kernel object
 */
void k_obj_core_unlink(struct k_obj_core *obj_core);

/** @} */

/**
 * @defgroup obj_core_stats_apis Object Core Statistics APIs
 * @ingroup kernel_apis
 * @{
 */
# 285 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/obj_core.h"
/**
 * @brief Register kernel object for gathering statistics
 *
 * Before a kernel object can gather statistics, it must be registered to do
 * so. Registering will also automatically enable the kernel object to gather
 * its statistics.
 *
 * @param obj_core Pointer to kernel object core
 * @param stats Pointer to raw kernel statistics
 * @param stats_len Size of raw kernel statistics buffer
 *
 * @retval 0 on success
 * @retval -errno on failure
 */
int k_obj_core_stats_register(struct k_obj_core *obj_core, void *stats,
         size_t stats_len);

/**
 * @brief Deregister kernel object from gathering statistics
 *
 * Deregistering a kernel object core from gathering statistics prevents it
 * from gathering any more statistics. It is expected to be invoked at the end
 * of a kernel object's life cycle.
 *
 * @param obj_core Pointer to kernel object core
 *
 * @retval 0 on success
 * @retval -errno on failure
 */
int k_obj_core_stats_deregister(struct k_obj_core *obj_core);

/**
 * @brief Retrieve the raw statistics associated with the kernel object
 *
 * This function copies the raw statistics associated with the kernel object
 * core specified by @a obj_core into the buffer @a stats. Note that the size
 * of the buffer (@a stats_len) must match the size specified by the kernel
 * object type's statistics descriptor.
 *
 * @param obj_core Pointer to kernel object core
 * @param stats Pointer to memory buffer into which to copy raw stats
 * @param stats_len Length of the memory buffer
 *
 * @retval 0 on success
 * @retval -errno on failure
 */
int k_obj_core_stats_raw(struct k_obj_core *obj_core, void *stats,
    size_t stats_len);

/**
 * @brief Retrieve the statistics associated with the kernel object
 *
 * This function copies the statistics associated with the kernel object core
 * specified by @a obj_core into the buffer @a stats. Unlike the raw statistics
 * this may report calculated values such as averages.  Note that the size of
 * the buffer (@a stats_len) must match the size specified by the kernel object
 * type's statistics descriptor.
 *
 * @param obj_core Pointer to kernel object core
 * @param stats Pointer to memory buffer into which to copy the queried stats
 * @param stats_len Length of the memory buffer
 *
 * @retval 0 on success
 * @retval -errno on failure
 */
int k_obj_core_stats_query(struct k_obj_core *obj_core, void *stats,
      size_t stats_len);

/**
 * @brief Reset the stats associated with the kernel object
 *
 * This function resets the statistics associated with the kernel object core
 * specified by @a obj_core.
 *
 * @param obj_core Pointer to kernel object core
 *
 * @retval 0 on success
 * @retval -errno on failure
 */
int k_obj_core_stats_reset(struct k_obj_core *obj_core);

/**
 * @brief Stop gathering the stats associated with the kernel object
 *
 * This function temporarily stops the gathering of statistics associated with
 * the kernel object core specified by @a obj_core. The gathering of statistics
 * can be resumed by invoking :c:func :`k_obj_core_stats_enable`.
 *
 * @param obj_core Pointer to kernel object core
 *
 * @retval 0 on success
 * @retval -errno on failure
 */
int k_obj_core_stats_disable(struct k_obj_core *obj_core);

/**
 * @brief Reset the stats associated with the kernel object
 *
 * This function resumes the gathering of statistics associated with the kernel
 * object core specified by @a obj_core.
 *
 * @param obj_core Pointer to kernel object core
 *
 * @retval 0 on success
 * @retval -errno on failure
 */
int k_obj_core_stats_enable(struct k_obj_core *obj_core);

/** @} */
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 1
/*
 * Copyright (c) 2016 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/*
 * The purpose of this file is to provide essential/minimal kernel structure
 * definitions, so that they can be used without including kernel.h.
 *
 * The following rules must be observed:
 *  1. kernel_structs.h shall not depend on kernel.h both directly and
 *    indirectly (i.e. it shall not include any header files that include
 *    kernel.h in their dependency chain).
 *  2. kernel.h shall imply kernel_structs.h, such that it shall not be
 *    necessary to include kernel_structs.h explicitly when kernel.h is
 *    included.
 */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 1
/*
 * Copyright (c) 1997-2015, Wind River Systems, Inc.
 * Copyright (c) 2021 Intel Corporation
 * Copyright (c) 2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 1
/*
 * Copyright (c) 2013-2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @defgroup doubly-linked-list_apis Doubly-linked list
 * @ingroup datastructure_apis
 *
 * @brief Doubly-linked list implementation
 *
 * Doubly-linked list implementation using inline macros/functions.
 * This API is not thread safe, and thus if a list is used across threads,
 * calls to functions must be protected with synchronization primitives.
 *
 * The lists are expected to be initialized such that both the head and tail
 * pointers point to the list itself.  Initializing the lists in such a fashion
 * simplifies the adding and removing of nodes to/from the list.
 *
 * @{
 */
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_heap.h" 1
/*
 * Copyright (c) 2019 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_heap.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_heap.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h"
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_heap.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_stats.h" 1
/*
 * Copyright (c) 2022 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Memory Statistics
 */





extern "C" {


# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_stats.h" 2


# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_stats.h"
/* A common structure used to report runtime memory usage statistics */

struct sys_memory_stats {
 size_t free_bytes;
 size_t allocated_bytes;
 size_t max_allocated_bytes;
};


}
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_heap.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_heap.h" 2


extern "C" {


/* Simple, fast heap implementation.
 *
 * A more or less conventional segregated fit allocator with
 * power-of-two buckets.
 *
 * Excellent space efficiency.  Chunks can be split arbitrarily in 8
 * byte units.  Overhead is only four bytes per allocated chunk (eight
 * bytes for heaps >256kb or on 64 bit systems), plus a log2-sized
 * array of 2-word bucket headers.  No coarse alignment restrictions
 * on blocks, they can be split and merged (in units of 8 bytes)
 * arbitrarily.
 *
 * Simple API.  Initialize at runtime with any blob of memory and not
 * a macro-generated, carefully aligned static array.  Allocate and
 * free by user pointer and not an opaque block handle.
 *
 * Good fragmentation resistance.  Freed blocks are always immediately
 * merged with adjacent free blocks.  Allocations are attempted from a
 * sample of the smallest bucket that might fit, falling back rapidly
 * to the smallest block guaranteed to fit.  Split memory remaining in
 * the chunk is always returned immediately to the heap for other
 * allocation.
 *
 * Excellent performance with firmly bounded runtime.  All operations
 * are constant time (though there is a search of the smallest bucket
 * that has a compile-time-configurable upper bound, setting this to
 * extreme values results in an effectively linear search of the
 * list), objectively fast (~hundred instructions) and amenable to
 * locked operation.
 */

/* Note: the init_mem/bytes fields are for the static initializer to
 * have somewhere to put the arguments.  The actual heap metadata at
 * runtime lives in the heap memory itself and this struct simply
 * functions as an opaque pointer.  Would be good to clean this up and
 * put the two values somewhere else, though it would make
 * SYS_HEAP_DEFINE a little hairy to write.
 */
struct sys_heap {
 struct z_heap *heap;
 void *init_mem;
 size_t init_bytes;
};

struct z_heap_stress_result {
 uint32_t total_allocs;
 uint32_t successful_allocs;
 uint32_t total_frees;
 uint64_t accumulated_in_use_bytes;
};

/**
 * @defgroup low_level_heap_allocator Low Level Heap Allocator
 * @ingroup heaps
 * @{
 */

/**
 * @brief Get the runtime statistics of a sys_heap
 *
 * @param heap Pointer to specified sys_heap
 * @param stats Pointer to struct to copy statistics into
 * @return -EINVAL if null pointers, otherwise 0
 */
int sys_heap_runtime_stats_get(struct sys_heap *heap,
  struct sys_memory_stats *stats);

/**
 * @brief Reset the maximum heap usage.
 *
 * Set the statistic measuring the maximum number of allocated bytes to the
 * current number of allocated bytes.
 *
 * @param heap Pointer to sys_heap
 * @return -EINVAL if null pointer was passed, otherwise 0
 */
int sys_heap_runtime_stats_reset_max(struct sys_heap *heap);

/** @brief Initialize sys_heap
 *
 * Initializes a sys_heap struct to manage the specified memory.
 *
 * @param heap Heap to initialize
 * @param mem Untyped pointer to unused memory
 * @param bytes Size of region pointed to by @a mem
 */
void sys_heap_init(struct sys_heap *heap, void *mem, size_t bytes);

/** @brief Allocate memory from a sys_heap
 *
 * Returns a pointer to a block of unused memory in the heap.  This
 * memory will not otherwise be used until it is freed with
 * sys_heap_free().  If no memory can be allocated, NULL will be
 * returned.  The allocated memory is guaranteed to have a starting
 * address which is a multiple of sizeof(void *).  If a bigger alignment
 * is necessary then sys_heap_aligned_alloc() should be used instead.
 *
 * @note The sys_heap implementation is not internally synchronized.
 * No two sys_heap functions should operate on the same heap at the
 * same time.  All locking must be provided by the user.
 *
 * @param heap Heap from which to allocate
 * @param bytes Number of bytes requested
 * @return Pointer to memory the caller can now use
 */
void *sys_heap_alloc(struct sys_heap *heap, size_t bytes);

/** @brief Allocate aligned memory from a sys_heap
 *
 * Behaves in all ways like sys_heap_alloc(), except that the returned
 * memory (if available) will have a starting address in memory which
 * is a multiple of the specified power-of-two alignment value in
 * bytes.  With align=0 this behaves exactly like sys_heap_alloc().
 * The resulting memory can be returned to the heap using sys_heap_free().
 *
 * @param heap Heap from which to allocate
 * @param align Alignment in bytes, must be a power of two
 * @param bytes Number of bytes requested
 * @return Pointer to memory the caller can now use
 */
void *sys_heap_aligned_alloc(struct sys_heap *heap, size_t align, size_t bytes);

/** @brief Free memory into a sys_heap
 *
 * De-allocates a pointer to memory previously returned from
 * sys_heap_alloc such that it can be used for other purposes.  The
 * caller must not use the memory region after entry to this function.
 *
 * @note The sys_heap implementation is not internally synchronized.
 * No two sys_heap functions should operate on the same heap at the
 * same time.  All locking must be provided by the user.
 *
 * @param heap Heap to which to return the memory
 * @param mem A pointer previously returned from sys_heap_alloc()
 */
void sys_heap_free(struct sys_heap *heap, void *mem);

/** @brief Expand the size of an existing allocation
 *
 * Returns a pointer to a new memory region with the same contents,
 * but a different allocated size.  If the new allocation can be
 * expanded in place, the pointer returned will be identical.
 * Otherwise the data will be copies to a new block and the old one
 * will be freed as per sys_heap_free().  If the specified size is
 * smaller than the original, the block will be truncated in place and
 * the remaining memory returned to the heap.  If the allocation of a
 * new block fails, then NULL will be returned and the old block will
 * not be freed or modified.
 *
 * @param heap Heap from which to allocate
 * @param ptr Original pointer returned from a previous allocation
 * @param align Alignment in bytes, must be a power of two
 * @param bytes Number of bytes requested for the new block
 * @return Pointer to memory the caller can now use, or NULL
 */
void *sys_heap_aligned_realloc(struct sys_heap *heap, void *ptr,
          size_t align, size_t bytes);




/** @brief Return allocated memory size
 *
 * Returns the size, in bytes, of a block returned from a successful
 * sys_heap_alloc() or sys_heap_alloc_aligned() call.  The value
 * returned is the size of the heap-managed memory, which may be
 * larger than the number of bytes requested due to allocation
 * granularity.  The heap code is guaranteed to make no access to this
 * region of memory until a subsequent sys_heap_free() on the same
 * pointer.
 *
 * @param heap Heap containing the block
 * @param mem Pointer to memory allocated from this heap
 * @return Size in bytes of the memory region
 */
size_t sys_heap_usable_size(struct sys_heap *heap, void *mem);

/** @brief Validate heap integrity
 *
 * Validates the internal integrity of a sys_heap.  Intended for unit
 * test and validation code, though potentially useful as a user API
 * for applications with complicated runtime reliability requirements.
 * Note: this cannot catch every possible error, but if it returns
 * true then the heap is in a consistent state and can correctly
 * handle any sys_heap_alloc() request and free any live pointer
 * returned from a previous allocation.
 *
 * @param heap Heap to validate
 * @return true, if the heap is valid, otherwise false
 */



static inline bool sys_heap_validate(struct sys_heap *heap)
{
 (void)(heap);
 return true;
}


/** @brief sys_heap stress test rig
 *
 * Test rig for heap allocation validation.  This will loop for @a
 * op_count cycles, in each iteration making a random choice to
 * allocate or free a pointer of randomized (power law) size based on
 * heuristics designed to keep the heap in a state where it is near @a
 * target_percent full.  Allocation and free operations are provided
 * by the caller as callbacks (i.e. this can in theory test any heap).
 * Results, including counts of frees and successful/unsuccessful
 * allocations, are returned via the @a result struct.
 *
 * @param alloc_fn Callback to perform an allocation.  Passes back the @a
 *              arg parameter as a context handle.
 * @param free_fn Callback to perform a free of a pointer returned from
 *             @a alloc.  Passes back the @a arg parameter as a
 *             context handle.
 * @param arg Context handle to pass back to the callbacks
 * @param total_bytes Size of the byte array the heap was initialized in
 * @param op_count How many iterations to test
 * @param scratch_mem A pointer to scratch memory to be used by the
 *                    test.  Should be about 1/2 the size of the heap
 *                    for tests that need to stress fragmentation.
 * @param scratch_bytes Size of the memory pointed to by @a scratch_mem
 * @param target_percent Percentage fill value (1-100) to which the
 *                       random allocation choices will seek.  High
 *                       values will result in significant allocation
 *                       failures and a very fragmented heap.
 * @param result Struct into which to store test results.
 */
void sys_heap_stress(void *(*alloc_fn)(void *arg, size_t bytes),
       void (*free_fn)(void *arg, void *p),
       void *arg, size_t total_bytes,
       uint32_t op_count,
       void *scratch_mem, size_t scratch_bytes,
       int target_percent,
       struct z_heap_stress_result *result);

/** @brief Print heap internal structure information to the console
 *
 * Print information on the heap structure such as its size, chunk buckets,
 * chunk list and some statistics for debugging purpose.
 *
 * @param heap Heap to print information about
 * @param dump_chunks True to print the entire heap chunk list
 */
void sys_heap_print_info(struct sys_heap *heap, bool dump_chunks);

/** @brief Save the heap pointer
 *
 * The heap pointer is saved into an internal array, if there is space.
 *
 * @param heap Heap to save
 * @return -EINVAL if null pointer or array is full, otherwise 0
 */
int sys_heap_array_save(struct sys_heap *heap);

/** @brief Get the array of saved heap pointers
 *
 * Returns the pointer to the array of heap pointers.
 *
 * @param heap Heap array
 * @return -EINVAL if null pointer, otherwise number of saved pointers
 */
int sys_heap_array_get(struct sys_heap ***heap);

/**
 * @}
 */


}
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/structs.h" 1
/*
 * Copyright (c) BayLibre SAS
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/*
 * The purpose of this file is to provide essential/minimal architecture-
 * specific structure definitions to be included in generic kernel
 * structures.
 *
 * The following rules must be observed:
 *  1. arch/structs.h shall not depend on kernel.h both directly and
 *     indirectly (i.e. it shall not include any header files that include
 *     kernel.h in their dependency chain).
 *  2. kernel.h shall imply arch/structs.h via kernel_structs.h , such that
 *     it shall not be necessary to include arch/structs.h explicitly when
 *     kernel.h is included.
 */
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/structs.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/structs.h" 1
/*
 * Copyright (c) 2023 Arm Limited (or its affiliates). All rights reserved.
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/structs.h" 2
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/structs.h"
/* Default definitions when no architecture specific definitions exist. */

/* Per CPU architecture specifics (empty) */
struct _cpu_arch {

 /* This struct will have a size 0 in C which is not allowed in C++ (it'll have a size 1). To
	 * prevent this, we add a 1 byte dummy variable.
	 */
 uint8_t dummy;

};
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/structs.h" 2
# 50 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/structs.h"
/* typedefs to be used with GEN_OFFSET_SYM(), etc. */
typedef struct _cpu_arch _cpu_arch_t;
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/stats.h" 1
/*
 * Copyright (c) 2021,2023, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/stats.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/stats.h" 2


# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/stats.h"
/**
 * Structure used to track internal statistics about both thread
 * and CPU usage.
 */

struct k_cycle_stats {
 uint64_t total;
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/stats.h"
 bool track_usage;
};
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/obj_core.h" 1
/*
 * Copyright (c) 2023, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/rb.h" 1
/*
 * Copyright (c) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @defgroup rbtree_apis Balanced Red/Black Tree
 * @ingroup datastructure_apis
 *
 * @brief Balanced Red/Black Tree implementation
 *
 * This implements an intrusive balanced tree that guarantees
 * O(log2(N)) runtime for all operations and amortized O(1) behavior
 * for creation and destruction of whole trees. The algorithms and
 * naming are conventional per existing academic and didactic
 * implementations, c.f.:
 *
 * https://en.wikipedia.org/wiki/Red%E2%80%93black_tree
 *
 * The implementation is size-optimized to prioritize runtime memory
 * usage. The data structure is intrusive, which is to say the @ref
 * rbnode handle is intended to be placed in a separate struct, in the
 * same way as with other such structures (e.g. Zephyr's @ref
 * doubly-linked-list_apis), and requires no data pointer to be stored
 * in the node. The color bit is unioned with a pointer (fairly common
 * for such libraries). Most notably, there is no "parent" pointer
 * stored in the node, the upper structure of the tree being generated
 * dynamically via a stack as the tree is recursed. So the overall
 * memory overhead of a node is just two pointers, identical with a
 * doubly-linked list.
 *
 * @{
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 41 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/rb.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 42 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/rb.h" 2


# 43 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/rb.h"
/* Our SDK/toolchains integration seems to be inconsistent about
 * whether they expose alloca.h or not.  On gcc it's a moot point as
 * it's always builtin.
 */
# 55 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/rb.h"
/**
 * @brief Balanced red/black tree node structure
 */
struct rbnode {
 /** @cond INTERNAL_HIDDEN */
 struct rbnode *children[2];
 /** @endcond */
};

/* Theoretical maximum depth of tree based on pointer size. If memory
 * is filled with 2-pointer nodes, and the tree can be twice as a
 * packed binary tree, plus root...  Works out to 59 entries for 32
 * bit pointers and 121 at 64 bits.
 */




/**
 * @typedef rb_lessthan_t
 * @brief Red/black tree comparison predicate
 *
 * Compares the two nodes and returns true if node A is strictly less
 * than B according to the tree's sorting criteria, false otherwise.
 *
 * Note that during insert, the new node being inserted will always be
 * "A", where "B" is the existing node within the tree against which
 * it is being compared.  This trait can be used (with care!) to
 * implement "most/least recently added" semantics between nodes which
 * would otherwise compare as equal.
 */
typedef bool (*rb_lessthan_t)(struct rbnode *a, struct rbnode *b);

/**
 * @brief Balanced red/black tree structure
 */
struct rbtree {
 /** Root node of the tree */
 struct rbnode *root;
 /** Comparison function for nodes in the tree */
 rb_lessthan_t lessthan_fn;
 /** @cond INTERNAL_HIDDEN */
 int max_depth;




 /** @endcond */
};

/**
 * @brief Prototype for node visitor callback.
 * @param node Node being visited
 * @param cookie User-specified data
 */
typedef void (*rb_visit_t)(struct rbnode *node, void *cookie);

struct rbnode *z_rb_child(struct rbnode *node, uint8_t side);
int z_rb_is_black(struct rbnode *node);

void z_rb_walk(struct rbnode *node, rb_visit_t visit_fn, void *cookie);

struct rbnode *z_rb_get_minmax(struct rbtree *tree, uint8_t side);

/**
 * @brief Insert node into tree
 */
void rb_insert(struct rbtree *tree, struct rbnode *node);

/**
 * @brief Remove node from tree
 */
void rb_remove(struct rbtree *tree, struct rbnode *node);

/**
 * @brief Returns the lowest-sorted member of the tree
 */
static inline struct rbnode *rb_get_min(struct rbtree *tree)
{
 return z_rb_get_minmax(tree, 0U);
}

/**
 * @brief Returns the highest-sorted member of the tree
 */
static inline struct rbnode *rb_get_max(struct rbtree *tree)
{
 return z_rb_get_minmax(tree, 1U);
}

/**
 * @brief Returns true if the given node is part of the tree
 *
 * Note that this does not internally dereference the node pointer
 * (though the tree's lessthan callback might!), it just tests it for
 * equality with items in the tree.  So it's feasible to use this to
 * implement a "set" construct by simply testing the pointer value
 * itself.
 */
bool rb_contains(struct rbtree *tree, struct rbnode *node);


/**
 * @brief Walk/enumerate a rbtree
 *
 * Very simple recursive enumeration.  Low code size, but requiring a
 * separate function can be clumsy for the user and there is no way to
 * break out of the loop early.  See RB_FOR_EACH for an iterative
 * implementation.
 */
static inline void rb_walk(struct rbtree *tree, rb_visit_t visit_fn,
      void *cookie)
{
 z_rb_walk(tree->root, visit_fn, cookie);
}


struct _rb_foreach {
 struct rbnode **stack;
 uint8_t *is_left;
 int32_t top;
};
# 193 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/rb.h"
struct rbnode *z_rb_foreach_next(struct rbtree *tree, struct _rb_foreach *f);

/**
 * @brief Walk a tree in-order without recursing
 *
 * While @ref rb_walk() is very simple, recursing on the C stack can
 * be clumsy for some purposes and on some architectures wastes
 * significant memory in stack frames.  This macro implements a
 * non-recursive "foreach" loop that can iterate directly on the tree,
 * at a moderate cost in code size.
 *
 * Note that the resulting loop is not safe against modifications to
 * the tree.  Changes to the tree structure during the loop will
 * produce incorrect results, as nodes may be skipped or duplicated.
 * Unlike linked lists, no _SAFE variant exists.
 *
 * Note also that the macro expands its arguments multiple times, so
 * they should not be expressions with side effects.
 *
 * @param tree A pointer to a struct rbtree to walk
 * @param node The symbol name of a local struct rbnode* variable to
 *             use as the iterator
 */





/**
 * @brief Loop over rbtree with implicit container field logic
 *
 * As for RB_FOR_EACH(), but "node" can have an arbitrary type
 * containing a struct rbnode.
 *
 * @param tree A pointer to a struct rbtree to walk
 * @param node The symbol name of a local iterator
 * @param field The field name of a struct rbnode inside node
 */







/** @} */
# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 2






extern "C" {


/*
 * Bitmask definitions for the struct k_thread.thread_state field.
 *
 * Must be before kernel_arch_data.h because it might need them to be already
 * defined.
 */

/* states: common uses low bits, arch-specific use high bits */

/* Not a real thread */


/* Thread is waiting on an object */


/* Thread is sleeping */


/* Thread has terminated */


/* Thread is suspended */


/* Thread is in the process of aborting */


/* Thread is in the process of suspending */


/* Thread is present in the ready queue */


/* end - states */






/* lowest value of _thread_base.preempt at which a thread is non-preemptible */


/* highest value of _thread_base.preempt at which a thread is preemptible */




/* Two abstractions are defined here for "thread priority queues".
 *
 * One is a "dumb" list implementation appropriate for systems with
 * small numbers of threads and sensitive to code size.  It is stored
 * in sorted order, taking an O(N) cost every time a thread is added
 * to the list.  This corresponds to the way the original _wait_q_t
 * abstraction worked and is very fast as long as the number of
 * threads is small.
 *
 * The other is a balanced tree "fast" implementation with rather
 * larger code size (due to the data structure itself, the code here
 * is just stubs) and higher constant-factor performance overhead, but
 * much better O(logN) scaling in the presence of large number of
 * threads.
 *
 * Each can be used for either the wait_q or system ready queue,
 * configurable at build time.
 */

struct _priq_rb {
 struct rbtree tree;
 int next_order_key;
};


/* Traditional/textbook "multi-queue" structure.  Separate lists for a
 * small number (max 32 here) of fixed priorities.  This corresponds
 * to the original Zephyr scheduler.  RAM requirements are
 * comparatively high, but performance is very fast.  Won't work with
 * features like deadline scheduling which need large priority spaces
 * to represent their requirements.
 */
struct _priq_mq {
 sys_dlist_t queues[(15 + 16 + 1)];
 unsigned long bitmask[(((((15 + 16 + 1)) + ((8 * 4)) - 1) / ((8 * 4))))];

 unsigned int cached_queue_index;

};

struct _ready_q {

 /* always contains next thread to run: cannot be NULL */
 struct k_thread *cache;



 sys_dlist_t runq;





};

typedef struct _ready_q _ready_q_t;

struct _cpu {
 /* nested interrupt count */
 uint32_t nested;

 /* interrupt stack pointer base */
 char *irq_stack;

 /* currently scheduled thread */
 struct k_thread *current;

 /* one assigned idle thread per CPU */
 struct k_thread *idle_thread;
# 170 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h"
 uint8_t id;


 void *fp_ctx;
# 199 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h"
 /* Per CPU architecture specifics */
 struct _cpu_arch arch;
};

typedef struct _cpu _cpu_t;

struct z_kernel {
 struct _cpu cpus[1];





 /*
	 * ready queue: can be big, keep after small fields, since some
	 * assembly (e.g. ARC) are limited in the encoding of the offset
	 */

 struct _ready_q ready_q;



 struct k_thread *threads;
# 235 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h"
};

typedef struct z_kernel _kernel_t;

extern struct z_kernel _kernel;

extern atomic_t _cpus_active;
# 260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h"
/* This is always invoked from a context where preemption is disabled */
# 271 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h"
/* kernel wait queue record */
# 285 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h"
typedef struct {
 sys_dlist_t waitq;
} _wait_q_t;





/* kernel timeout record */
struct _timeout;
typedef void (*_timeout_func_t)(struct _timeout *t);

struct _timeout {
 sys_dnode_t node;
 _timeout_func_t fn;

 /* Can't use k_ticks_t for header dependency reasons */
 int64_t dticks;



};

typedef void (*k_thread_timeslice_fn_t)(struct k_thread *thread, void *data);


}
# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_version.h" 1
/* kernel version support */

/*
 * Copyright (c) 2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup version_apis Version APIs
 * @ingroup kernel_apis
 * @{
 *
 * The kernel version has been converted from a string to a four-byte
 * quantity that is divided into two parts.
 *
 * Part 1: The three most significant bytes represent the kernel's
 * numeric version, x.y.z. These fields denote:
 *       x -- major release
 *       y -- minor release
 *       z -- patchlevel release
 * Each of these elements must therefore be in the range 0 to 255, inclusive.
 *
 * Part 2: The least significant byte is reserved for future use.
 */




/* kernel version routines */

/**
 * @brief Return the kernel version of the present build
 *
 * The kernel version is a four-byte value, whose format is described in the
 * file "kernel_version.h".
 *
 * @return kernel version
 */
uint32_t sys_kernel_version_get(void);

/**
 * @}
 */


}
# 34 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1
/* auto-generated by gen_syscalls.py, don't edit */
# 220 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* Following syscalls are not used in image */
# 586 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 587 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 588 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 2
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/syscall.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/syscall.h"
/* syscall.h - automatically selects the correct syscall.h file to include */

/*
 * Copyright (c) 1997-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/syscall.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/syscall.h" 1
/*
 * Copyright (c) 2018 Linaro Limited.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 specific syscall header
 *
 * This header contains the ARM AArch32 specific syscall interface.  It is
 * included by the syscall interface architecture-abstraction header
 * (include/arch/syscall.h)
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/syscall.h" 2
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 2


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h"
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 2


extern "C" {


/*
 * System Call Declaration macros
 *
 * These macros are used in public header files to declare system calls.
 * They generate inline functions which have different implementations
 * depending on the current compilation context:
 *
 * - Kernel-only code, or CONFIG_USERSPACE disabled, these inlines will
 *   directly call the implementation
 * - User-only code, these inlines will marshal parameters and elevate
 *   privileges
 * - Mixed or indeterminate code, these inlines will do a runtime check
 *   to determine what course of action is needed.
 *
 * All system calls require a verifier function and an implementation
 * function.  These must follow a naming convention. For a system call
 * named k_foo():
 *
 * - The handler function will be named z_vrfy_k_foo(). Handler
 *   functions have the same type signature as the wrapped call,
 *   verify arguments passed up from userspace, and call the
 *   implementation function. See documentation for that typedef for
 *   more information.  - The implementation function will be named
 *   z_impl_k_foo(). This is the actual implementation of the system
 *   call.
 */

/**
 * @typedef _k_syscall_handler_t
 * @brief System call handler function type
 *
 * These are kernel-side skeleton functions for system calls. They are
 * necessary to sanitize the arguments passed into the system call:
 *
 * - Any kernel object or device pointers are validated with _SYSCALL_IS_OBJ()
 * - Any memory buffers passed in are checked to ensure that the calling thread
 *   actually has access to them
 * - Many kernel calls do no sanity checking of parameters other than
 *   assertions. The handler must check all of these conditions using
 *   _SYSCALL_ASSERT()
 * - If the system call has more than 6 arguments, then arg6 will be a pointer
 *   to some struct containing arguments 6+. The struct itself needs to be
 *   validated like any other buffer passed in from userspace, and its members
 *   individually validated (if necessary) and then passed to the real
 *   implementation like normal arguments
 *
 * Even if the system call implementation has no return value, these always
 * return something, even 0, to prevent register leakage to userspace.
 *
 * Once everything has been validated, the real implementation will be executed.
 *
 * @param arg1 system call argument 1
 * @param arg2 system call argument 2
 * @param arg3 system call argument 3
 * @param arg4 system call argument 4
 * @param arg5 system call argument 5
 * @param arg6 system call argument 6
 * @param ssf System call stack frame pointer. Used to generate kernel oops
 *            via _arch_syscall_oops_at(). Contents are arch-specific.
 * @return system call return value, or 0 if the system call implementation
 *         return void
 *
 */
typedef uintptr_t (*_k_syscall_handler_t)(uintptr_t arg1, uintptr_t arg2,
       uintptr_t arg3, uintptr_t arg4,
       uintptr_t arg5, uintptr_t arg6,
       void *ssf);

/* True if a syscall function must trap to the kernel, usually a
 * compile-time decision.
 */
static inline __attribute__((always_inline)) bool z_syscall_trap(void)
{
 bool ret = false;
# 106 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h"
 return ret;
}

/**
 * Indicate whether the CPU is currently in user mode
 *
 * @return true if the CPU is currently running with user permissions
 */

static inline bool k_is_user_context(void)
{



 return false;

}


}
# 35 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h" 1
/* printk.h - low-level debug output */

/*
 * Copyright (c) 2010-2012, 2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */

/**
 *  @file  inttypes.h
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h" 2



# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h"
extern "C" {


/**
 *
 * @brief Print kernel debugging message.
 *
 * This routine prints a kernel debugging message to the system console.
 * Output is send immediately, without any mutual exclusion or buffering.
 *
 * A basic set of conversion specifier characters are supported:
 *   - signed decimal: \%d, \%i
 *   - unsigned decimal: \%u
 *   - unsigned hexadecimal: \%x (\%X is treated as \%x)
 *   - pointer: \%p
 *   - string: \%s
 *   - character: \%c
 *   - percent: \%\%
 *
 * Field width (with or without leading zeroes) is supported.
 * Length attributes h, hh, l, ll and z are supported. However, integral
 * values with %lld and %lli are only printed if they fit in a long
 * otherwise 'ERR' is printed. Full 64-bit values may be printed with %llx.
 * Flags and precision attributes are not supported.
 *
 * @param fmt Format string.
 * @param ... Optional list of format arguments.
 */


__attribute__((format (printf, 1, 2))) void printk(const char *fmt, ...);
__attribute__((format (printf, 1, 0))) void vprintk(const char *fmt, va_list ap);
# 65 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h"
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdio.h" 3 4
/* Copyright (c) 2002, 2005, 2007 Joerg Wunsch
   All rights reserved.

   Portions of documentation Copyright (c) 1990, 1991, 1993
   The Regents of the University of California.

   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:

   * Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

   * Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.

   * Neither the name of the copyright holders nor the names of
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.

  $Id: stdio.h 2527 2016-10-27 20:41:22Z joerg_wunsch $
*/
# 66 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h" 2
# 80 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h"

# 80 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/printk.h"
}
# 36 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/cpu.h" 1
/* cpu.h - automatically selects the correct arch.h file to include */

/*
 * Copyright (c) 1997-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h" 1
/*
 * Copyright (c) 2019 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @defgroup arch-interface Architecture Interface
 * @ingroup internal_api
 * @brief Internal kernel APIs with public scope
 *
 * Any public kernel APIs that are implemented as inline functions and need to
 * call architecture-specific API so will have the prototypes for the
 * architecture-specific APIs here. Architecture APIs that aren't used in this
 * way go in kernel/include/kernel_arch_interface.h.
 *
 * The set of architecture-specific APIs used internally by public macros and
 * inline functions in public headers are also specified and documented.
 *
 * For all macros and inline function prototypes described herein, <arch/cpu.h>
 * must eventually pull in full definitions for all of them (the actual macro
 * defines and inline function bodies)
 *
 * include/kernel.h and other public headers depend on definitions in this
 * header.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h"
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 34 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/cpu.h" 1
/* cpu.h - automatically selects the correct arch.h file to include */

/*
 * Copyright (c) 1997-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 35 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq_offload.h" 1
/*
 * Copyright (c) 2015 Intel corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief IRQ Offload interface
 */




extern "C" {


typedef void (*irq_offload_routine_t)(const void *parameter);

/**
 * @brief Run a function in interrupt context
 *
 * This function synchronously runs the provided function in interrupt
 * context, passing in the supplied device. Useful for test code
 * which needs to show that kernel objects work correctly in interrupt
 * context.
 *
 * Additionally, when CONFIG_IRQ_OFFLOAD_NESTED is set by the
 * architecture, this routine works to synchronously invoke a nested
 * interrupt when called from an ISR context (i.e. when k_is_in_isr()
 * is true).  Note that not all platforms will have hardware support
 * for this capability, and even on those some interrupts may be
 * running at unpreemptible priorities.
 *
 * @param routine The function to run
 * @param parameter Argument to pass to the function when it is run as an
 * interrupt
 */
void irq_offload(irq_offload_routine_t routine, const void *parameter);


}
# 36 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h" 2


extern "C" {


/* NOTE: We cannot pull in kernel.h here, need some forward declarations  */
struct arch_esf;
struct k_thread;
struct k_mem_domain;

typedef struct z_thread_stack_element k_thread_stack_t;

typedef void (*k_thread_entry_t)(void *p1, void *p2, void *p3);

/**
 * @defgroup arch-timing Architecture timing APIs
 * @ingroup arch-interface
 * @{
 */

/**
 * Obtain the current cycle count, in units specified by
 * CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC.  While this is historically
 * specified as part of the architecture API, in practice virtually
 * all platforms forward it to the sys_clock_cycle_get_32() API
 * provided by the timer driver.
 *
 * @see k_cycle_get_32()
 *
 * @return The current cycle time.  This should count up monotonically
 * through the full 32 bit space, wrapping at 0xffffffff.  Hardware
 * with fewer bits of precision in the timer is expected to synthesize
 * a 32 bit count.
 */
static inline uint32_t arch_k_cycle_get_32(void);

/**
 * As for arch_k_cycle_get_32(), but with a 64 bit return value.  Not
 * all timer hardware has a 64 bit timer, this needs to be implemented
 * only if CONFIG_TIMER_HAS_64BIT_CYCLE_COUNTER is set.
 *
 * @see arch_k_cycle_get_32()
 *
 * @return The current cycle time.  This should count up monotonically
 * through the full 64 bit space, wrapping at 2^64-1.  Hardware with
 * fewer bits of precision in the timer is generally not expected to
 * implement this API.
 */
static inline uint64_t arch_k_cycle_get_64(void);

/** @} */


/**
 * @addtogroup arch-threads
 * @{
 */

/**
 * @def ARCH_THREAD_STACK_RESERVED
 *
 * @see K_THREAD_STACK_RESERVED
 */

/**
 * @def ARCH_STACK_PTR_ALIGN
 *
 * Required alignment of the CPU's stack pointer register value, dictated by
 * hardware constraints and the ABI calling convention.
 *
 * @see Z_STACK_PTR_ALIGN
 */

/**
 * @def ARCH_THREAD_STACK_OBJ_ALIGN(size)
 *
 * Required alignment of the lowest address of a stack object.
 *
 * Optional definition.
 *
 * @see Z_THREAD_STACK_OBJ_ALIGN
 */

/**
 * @def ARCH_THREAD_STACK_SIZE_ADJUST(size)
 * @brief Round up a stack buffer size to alignment constraints
 *
 * Adjust a requested stack buffer size to the true size of its underlying
 * buffer, defined as the area usable for thread stack context and thread-
 * local storage.
 *
 * The size value passed here does not include storage reserved for platform
 * data.
 *
 * The returned value is either the same size provided (if already properly
 * aligned), or rounded up to satisfy alignment constraints.  Calculations
 * performed here *must* be idempotent.
 *
 * Optional definition. If undefined, stack buffer sizes are either:
 * - Rounded up to the next power of two if user mode is enabled on an arch
 *   with an MPU that requires such alignment
 * - Rounded up to ARCH_STACK_PTR_ALIGN
 *
 * @see Z_THREAD_STACK_SIZE_ADJUST
 */

/**
 * @def ARCH_KERNEL_STACK_RESERVED
 * @brief MPU guard size for kernel-only stacks
 *
 * If MPU stack guards are used to catch stack overflows, specify the
 * amount of space reserved in kernel stack objects. If guard sizes are
 * context dependent, this should be in the minimum guard size, with
 * remaining space carved out if needed.
 *
 * Optional definition, defaults to 0.
 *
 * @see K_KERNEL_STACK_RESERVED
 */

/**
 * @def ARCH_KERNEL_STACK_OBJ_ALIGN
 * @brief Required alignment of the lowest address of a kernel-only stack.
 */

/** @} */

/**
 * @addtogroup arch-pm
 * @{
 */

/**
 * @brief Power save idle routine
 *
 * This function will be called by the kernel idle loop or possibly within
 * an implementation of z_pm_save_idle in the kernel when the
 * '_pm_save_flag' variable is non-zero.
 *
 * Architectures that do not implement power management instructions may
 * immediately return, otherwise a power-saving instruction should be
 * issued to wait for an interrupt.
 *
 * @note The function is expected to return after the interrupt that has
 * caused the CPU to exit power-saving mode has been serviced, although
 * this is not a firm requirement.
 *
 * @see k_cpu_idle()
 */
void arch_cpu_idle(void);

/**
 * @brief Atomically re-enable interrupts and enter low power mode
 *
 * The requirements for arch_cpu_atomic_idle() are as follows:
 *
 * -# Enabling interrupts and entering a low-power mode needs to be
 *    atomic, i.e. there should be no period of time where interrupts are
 *    enabled before the processor enters a low-power mode.  See the comments
 *    in k_lifo_get(), for example, of the race condition that
 *    occurs if this requirement is not met.
 *
 * -# After waking up from the low-power mode, the interrupt lockout state
 *    must be restored as indicated in the 'key' input parameter.
 *
 * @see k_cpu_atomic_idle()
 *
 * @param key Lockout key returned by previous invocation of arch_irq_lock()
 */
void arch_cpu_atomic_idle(unsigned int key);

/** @} */


/**
 * @addtogroup arch-smp
 * @{
 */

/**
 * Per-cpu entry function
 *
 * @param data context parameter, implementation specific
 */
typedef void (*arch_cpustart_t)(void *data);

/**
 * @brief Start a numbered CPU on a MP-capable system
 *
 * This starts and initializes a specific CPU.  The main thread on startup is
 * running on CPU zero, other processors are numbered sequentially.  On return
 * from this function, the CPU is known to have begun operating and will enter
 * the provided function.  Its interrupts will be initialized but disabled such
 * that irq_unlock() with the provided key will work to enable them.
 *
 * Normally, in SMP mode this function will be called by the kernel
 * initialization and should not be used as a user API.  But it is defined here
 * for special-purpose apps which want Zephyr running on one core and to use
 * others for design-specific processing.
 *
 * @param cpu_num Integer number of the CPU
 * @param stack Stack memory for the CPU
 * @param sz Stack buffer size, in bytes
 * @param fn Function to begin running on the CPU.
 * @param arg Untyped argument to be passed to "fn"
 */
void arch_cpu_start(int cpu_num, k_thread_stack_t *stack, int sz,
      arch_cpustart_t fn, void *arg);

/**
 * @brief Return CPU power status
 *
 * @param cpu_num Integer number of the CPU
 */
bool arch_cpu_active(int cpu_num);

/** @} */


/**
 * @addtogroup arch-irq
 * @{
 */

/**
 * Lock interrupts on the current CPU
 *
 * @see irq_lock()
 */
static inline unsigned int arch_irq_lock(void);

/**
 * Unlock interrupts on the current CPU
 *
 * @see irq_unlock()
 */
static inline void arch_irq_unlock(unsigned int key);

/**
 * Test if calling arch_irq_unlock() with this key would unlock irqs
 *
 * @param key value returned by arch_irq_lock()
 * @return true if interrupts were unlocked prior to the arch_irq_lock()
 * call that produced the key argument.
 */
static inline bool arch_irq_unlocked(unsigned int key);

/**
 * Disable the specified interrupt line
 *
 * @note: The behavior of interrupts that arrive after this call
 * returns and before the corresponding call to arch_irq_enable() is
 * undefined.  The hardware is not required to latch and deliver such
 * an interrupt, though on some architectures that may work.  Other
 * architectures will simply lose such an interrupt and never deliver
 * it.  Many drivers and subsystems are not tolerant of such dropped
 * interrupts and it is the job of the application layer to ensure
 * that behavior remains correct.
 *
 * @see irq_disable()
 */
void arch_irq_disable(unsigned int irq);

/**
 * Enable the specified interrupt line
 *
 * @see irq_enable()
 */
void arch_irq_enable(unsigned int irq);

/**
 * Test if an interrupt line is enabled
 *
 * @see irq_is_enabled()
 */
int arch_irq_is_enabled(unsigned int irq);

/**
 * Arch-specific hook to install a dynamic interrupt.
 *
 * @param irq IRQ line number
 * @param priority Interrupt priority
 * @param routine Interrupt service routine
 * @param parameter ISR parameter
 * @param flags Arch-specific IRQ configuration flag
 *
 * @return The vector assigned to this interrupt
 */
int arch_irq_connect_dynamic(unsigned int irq, unsigned int priority,
        void (*routine)(const void *parameter),
        const void *parameter, uint32_t flags);

/**
 * Arch-specific hook to dynamically uninstall a shared interrupt.
 * If the interrupt is not being shared, then the associated
 * _sw_isr_table entry will be replaced by (NULL, z_irq_spurious)
 * (default entry).
 *
 * @param irq IRQ line number
 * @param priority Interrupt priority
 * @param routine Interrupt service routine
 * @param parameter ISR parameter
 * @param flags Arch-specific IRQ configuration flag
 *
 * @return 0 in case of success, negative value otherwise
 */
int arch_irq_disconnect_dynamic(unsigned int irq, unsigned int priority,
    void (*routine)(const void *parameter),
    const void *parameter, uint32_t flags);

/**
 * @def ARCH_IRQ_CONNECT(irq, pri, isr, arg, flags)
 *
 * @see IRQ_CONNECT()
 */
# 360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h"
/**
 * @def ARCH_IRQ_DIRECT_CONNECT(irq_p, priority_p, isr_p, flags_p)
 *
 * @see IRQ_DIRECT_CONNECT()
 */

/**
 * @def ARCH_ISR_DIRECT_PM()
 *
 * @see ISR_DIRECT_PM()
 */

/**
 * @def ARCH_ISR_DIRECT_HEADER()
 *
 * @see ISR_DIRECT_HEADER()
 */

/**
 * @def ARCH_ISR_DIRECT_FOOTER(swap)
 *
 * @see ISR_DIRECT_FOOTER()
 */

/**
 * @def ARCH_ISR_DIRECT_DECLARE(name)
 *
 * @see ISR_DIRECT_DECLARE()
 */


/**
 * @brief Arch-specific hook for allocating IRQs
 *
 * Note: disable/enable IRQ relevantly inside the implementation of such
 * function to avoid concurrency issues. Also, an allocated IRQ is assumed
 * to be used thus a following @see arch_irq_is_used() should return true.
 *
 * @return The newly allocated IRQ or UINT_MAX on error.
 */
unsigned int arch_irq_allocate(void);

/**
 * @brief Arch-specific hook for declaring an IRQ being used
 *
 * Note: disable/enable IRQ relevantly inside the implementation of such
 * function to avoid concurrency issues.
 *
 * @param irq the IRQ to declare being used
 */
void arch_irq_set_used(unsigned int irq);

/**
 * @brief Arch-specific hook for checking if an IRQ is being used already
 *
 * @param irq the IRQ to check
 *
 * @return true if being, false otherwise
 */
bool arch_irq_is_used(unsigned int irq);



/**
 * @def ARCH_EXCEPT(reason_p)
 *
 * Generate a software induced fatal error.
 *
 * If the caller is running in user mode, only K_ERR_KERNEL_OOPS or
 * K_ERR_STACK_CHK_FAIL may be induced.
 *
 * This should ideally generate a software trap, with exception context
 * indicating state when this was invoked. General purpose register state at
 * the time of trap should not be disturbed from the calling context.
 *
 * @param reason_p K_ERR_ scoped reason code for the fatal error.
 */
# 465 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h"
/** @} */


/**
 * @defgroup arch-smp Architecture-specific SMP APIs
 * @ingroup arch-interface
 * @{
 */
# 519 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h"
/**
 * @brief Returns the number of CPUs
 *
 * For most systems this will be the same as CONFIG_MP_MAX_NUM_CPUS,
 * however some systems may determine this at runtime instead.
 *
 * @return the number of CPUs
 */
static inline unsigned int arch_num_cpus(void);

/** @} */


/**
 * @defgroup arch-userspace Architecture-specific userspace APIs
 * @ingroup arch-interface
 * @{
 */
# 873 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h"
/**
 * @brief Detect memory coherence type
 *
 * Required when ARCH_HAS_COHERENCE is true.  This function returns
 * true if the byte pointed to lies within an architecture-defined
 * "coherence region" (typically implemented with uncached memory) and
 * can safely be used in multiprocessor code without explicit flush or
 * invalidate operations.
 *
 * @note The result is for only the single byte at the specified
 * address, this API is not required to check region boundaries or to
 * expect aligned pointers.  The expectation is that the code above
 * will have queried the appropriate address(es).
 */

static inline bool arch_mem_coherent(void *ptr)
{
 (void)(ptr);
 return true;
}


/**
 * @brief Ensure cache coherence prior to context switch
 *
 * Required when ARCH_HAS_COHERENCE is true.  On cache-incoherent
 * multiprocessor architectures, thread stacks are cached by default
 * for performance reasons.  They must therefore be flushed
 * appropriately on context switch.  The rules are:
 *
 * 1. The region containing live data in the old stack (generally the
 *    bytes between the current stack pointer and the top of the stack
 *    memory) must be flushed to underlying storage so a new CPU that
 *    runs the same thread sees the correct data.  This must happen
 *    before the assignment of the switch_handle field in the thread
 *    struct which signals the completion of context switch.
 *
 * 2. Any data areas to be read from the new stack (generally the same
 *    as the live region when it was saved) should be invalidated (and
 *    NOT flushed!) in the data cache.  This is because another CPU
 *    may have run or re-initialized the thread since this CPU
 *    suspended it, and any data present in cache will be stale.
 *
 * @note The kernel will call this function during interrupt exit when
 * a new thread has been chosen to run, and also immediately before
 * entering arch_switch() to effect a code-driven context switch.  In
 * the latter case, it is very likely that more data will be written
 * to the old_thread stack region after this function returns but
 * before the completion of the switch.  Simply flushing naively here
 * is not sufficient on many architectures and coordination with the
 * arch_switch() implementation is likely required.
 *
 * @param old_thread The old thread to be flushed before being allowed
 *                   to run on other CPUs.
 * @param old_switch_handle The switch handle to be stored into
 *                          old_thread (it will not be valid until the
 *                          cache is flushed so is not present yet).
 *                          This will be NULL if inside z_swap()
 *                          (because the arch_switch() has not saved it
 *                          yet).
 * @param new_thread The new thread to be invalidated before it runs locally.
 */

static inline void arch_cohere_stacks(struct k_thread *old_thread,
          void *old_switch_handle,
          struct k_thread *new_thread)
{
 (void)(old_thread);
 (void)(old_switch_handle);
 (void)(new_thread);
}


/** @} */

/**
 * @defgroup arch-gdbstub Architecture-specific gdbstub APIs
 * @ingroup arch-interface
 * @{
 */
# 1073 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h"
/** @} */
# 1249 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h"
/**
 * @brief Perform architecture specific processing within spin loops
 *
 * This is invoked from busy loops with IRQs disabled such as the contended
 * spinlock loop. The default implementation is a weak function that calls
 * arch_nop(). Architectures may implement this function to perform extra
 * checks or power management tricks if needed.
 */
void arch_spin_relax(void);

/**
 * @defgroup arch-stackwalk Architecture-specific Stack Walk APIs
 * @ingroup arch-interface
 *
 * To add API support to an architecture, `arch_stack_walk()` should be implemented and a non-user
 * configurable Kconfig `ARCH_HAS_STACKWALK` that is default to `y` should be created in the
 * architecture's top level Kconfig, with all the relevant dependencies.
 *
 * @{
 */

/**
 * stack_trace_callback_fn - Callback for @ref arch_stack_walk
 * @param cookie Caller supplied pointer handed back by @ref arch_stack_walk
 * @param addr The stack entry address to consume
 *
 * @return True, if the entry was consumed or skipped. False, if there is no space left to store
 */
typedef bool (*stack_trace_callback_fn)(void *cookie, unsigned long addr);

/**
 * @brief Architecture-specific function to walk the stack
 *
 * @param callback_fn Callback which is invoked by the architecture code for each entry.
 * @param cookie Caller supplied pointer which is handed back to @a callback_fn
 * @param thread Pointer to a k_thread struct, can be NULL
 * @param esf Pointer to an arch_esf struct, can be NULL
 *
 * ============ ======= ============================================
 * thread	esf
 * ============ ======= ============================================
 * thread	NULL	Stack trace from thread (can be _current)
 * thread	esf	Stack trace starting on esf
 * ============ ======= ============================================
 */
void arch_stack_walk(stack_trace_callback_fn callback_fn, void *cookie,
       const struct k_thread *thread, const struct arch_esf *esf);

/**
 * arch-stackwalk
 * @}
 */


}


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_inlines.h" 1
/*
 * arch_inlines.h - automatically selects the correct arch_inlines.h file to
 *   include based on the selected architecture.
 */

/*
 * Copyright (c) 2019 Stephanos Ioannidis <root@stephanos.io>
 *
 * SPDX-License-Identifier: Apache-2.0
 */







# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch_inlines.h" 1
/*
 * Copyright 2022 IoT.bzh
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 1
/*
 * Copyright (c) 2016 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/*
 * The purpose of this file is to provide essential/minimal kernel structure
 * definitions, so that they can be used without including kernel.h.
 *
 * The following rules must be observed:
 *  1. kernel_structs.h shall not depend on kernel.h both directly and
 *    indirectly (i.e. it shall not include any header files that include
 *    kernel.h in their dependency chain).
 *  2. kernel.h shall imply kernel_structs.h, such that it shall not be
 *    necessary to include kernel_structs.h explicitly when kernel.h is
 *    included.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch_inlines.h" 2
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch_inlines.h"
static inline __attribute__((always_inline)) _cpu_t *arch_curr_cpu(void)
{
 /* Dummy implementation always return the first cpu */
 return &_kernel.cpus[0];
}



static inline __attribute__((always_inline)) uint32_t arch_proc_id(void)
{
 /*
	 * Placeholder implementation to be replaced with an architecture
	 * specific call to get processor ID
	 */
 return arch_curr_cpu()->id;
}

static inline __attribute__((always_inline)) unsigned int arch_num_cpus(void)
{
 return 1;
}
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_inlines.h" 2
# 1307 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h" 2
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/cpu.h" 2






# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 1
/*
 * Copyright (c) 2013-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 specific kernel interface header
 *
 * This header contains the ARM AArch32 specific kernel interface.  It is
 * included by the kernel interface architecture-abstraction header
 * (include/arm/cpu.h)
 */




/* Add include for DTS generated information */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 1
/*
 * SPDX-License-Identifier: Apache-2.0
 * Copyright (c) 2020 Nordic Semiconductor
 * Copyright (c) 2020, Linaro Ltd.
 *
 * Not a generated file. Feel free to modify.
 */

/**
 * @file
 * @brief Devicetree main header
 *
 * API for accessing the current application's devicetree macros.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h" 1
/*
 * Generated by gen_defines.py
 *
 * DTS input file:
 *   /home/runner/work/ArduinoCore-zephyr/ArduinoCore-zephyr/build/arduino_giga_r1_stm32h747xx_m7/zephyr/zephyr.dts.pre
 *
 * Directories with bindings:
 *   $ZEPHYR_BASE/dts/bindings
 *
 * Node dependency ordering (ordinal and path):
 *   0   /
 *   1   /aliases
 *   2   /chosen
 *   3   /connector
 *   4   /soc
 *   5   /soc/interrupt-controller@e000e100
 *   6   /clocks
 *   7   /clocks/clk-hse
 *   8   /clocks/pll@0
 *   9   /soc/rcc@58024400
 *   10  /soc/pin-controller@58020000
 *   11  /soc/pin-controller@58020000/adc3_inp0_pc2_c
 *   12  /soc/pin-controller@58020000/adc3_inp1_pc3_c
 *   13  /soc/adc@58026000
 *   14  /dietemp
 *   15  /soc/pin-controller@58020000/i2c4_scl_pb6
 *   16  /soc/pin-controller@58020000/i2c4_sda_ph12
 *   17  /soc/i2c@58001c00
 *   18  /soc/pin-controller@58020000/gpio@58022000
 *   19  /soc/i2c@58001c00/gt911@5d
 *   20  /lvgl_pointer
 *   21  /memory@24000000
 *   22  /memory@30000000
 *   23  /memory@30020000
 *   24  /memory@30040000
 *   25  /memory@38000000
 *   26  /memory@90000000
 *   27  /soc/pin-controller@58020000/i2c1_scl_pb8
 *   28  /soc/pin-controller@58020000/i2c1_sda_pb9
 *   29  /soc/i2c@40005400
 *   30  /smbus1
 *   31  /soc/pin-controller@58020000/i2c2_scl_ph4
 *   32  /soc/pin-controller@58020000/i2c2_sda_pb11
 *   33  /soc/i2c@40005800
 *   34  /smbus2
 *   35  /soc/i2c@40005c00
 *   36  /smbus3
 *   37  /smbus4
 *   38  /vbat
 *   39  /vref
 *   40  /gpio@deadbeef
 *   41  /soc/pin-controller@58020000/adc1_inp0_pa0_c
 *   42  /soc/pin-controller@58020000/adc1_inp10_pc0
 *   43  /soc/pin-controller@58020000/adc1_inp12_pc2
 *   44  /soc/pin-controller@58020000/adc1_inp13_pc3
 *   45  /soc/pin-controller@58020000/adc1_inp16_pa0
 *   46  /soc/pin-controller@58020000/adc1_inp18_pa4
 *   47  /soc/pin-controller@58020000/adc1_inp19_pa5
 *   48  /soc/pin-controller@58020000/adc1_inp1_pa1_c
 *   49  /soc/pin-controller@58020000/adc1_inp4_pc4
 *   50  /soc/pin-controller@58020000/adc1_inp5_pb1
 *   51  /soc/pin-controller@58020000/adc1_inp8_pc5
 *   52  /soc/pin-controller@58020000/adc1_inp9_pb0
 *   53  /soc/adc@40022000
 *   54  /soc/pin-controller@58020000/dac1_out1_pa4
 *   55  /soc/pin-controller@58020000/dac1_out2_pa5
 *   56  /soc/dac@40007400
 *   57  /soc/pin-controller@58020000/usart2_rx_pd6
 *   58  /soc/pin-controller@58020000/usart2_tx_pd5
 *   59  /soc/rcc@58024400/reset-controller
 *   60  /soc/serial@40004400
 *   61  /soc/pin-controller@58020000/uart4_rx_pi9
 *   62  /soc/pin-controller@58020000/uart4_tx_ph13
 *   63  /soc/serial@40004c00
 *   64  /soc/pin-controller@58020000/usart1_rx_pb7
 *   65  /soc/pin-controller@58020000/usart1_tx_pa9
 *   66  /soc/serial@40011000
 *   67  /soc/pin-controller@58020000/usart6_rx_pc7
 *   68  /soc/pin-controller@58020000/usart6_tx_pg14
 *   69  /soc/serial@40011400
 *   70  /soc/pin-controller@58020000/spi1_miso_pg9
 *   71  /soc/pin-controller@58020000/spi1_mosi_pd7
 *   72  /soc/pin-controller@58020000/spi1_sck_pb3
 *   73  /soc/spi@40013000
 *   74  /soc/pin-controller@58020000/spi5_miso_pj11
 *   75  /soc/pin-controller@58020000/spi5_mosi_pj10
 *   76  /soc/pin-controller@58020000/spi5_sck_ph6
 *   77  /soc/spi@40015000
 *   78  /soc/pin-controller@58020000/gpio@58020000
 *   79  /soc/pin-controller@58020000/gpio@58020400
 *   80  /soc/pin-controller@58020000/gpio@58020800
 *   81  /soc/pin-controller@58020000/gpio@58020C00
 *   82  /soc/pin-controller@58020000/gpio@58021000
 *   83  /soc/pin-controller@58020000/gpio@58021800
 *   84  /soc/pin-controller@58020000/gpio@58021C00
 *   85  /soc/pin-controller@58020000/gpio@58022400
 *   86  /soc/pin-controller@58020000/gpio@58022800
 *   87  /soc/timers@40000000
 *   88  /soc/pin-controller@58020000/tim2_ch3_pa2
 *   89  /soc/pin-controller@58020000/tim2_ch4_pa3
 *   90  /soc/timers@40000000/pwm
 *   91  /soc/timers@40000400
 *   92  /soc/pin-controller@58020000/tim3_ch1_pb4
 *   93  /soc/pin-controller@58020000/tim3_ch2_pa7
 *   94  /soc/timers@40000400/pwm
 *   95  /soc/timers@40000800
 *   96  /soc/pin-controller@58020000/tim4_ch2_pd13
 *   97  /soc/pin-controller@58020000/tim4_ch3_pb8
 *   98  /soc/pin-controller@58020000/tim4_ch4_pb9
 *   99  /soc/timers@40000800/pwm
 *   100 /soc/timers@40010000
 *   101 /soc/pin-controller@58020000/tim1_ch1_pk1
 *   102 /soc/pin-controller@58020000/tim1_ch3_pj9
 *   103 /soc/timers@40010000/pwm
 *   104 /soc/timers@40010400
 *   105 /soc/pin-controller@58020000/tim8_ch1_pj8
 *   106 /soc/timers@40010400/pwm
 *   107 /otghs_fs_phy
 *   108 /soc/pin-controller@58020000/usb_otg_fs_dm_pa11
 *   109 /soc/pin-controller@58020000/usb_otg_fs_dp_pa12
 *   110 /soc/usb@40080000
 *   111 /soc/usb@40080000/board_cdc_acm_uart
 *   112 /zephyr,user
 *   113 /clocks/clk-csi
 *   114 /clocks/clk-hsi
 *   115 /clocks/clk-hsi48
 *   116 /clocks/clk-lse
 *   117 /clocks/clk-lsi
 *   118 /clocks/perck
 *   119 /clocks/pll@1
 *   120 /clocks/pll@2
 *   121 /cpus
 *   122 /cpus/cpu@0
 *   123 /cpus/cpu@0/mpu@e000ed90
 *   124 /gpio_keys
 *   125 /gpio_keys/button_0
 *   126 /leds
 *   127 /leds/led_0
 *   128 /leds/led_1
 *   129 /leds/led_2
 *   130 /mcos
 *   131 /mcos/mco1
 *   132 /mcos/mco2
 *   133 /soc/adc@40022100
 *   134 /soc/adc@40022300
 *   135 /soc/bdma@58025400
 *   136 /soc/can@4000a000
 *   137 /soc/pin-controller@58020000/fdcan2_rx_pb5
 *   138 /soc/pin-controller@58020000/fdcan2_tx_pb13
 *   139 /soc/can@4000a400
 *   140 /soc/dma@40020400
 *   141 /soc/dmamux@58025800
 *   142 /soc/dmamux@40020800
 *   143 /soc/i2s@40003800
 *   144 /soc/i2s@40003c00
 *   145 /soc/i2s@40013000
 *   146 /soc/interrupt-controller@58000000
 *   147 /soc/mailbox@58026400
 *   148 /soc/memory@38800000
 *   149 /soc/rng@48021800
 *   150 /soc/sdmmc@48022400
 *   151 /soc/sdmmc@52007000
 *   152 /soc/serial@40004800
 *   153 /soc/serial@40005000
 *   154 /soc/serial@40007c00
 *   155 /soc/serial@58000c00
 *   156 /soc/spi@40003800
 *   157 /soc/spi@40003c00
 *   158 /soc/spi@40013400
 *   159 /soc/spi@58001400
 *   160 /soc/timer@e000e010
 *   161 /soc/timers@40002400
 *   162 /soc/usb@40040000
 *   163 /soc/watchdog@50003000
 *   164 /soc/watchdog@58004800
 *   165 /soc/adc@40022000/channel@0
 *   166 /soc/adc@40022000/channel@1
 *   167 /soc/adc@40022000/channel@4
 *   168 /soc/adc@40022000/channel@5
 *   169 /soc/adc@40022000/channel@8
 *   170 /soc/adc@40022000/channel@9
 *   171 /soc/adc@40022000/channel@a
 *   172 /soc/adc@40022000/channel@c
 *   173 /soc/adc@40022000/channel@d
 *   174 /soc/adc@40022000/channel@10
 *   175 /soc/adc@40022000/channel@12
 *   176 /soc/adc@40022000/channel@13
 *   177 /soc/adc@58026000/channel@0
 *   178 /soc/adc@58026000/channel@1
 *   179 /soc/dma@40020000
 *   180 /soc/i2c@58001c00/gc2145@3c
 *   181 /soc/pin-controller@58020000/dcmi_d0_ph9
 *   182 /soc/pin-controller@58020000/dcmi_d1_ph10
 *   183 /soc/pin-controller@58020000/dcmi_d2_ph11
 *   184 /soc/pin-controller@58020000/dcmi_d3_pg11
 *   185 /soc/pin-controller@58020000/dcmi_d4_ph14
 *   186 /soc/pin-controller@58020000/dcmi_d5_pi4
 *   187 /soc/pin-controller@58020000/dcmi_d6_pi6
 *   188 /soc/pin-controller@58020000/dcmi_d7_pi7
 *   189 /soc/pin-controller@58020000/dcmi_hsync_ph8
 *   190 /soc/pin-controller@58020000/dcmi_pixclk_pa6
 *   191 /soc/pin-controller@58020000/dcmi_vsync_pi5
 *   192 /soc/dcmi@48020000
 *   193 /soc/dcmi@48020000/port
 *   194 /soc/dcmi@48020000/port/endpoint
 *   195 /sdram@c0000000
 *   196 /soc/display-controller@50001000
 *   197 /soc/display-controller@50001000/display-timings
 *   198 /soc/dsihost@50000000
 *   199 /soc/dsihost@50000000/st7701@0
 *   200 /soc/dsihost@50000000/st7701@0/display-timings
 *   201 /soc/ethernet@40028000
 *   202 /soc/ethernet@40028000/mdio
 *   203 /soc/flash-controller@52002000
 *   204 /soc/flash-controller@52002000/flash@8000000
 *   205 /soc/flash-controller@52002000/flash@8000000/partitions
 *   206 /soc/flash-controller@52002000/flash@8000000/partitions/partition@0
 *   207 /soc/flash-controller@52002000/flash@8000000/partitions/partition@40000
 *   208 /soc/flash-controller@52002000/flash@8000000/partitions/partition@e0000
 *   209 /soc/i2c@58001c00/gc2145@3c/port
 *   210 /soc/i2c@58001c00/gc2145@3c/port/endpoint
 *   211 /soc/pin-controller@58020000/fmc_a0_pf0
 *   212 /soc/pin-controller@58020000/fmc_a10_pg0
 *   213 /soc/pin-controller@58020000/fmc_a11_pg1
 *   214 /soc/pin-controller@58020000/fmc_a12_pg2
 *   215 /soc/pin-controller@58020000/fmc_a14_pg4
 *   216 /soc/pin-controller@58020000/fmc_a15_pg5
 *   217 /soc/pin-controller@58020000/fmc_a1_pf1
 *   218 /soc/pin-controller@58020000/fmc_a2_pf2
 *   219 /soc/pin-controller@58020000/fmc_a3_pf3
 *   220 /soc/pin-controller@58020000/fmc_a4_pf4
 *   221 /soc/pin-controller@58020000/fmc_a5_pf5
 *   222 /soc/pin-controller@58020000/fmc_a6_pf12
 *   223 /soc/pin-controller@58020000/fmc_a7_pf13
 *   224 /soc/pin-controller@58020000/fmc_a8_pf14
 *   225 /soc/pin-controller@58020000/fmc_a9_pf15
 *   226 /soc/pin-controller@58020000/fmc_d0_pd14
 *   227 /soc/pin-controller@58020000/fmc_d10_pe13
 *   228 /soc/pin-controller@58020000/fmc_d11_pe14
 *   229 /soc/pin-controller@58020000/fmc_d12_pe15
 *   230 /soc/pin-controller@58020000/fmc_d13_pd8
 *   231 /soc/pin-controller@58020000/fmc_d14_pd9
 *   232 /soc/pin-controller@58020000/fmc_d15_pd10
 *   233 /soc/pin-controller@58020000/fmc_d1_pd15
 *   234 /soc/pin-controller@58020000/fmc_d2_pd0
 *   235 /soc/pin-controller@58020000/fmc_d3_pd1
 *   236 /soc/pin-controller@58020000/fmc_d4_pe7
 *   237 /soc/pin-controller@58020000/fmc_d5_pe8
 *   238 /soc/pin-controller@58020000/fmc_d6_pe9
 *   239 /soc/pin-controller@58020000/fmc_d7_pe10
 *   240 /soc/pin-controller@58020000/fmc_d8_pe11
 *   241 /soc/pin-controller@58020000/fmc_d9_pe12
 *   242 /soc/pin-controller@58020000/fmc_nbl0_pe0
 *   243 /soc/pin-controller@58020000/fmc_nbl1_pe1
 *   244 /soc/pin-controller@58020000/fmc_sdcke0_ph2
 *   245 /soc/pin-controller@58020000/fmc_sdclk_pg8
 *   246 /soc/pin-controller@58020000/fmc_sdncas_pg15
 *   247 /soc/pin-controller@58020000/fmc_sdne0_ph3
 *   248 /soc/pin-controller@58020000/fmc_sdnras_pf11
 *   249 /soc/pin-controller@58020000/fmc_sdnwe_ph5
 *   250 /soc/memory-controller@52004000
 *   251 /soc/memory-controller@52004000/sdram
 *   252 /soc/memory-controller@52004000/sdram/bank@0
 *   253 /soc/pin-controller@58020000/gpio@58021400
 *   254 /soc/rtc@58004000
 *   255 /soc/rtc@58004000/backup_regs
 *   256 /soc/pin-controller@58020000/uart7_cts_pf9
 *   257 /soc/pin-controller@58020000/uart7_rts_pf8
 *   258 /soc/pin-controller@58020000/uart7_rx_pa8
 *   259 /soc/pin-controller@58020000/uart7_tx_pf7
 *   260 /soc/serial@40007800
 *   261 /soc/serial@40007800/bt_hci_uart
 *   262 /soc/serial@40007800/bt_hci_uart/murata-1dx
 *   263 /soc/pin-controller@58020000/quadspi_bk1_io0_pd11
 *   264 /soc/pin-controller@58020000/quadspi_bk1_io1_pd12
 *   265 /soc/pin-controller@58020000/quadspi_bk1_io2_pe2
 *   266 /soc/pin-controller@58020000/quadspi_bk1_io3_pf6
 *   267 /soc/pin-controller@58020000/quadspi_bk1_ncs_pg6
 *   268 /soc/pin-controller@58020000/quadspi_clk_pf10
 *   269 /soc/spi@52005000
 *   270 /soc/spi@52005000/qspi-nor-flash@90000000
 *   271 /soc/spi@52005000/qspi-nor-flash@90000000/partitions
 *   272 /soc/spi@52005000/qspi-nor-flash@90000000/partitions/partition@0
 *   273 /soc/spi@52005000/qspi-nor-flash@90000000/partitions/partition@100000
 *   274 /soc/timers@40000000/counter
 *   275 /soc/timers@40000400/counter
 *   276 /soc/timers@40000800/counter
 *   277 /soc/timers@40000c00
 *   278 /soc/timers@40000c00/counter
 *   279 /soc/timers@40000c00/pwm
 *   280 /soc/timers@40001000
 *   281 /soc/timers@40001000/counter
 *   282 /soc/timers@40001400
 *   283 /soc/timers@40001400/counter
 *   284 /soc/timers@40001800
 *   285 /soc/timers@40001800/counter
 *   286 /soc/timers@40001800/pwm
 *   287 /soc/timers@40001c00
 *   288 /soc/timers@40001c00/counter
 *   289 /soc/timers@40001c00/pwm
 *   290 /soc/timers@40002000
 *   291 /soc/timers@40002000/counter
 *   292 /soc/timers@40002000/pwm
 *   293 /soc/timers@40010000/pwm/pwmclock
 *   294 /soc/timers@40014000
 *   295 /soc/timers@40014000/counter
 *   296 /soc/timers@40014000/pwm
 *   297 /soc/timers@40014400
 *   298 /soc/timers@40014400/counter
 *   299 /soc/timers@40014400/pwm
 *   300 /soc/timers@40014800
 *   301 /soc/timers@40014800/counter
 *   302 /soc/timers@40014800/pwm
 *
 * Definitions derived from these nodes in dependency order are next,
 * followed by /chosen nodes.
 */

/* Used to remove brackets from around a single argument */


/*
 * Devicetree node: /
 *
 * Node identifier: DT_N
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 355 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */


/* Ordinals for what depends directly on this node: */
# 395 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 412 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 429 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /aliases
 *
 * Node identifier: DT_N_S_aliases
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 468 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /chosen
 *
 * Node identifier: DT_N_S_chosen
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 537 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /connector
 *
 * Node identifier: DT_N_S_connector
 *
 * Binding (compatible = arduino-header-r3):
 *   $ZEPHYR_BASE/dts/bindings/gpio/arduino-header-r3.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 612 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 640 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 663 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc
 *
 * Node identifier: DT_N_S_soc
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 702 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */
# 787 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 812 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 848 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/interrupt-controller@e000e100
 *
 * Node identifier: DT_N_S_soc_S_interrupt_controller_e000e100
 *
 * Binding (compatible = arm,v7m-nvic):
 *   $ZEPHYR_BASE/dts/bindings/interrupt-controller/arm,v7m-nvic.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 893 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */
# 969 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 990 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 1023 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks
 *
 * Node identifier: DT_N_S_clocks
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 1062 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */
# 1086 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /clocks/clk-hse
 *
 * Node identifier: DT_N_S_clocks_S_clk_hse
 *
 * Binding (compatible = st,stm32-hse-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32-hse-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 1147 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 1181 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 1224 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks/pll@0
 *
 * Node identifier: DT_N_S_clocks_S_pll_0
 *
 * Binding (compatible = st,stm32h7-pll-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32h7-pll-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 1269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 1305 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 1364 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/rcc@58024400
 *
 * Node identifier: DT_N_S_soc_S_rcc_58024400
 *
 * Binding (compatible = st,stm32h7-rcc):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32h7-rcc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 1409 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */
# 1501 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 1522 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 1591 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000
 *
 * Binding (compatible = st,stm32-pinctrl):
 *   $ZEPHYR_BASE/dts/bindings/pinctrl/st,stm32-pinctrl.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 1636 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */
# 1771 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 1792 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 1827 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc3_inp0_pc2_c
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc3_inp0_pc2_c
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 1869 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 1931 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc3_inp1_pc3_c
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc3_inp1_pc3_c
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 1973 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 2035 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@58026000
 *
 * Node identifier: DT_N_S_soc_S_adc_58026000
 *
 * Binding (compatible = st,stm32-adc):
 *   $ZEPHYR_BASE/dts/bindings/adc/st,stm32-adc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 2080 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */







/* Ordinals for what depends directly on this node: */
# 2104 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 2132 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 2142 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 2361 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /dietemp
 *
 * Node identifier: DT_N_S_dietemp
 *
 * Binding (compatible = st,stm32-temp-cal):
 *   $ZEPHYR_BASE/dts/bindings/sensor/st,stm32-temp-cal.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 2406 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 2439 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 2501 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/i2c4_scl_pb6
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_i2c4_scl_pb6
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 2543 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 2605 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/i2c4_sda_ph12
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_i2c4_sda_ph12
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 2647 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 2709 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2c@58001c00
 *
 * Node identifier: DT_N_S_soc_S_i2c_58001c00
 *
 * Binding (compatible = st,stm32-i2c-v2):
 *   $ZEPHYR_BASE/dts/bindings/i2c/st,stm32-i2c-v2.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 2754 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */







/* Ordinals for what depends directly on this node: */






/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 2822 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 2832 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 2949 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58022000
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58022000
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 2994 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */






/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 3034 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 3079 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2c@58001c00/gt911@5d
 *
 * Node identifier: DT_N_S_soc_S_i2c_58001c00_S_gt911_5d
 *
 * Binding (compatible = goodix,gt911):
 *   $ZEPHYR_BASE/dts/bindings/input/goodix,gt911.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/i2c@58001c00) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 3124 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Bus info (controller: '/soc/i2c@58001c00', type: '['i2c']') */



/* Macros for properties that are special in the specification: */
# 3165 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 3218 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /lvgl_pointer
 *
 * Node identifier: DT_N_S_lvgl_pointer
 *
 * Binding (compatible = zephyr,lvgl-pointer-input):
 *   $ZEPHYR_BASE/dts/bindings/input/zephyr,lvgl-pointer-input.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 3263 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 3295 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 3316 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /memory@24000000
 *
 * Node identifier: DT_N_S_memory_24000000
 *
 * Binding (compatible = mmio-sram):
 *   $ZEPHYR_BASE/dts/bindings/sram/mmio-sram.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 3361 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 3392 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 3421 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /memory@30000000
 *
 * Node identifier: DT_N_S_memory_30000000
 *
 * Binding (compatible = zephyr,memory-region):
 *   $ZEPHYR_BASE/dts/bindings/base/zephyr,memory-region.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 3466 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 3503 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 3553 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /memory@30020000
 *
 * Node identifier: DT_N_S_memory_30020000
 *
 * Binding (compatible = zephyr,memory-region):
 *   $ZEPHYR_BASE/dts/bindings/base/zephyr,memory-region.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 3598 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 3635 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 3685 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /memory@30040000
 *
 * Node identifier: DT_N_S_memory_30040000
 *
 * Binding (compatible = zephyr,memory-region):
 *   $ZEPHYR_BASE/dts/bindings/base/zephyr,memory-region.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 3730 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 3767 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 3817 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /memory@38000000
 *
 * Node identifier: DT_N_S_memory_38000000
 *
 * Binding (compatible = zephyr,memory-region):
 *   $ZEPHYR_BASE/dts/bindings/base/zephyr,memory-region.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 3862 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 3899 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 3949 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /memory@90000000
 *
 * Node identifier: DT_N_S_memory_90000000
 *
 * Binding (compatible = zephyr,memory-region):
 *   $ZEPHYR_BASE/dts/bindings/base/zephyr,memory-region.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 3994 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 4029 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 4072 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/i2c1_scl_pb8
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_i2c1_scl_pb8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 4114 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 4176 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/i2c1_sda_pb9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_i2c1_sda_pb9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 4218 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 4280 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2c@40005400
 *
 * Node identifier: DT_N_S_soc_S_i2c_40005400
 *
 * Binding (compatible = st,stm32-i2c-v2):
 *   $ZEPHYR_BASE/dts/bindings/i2c/st,stm32-i2c-v2.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 4325 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */







/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 4390 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 4400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 4517 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /smbus1
 *
 * Node identifier: DT_N_S_smbus1
 *
 * Binding (compatible = st,stm32-smbus):
 *   $ZEPHYR_BASE/dts/bindings/smbus/st,stm32-smbus.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 4562 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 4595 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 4642 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/i2c2_scl_ph4
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_i2c2_scl_ph4
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 4684 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 4746 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/i2c2_sda_pb11
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_i2c2_sda_pb11
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 4788 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 4850 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2c@40005800
 *
 * Node identifier: DT_N_S_soc_S_i2c_40005800
 *
 * Binding (compatible = st,stm32-i2c-v2):
 *   $ZEPHYR_BASE/dts/bindings/i2c/st,stm32-i2c-v2.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 4895 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */







/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 4960 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 4970 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 5087 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /smbus2
 *
 * Node identifier: DT_N_S_smbus2
 *
 * Binding (compatible = st,stm32-smbus):
 *   $ZEPHYR_BASE/dts/bindings/smbus/st,stm32-smbus.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 5132 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 5165 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 5212 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2c@40005c00
 *
 * Node identifier: DT_N_S_soc_S_i2c_40005c00
 *
 * Binding (compatible = st,stm32-i2c-v2):
 *   $ZEPHYR_BASE/dts/bindings/i2c/st,stm32-i2c-v2.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 5257 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 5319 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 5411 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /smbus3
 *
 * Node identifier: DT_N_S_smbus3
 *
 * Binding (compatible = st,stm32-smbus):
 *   $ZEPHYR_BASE/dts/bindings/smbus/st,stm32-smbus.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 5456 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 5489 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 5536 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /smbus4
 *
 * Node identifier: DT_N_S_smbus4
 *
 * Binding (compatible = st,stm32-smbus):
 *   $ZEPHYR_BASE/dts/bindings/smbus/st,stm32-smbus.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 5581 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 5614 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 5661 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /vbat
 *
 * Node identifier: DT_N_S_vbat
 *
 * Binding (compatible = st,stm32-vbat):
 *   $ZEPHYR_BASE/dts/bindings/sensor/st,stm32-vbat.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 5706 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 5739 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 5788 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /vref
 *
 * Node identifier: DT_N_S_vref
 *
 * Binding (compatible = st,stm32-vref):
 *   $ZEPHYR_BASE/dts/bindings/sensor/st,stm32-vref.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 5833 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 5866 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 5922 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /gpio@deadbeef
 *
 * Node identifier: DT_N_S_gpio_deadbeef
 *
 * Binding (compatible = vnd,gpio):
 *   $ZEPHYR_BASE/dts/bindings/test/vnd,gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 5967 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 6003 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6050 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp0_pa0_c
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp0_pa0_c
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 6092 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6154 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp10_pc0
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp10_pc0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 6196 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6258 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp12_pc2
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp12_pc2
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 6300 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6362 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp13_pc3
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp13_pc3
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 6404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6466 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp16_pa0
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp16_pa0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 6508 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6570 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp18_pa4
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp18_pa4
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 6612 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6674 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp19_pa5
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp19_pa5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 6716 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6778 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp1_pa1_c
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp1_pa1_c
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 6820 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6882 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp4_pc4
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp4_pc4
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 6924 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 6986 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp5_pb1
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp5_pb1
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 7028 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 7090 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp8_pc5
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp8_pc5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 7132 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 7194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/adc1_inp9_pb0
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_adc1_inp9_pb0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 7236 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 7298 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000
 *
 * Binding (compatible = st,stm32-adc):
 *   $ZEPHYR_BASE/dts/bindings/adc/st,stm32-adc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 7343 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 7368 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */
# 7384 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 7412 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 7432 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 7721 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dac1_out1_pa4
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dac1_out1_pa4
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 7763 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 7825 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dac1_out2_pa5
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dac1_out2_pa5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 7867 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 7929 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dac@40007400
 *
 * Node identifier: DT_N_S_soc_S_dac_40007400
 *
 * Binding (compatible = st,stm32-dac):
 *   $ZEPHYR_BASE/dts/bindings/dac/st,stm32-dac.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 7974 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 8013 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 8023 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 8103 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/usart2_rx_pd6
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_usart2_rx_pd6
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 8145 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 8207 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/usart2_tx_pd5
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_usart2_tx_pd5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 8249 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 8311 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/rcc@58024400/reset-controller
 *
 * Node identifier: DT_N_S_soc_S_rcc_58024400_S_reset_controller
 *
 * Binding (compatible = st,stm32-rcc-rctl):
 *   $ZEPHYR_BASE/dts/bindings/reset/st,stm32-rcc-rctl.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/rcc@58024400) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 8356 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */
# 8397 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 8415 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 8440 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40004400
 *
 * Node identifier: DT_N_S_soc_S_serial_40004400
 *
 * Binding (compatible = st,stm32-usart):
 *   $ZEPHYR_BASE/dts/bindings/serial/st,stm32-usart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 8485 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 8501 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 8539 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 8549 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 8709 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/uart4_rx_pi9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_uart4_rx_pi9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 8751 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 8813 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/uart4_tx_ph13
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_uart4_tx_ph13
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 8855 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 8917 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40004c00
 *
 * Node identifier: DT_N_S_soc_S_serial_40004c00
 *
 * Binding (compatible = st,stm32-uart):
 *   $ZEPHYR_BASE/dts/bindings/serial/st,stm32-uart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 8962 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 8978 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 9010 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 9020 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 9171 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/usart1_rx_pb7
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_usart1_rx_pb7
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 9213 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 9275 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/usart1_tx_pa9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_usart1_tx_pa9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 9317 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 9379 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40011000
 *
 * Node identifier: DT_N_S_soc_S_serial_40011000
 *
 * Binding (compatible = st,stm32-usart):
 *   $ZEPHYR_BASE/dts/bindings/serial/st,stm32-usart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 9424 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 9440 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */






/* Macros for properties that are special in the specification: */
# 9479 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 9489 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 9649 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/usart6_rx_pc7
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_usart6_rx_pc7
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 9691 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 9753 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/usart6_tx_pg14
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_usart6_tx_pg14
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 9795 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 9857 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40011400
 *
 * Node identifier: DT_N_S_soc_S_serial_40011400
 *
 * Binding (compatible = st,stm32-usart):
 *   $ZEPHYR_BASE/dts/bindings/serial/st,stm32-usart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 9902 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 9918 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 9956 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 9966 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 10126 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/spi1_miso_pg9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_spi1_miso_pg9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 10168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 10230 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/spi1_mosi_pd7
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_spi1_mosi_pd7
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 10272 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 10334 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/spi1_sck_pb3
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_spi1_sck_pb3
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 10376 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 10438 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@40013000
 *
 * Node identifier: DT_N_S_soc_S_spi_40013000
 *
 * Binding (compatible = st,stm32h7-spi):
 *   $ZEPHYR_BASE/dts/bindings/spi/st,stm32h7-spi.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 10483 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 10499 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */






/* Macros for properties that are special in the specification: */
# 10543 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 10554 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 10681 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/spi5_miso_pj11
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_spi5_miso_pj11
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 10723 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 10785 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/spi5_mosi_pj10
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_spi5_mosi_pj10
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 10827 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 10889 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/spi5_sck_ph6
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_spi5_sck_ph6
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 10931 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 10993 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@40015000
 *
 * Node identifier: DT_N_S_soc_S_spi_40015000
 *
 * Binding (compatible = st,stm32h7-spi):
 *   $ZEPHYR_BASE/dts/bindings/spi/st,stm32h7-spi.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 11038 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 11054 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */







/* Macros for properties that are special in the specification: */
# 11099 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 11110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 11227 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58020000
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58020000
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 11272 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */





/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 11311 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 11356 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58020400
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58020400
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 11401 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 11439 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 11484 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58020800
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58020800
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 11529 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */






/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 11569 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 11614 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58020C00
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58020c00
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 11659 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 11697 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 11742 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58021000
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58021000
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 11787 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */





/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 11826 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 11871 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58021800
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58021800
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 11916 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 11954 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 11999 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58021C00
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58021c00
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 12044 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 12082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 12127 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58022400
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58022400
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 12172 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */





/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 12211 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 12256 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58022800
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58022800
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 12301 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 12338 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 12383 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000000
 *
 * Node identifier: DT_N_S_soc_S_timers_40000000
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 12428 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 12480 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 12567 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim2_ch3_pa2
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim2_ch3_pa2
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 12609 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 12671 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim2_ch4_pa3
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim2_ch4_pa3
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 12713 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 12775 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000000/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40000000_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40000000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 12820 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 12855 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 12865 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 12929 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000400
 *
 * Node identifier: DT_N_S_soc_S_timers_40000400
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 12974 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 13026 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 13113 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim3_ch1_pb4
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim3_ch1_pb4
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 13155 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 13217 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim3_ch2_pa7
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim3_ch2_pa7
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 13259 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 13321 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000400/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40000400_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40000400) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 13366 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 13401 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 13411 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 13475 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000800
 *
 * Node identifier: DT_N_S_soc_S_timers_40000800
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 13520 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 13572 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 13659 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim4_ch2_pd13
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim4_ch2_pd13
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 13701 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 13763 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim4_ch3_pb8
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim4_ch3_pb8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 13805 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 13867 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim4_ch4_pb9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim4_ch4_pb9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 13909 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 13971 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000800/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40000800_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40000800) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 14016 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 14052 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 14063 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 14134 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40010000
 *
 * Node identifier: DT_N_S_soc_S_timers_40010000
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 14179 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 14266 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 14392 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim1_ch1_pk1
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim1_ch1_pk1
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 14434 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 14496 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim1_ch3_pj9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim1_ch3_pj9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 14538 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 14600 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40010000/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40010000_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40010000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 14645 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 14681 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 14691 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 14755 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40010400
 *
 * Node identifier: DT_N_S_soc_S_timers_40010400
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 14800 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 14887 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 15013 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/tim8_ch1_pj8
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_tim8_ch1_pj8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 15055 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 15117 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40010400/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40010400_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40010400) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 15162 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 15196 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 15205 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 15262 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /otghs_fs_phy
 *
 * Node identifier: DT_N_S_otghs_fs_phy
 *
 * Binding (compatible = usb-nop-xceiv):
 *   $ZEPHYR_BASE/dts/bindings/phy/usb-nop-xceiv.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 15307 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 15337 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 15360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/usb_otg_fs_dm_pa11
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_usb_otg_fs_dm_pa11
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 15402 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 15464 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/usb_otg_fs_dp_pa12
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_usb_otg_fs_dp_pa12
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 15506 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 15568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/usb@40080000
 *
 * Node identifier: DT_N_S_soc_S_usb_40080000
 *
 * Binding (compatible = st,stm32-otgfs):
 *   $ZEPHYR_BASE/dts/bindings/usb/st,stm32-otgfs.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 15613 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 15629 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 15703 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 15713 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 15888 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/usb@40080000/board_cdc_acm_uart
 *
 * Node identifier: DT_N_S_soc_S_usb_40080000_S_board_cdc_acm_uart
 *
 * Binding (compatible = zephyr,cdc-acm-uart):
 *   $ZEPHYR_BASE/dts/bindings/serial/zephyr,cdc-acm-uart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/usb@40080000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 15933 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Bus info (controller: '/soc/usb@40080000', type: '['usb']') */



/* Macros for properties that are special in the specification: */
# 15970 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 16027 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /zephyr,user
 *
 * Node identifier: DT_N_S_zephyr_user
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 16069 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 16109 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 17795 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks/clk-csi
 *
 * Node identifier: DT_N_S_clocks_S_clk_csi
 *
 * Binding (compatible = fixed-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/fixed-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 17840 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 17868 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 17907 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks/clk-hsi
 *
 * Node identifier: DT_N_S_clocks_S_clk_hsi
 *
 * Binding (compatible = st,stm32h7-hsi-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32h7-hsi-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 17952 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 17984 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 18028 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks/clk-hsi48
 *
 * Node identifier: DT_N_S_clocks_S_clk_hsi48
 *
 * Binding (compatible = fixed-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/fixed-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 18073 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 18101 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 18140 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks/clk-lse
 *
 * Node identifier: DT_N_S_clocks_S_clk_lse
 *
 * Binding (compatible = st,stm32-lse-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32-lse-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 18185 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 18217 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 18263 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks/clk-lsi
 *
 * Node identifier: DT_N_S_clocks_S_clk_lsi
 *
 * Binding (compatible = fixed-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/fixed-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 18308 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 18336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 18375 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks/perck
 *
 * Node identifier: DT_N_S_clocks_S_perck
 *
 * Binding (compatible = st,stm32-clock-mux):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32-clock-mux.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 18420 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 18452 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 18483 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks/pll@1
 *
 * Node identifier: DT_N_S_clocks_S_pll_1
 *
 * Binding (compatible = st,stm32h7-pll-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32h7-pll-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 18528 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 18562 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 18603 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /clocks/pll@2
 *
 * Node identifier: DT_N_S_clocks_S_pll_2
 *
 * Binding (compatible = st,stm32h7-pll-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32h7-pll-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/clocks) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 18648 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 18683 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 18742 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /cpus
 *
 * Node identifier: DT_N_S_cpus
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 18781 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /cpus/cpu@0
 *
 * Node identifier: DT_N_S_cpus_S_cpu_0
 *
 * Binding (compatible = arm,cortex-m7):
 *   $ZEPHYR_BASE/dts/bindings/cpu/arm,cortex-m7.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/cpus) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 18857 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 18892 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 18919 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /cpus/cpu@0/mpu@e000ed90
 *
 * Node identifier: DT_N_S_cpus_S_cpu_0_S_mpu_e000ed90
 *
 * Binding (compatible = arm,armv7m-mpu):
 *   $ZEPHYR_BASE/dts/bindings/mmu_mpu/arm,armv7m-mpu.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/cpus/cpu@0) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 18964 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 18999 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 19028 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /gpio_keys
 *
 * Node identifier: DT_N_S_gpio_keys
 *
 * Binding (compatible = gpio-keys):
 *   $ZEPHYR_BASE/dts/bindings/input/gpio-keys.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19073 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 19102 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 19131 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /gpio_keys/button_0
 *
 * Node identifier: DT_N_S_gpio_keys_S_button_0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/gpio_keys) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19173 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 19220 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /leds
 *
 * Node identifier: DT_N_S_leds
 *
 * Binding (compatible = gpio-leds):
 *   $ZEPHYR_BASE/dts/bindings/led/gpio-leds.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19265 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */





/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 19298 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 19315 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /leds/led_0
 *
 * Node identifier: DT_N_S_leds_S_led_0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/leds) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19357 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 19402 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /leds/led_1
 *
 * Node identifier: DT_N_S_leds_S_led_1
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/leds) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19444 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 19489 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /leds/led_2
 *
 * Node identifier: DT_N_S_leds_S_led_2
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/leds) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19531 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 19575 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /mcos
 *
 * Node identifier: DT_N_S_mcos
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19614 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /mcos/mco1
 *
 * Node identifier: DT_N_S_mcos_S_mco1
 *
 * Binding (compatible = st,stm32-clock-mco):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32-clock-mco.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/mcos) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19691 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 19723 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 19760 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /mcos/mco2
 *
 * Node identifier: DT_N_S_mcos_S_mco2
 *
 * Binding (compatible = st,stm32-clock-mco):
 *   $ZEPHYR_BASE/dts/bindings/clock/st,stm32-clock-mco.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/mcos) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19805 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 19837 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 19874 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022100
 *
 * Node identifier: DT_N_S_soc_S_adc_40022100
 *
 * Binding (compatible = st,stm32-adc):
 *   $ZEPHYR_BASE/dts/bindings/adc/st,stm32-adc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 19919 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 19963 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 20138 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022300
 *
 * Node identifier: DT_N_S_soc_S_adc_40022300
 *
 * Binding (compatible = st,stm32-adc):
 *   $ZEPHYR_BASE/dts/bindings/adc/st,stm32-adc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 20183 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 20227 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 20402 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/bdma@58025400
 *
 * Node identifier: DT_N_S_soc_S_bdma_58025400
 *
 * Binding (compatible = st,stm32-bdma):
 *   $ZEPHYR_BASE/dts/bindings/dma/st,stm32-bdma.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 20447 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 20540 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 20635 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/can@4000a000
 *
 * Node identifier: DT_N_S_soc_S_can_4000a000
 *
 * Binding (compatible = st,stm32h7-fdcan):
 *   $ZEPHYR_BASE/dts/bindings/can/st,stm32h7-fdcan.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 20680 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 20762 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 20937 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fdcan2_rx_pb5
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fdcan2_rx_pb5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 20979 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 21041 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fdcan2_tx_pb13
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fdcan2_tx_pb13
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 21083 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 21145 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/can@4000a400
 *
 * Node identifier: DT_N_S_soc_S_can_4000a400
 *
 * Binding (compatible = st,stm32h7-fdcan):
 *   $ZEPHYR_BASE/dts/bindings/can/st,stm32h7-fdcan.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 21190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */







/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 21274 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 21284 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 21494 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dma@40020400
 *
 * Node identifier: DT_N_S_soc_S_dma_40020400
 *
 * Binding (compatible = st,stm32-dma-v1):
 *   $ZEPHYR_BASE/dts/bindings/dma/st,stm32-dma-v1.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 21539 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 21632 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 21727 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dmamux@58025800
 *
 * Node identifier: DT_N_S_soc_S_dmamux_58025800
 *
 * Binding (compatible = st,stm32-dmamux):
 *   $ZEPHYR_BASE/dts/bindings/dma/st,stm32-dmamux.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 21772 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 21816 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 21883 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dmamux@40020800
 *
 * Node identifier: DT_N_S_soc_S_dmamux_40020800
 *
 * Binding (compatible = st,stm32-dmamux):
 *   $ZEPHYR_BASE/dts/bindings/dma/st,stm32-dmamux.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 21928 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */





/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 21975 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 22042 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2s@40003800
 *
 * Node identifier: DT_N_S_soc_S_i2s_40003800
 *
 * Binding (compatible = st,stm32h7-i2s):
 *   $ZEPHYR_BASE/dts/bindings/i2s/st,stm32h7-i2s.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 22087 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 22138 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 22285 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2s@40003c00
 *
 * Node identifier: DT_N_S_soc_S_i2s_40003c00
 *
 * Binding (compatible = st,stm32h7-i2s):
 *   $ZEPHYR_BASE/dts/bindings/i2s/st,stm32h7-i2s.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 22330 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 22381 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 22528 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2s@40013000
 *
 * Node identifier: DT_N_S_soc_S_i2s_40013000
 *
 * Binding (compatible = st,stm32h7-i2s):
 *   $ZEPHYR_BASE/dts/bindings/i2s/st,stm32h7-i2s.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 22573 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 22624 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 22771 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/interrupt-controller@58000000
 *
 * Node identifier: DT_N_S_soc_S_interrupt_controller_58000000
 *
 * Binding (compatible = st,stm32-exti):
 *   $ZEPHYR_BASE/dts/bindings/interrupt-controller/st,stm32-exti.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 22816 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 22936 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 23152 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/mailbox@58026400
 *
 * Node identifier: DT_N_S_soc_S_mailbox_58026400
 *
 * Binding (compatible = st,stm32-hsem-mailbox):
 *   $ZEPHYR_BASE/dts/bindings/ipm/st,stm32-hsem-mailbox.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 23197 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 23247 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 23317 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/memory@38800000
 *
 * Node identifier: DT_N_S_soc_S_memory_38800000
 *
 * Binding (compatible = zephyr,memory-region):
 *   $ZEPHYR_BASE/dts/bindings/base/zephyr,memory-region.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 23362 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 23404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 23480 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/rng@48021800
 *
 * Node identifier: DT_N_S_soc_S_rng_48021800
 *
 * Binding (compatible = st,stm32-rng):
 *   $ZEPHYR_BASE/dts/bindings/rng/st,stm32-rng.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 23525 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 23569 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 23630 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/sdmmc@48022400
 *
 * Node identifier: DT_N_S_soc_S_sdmmc_48022400
 *
 * Binding (compatible = st,stm32-sdmmc):
 *   $ZEPHYR_BASE/dts/bindings/mmc/st,stm32-sdmmc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 23675 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 23720 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 23810 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/sdmmc@52007000
 *
 * Node identifier: DT_N_S_soc_S_sdmmc_52007000
 *
 * Binding (compatible = st,stm32-sdmmc):
 *   $ZEPHYR_BASE/dts/bindings/mmc/st,stm32-sdmmc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 23855 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 23900 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 23990 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40004800
 *
 * Node identifier: DT_N_S_soc_S_serial_40004800
 *
 * Binding (compatible = st,stm32-usart):
 *   $ZEPHYR_BASE/dts/bindings/serial/st,stm32-usart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 24035 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 24086 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 24221 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40005000
 *
 * Node identifier: DT_N_S_soc_S_serial_40005000
 *
 * Binding (compatible = st,stm32-uart):
 *   $ZEPHYR_BASE/dts/bindings/serial/st,stm32-uart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 24266 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 24311 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 24437 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40007c00
 *
 * Node identifier: DT_N_S_soc_S_serial_40007c00
 *
 * Binding (compatible = st,stm32-uart):
 *   $ZEPHYR_BASE/dts/bindings/serial/st,stm32-uart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 24482 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 24527 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 24653 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@58000c00
 *
 * Node identifier: DT_N_S_soc_S_serial_58000c00
 *
 * Binding (compatible = st,stm32-lpuart):
 *   $ZEPHYR_BASE/dts/bindings/serial/st,stm32-lpuart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 24698 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 24749 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 24884 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@40003800
 *
 * Node identifier: DT_N_S_soc_S_spi_40003800
 *
 * Binding (compatible = st,stm32h7-spi):
 *   $ZEPHYR_BASE/dts/bindings/spi/st,stm32h7-spi.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 24929 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */






/* Macros for properties that are special in the specification: */
# 24985 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 25080 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@40003c00
 *
 * Node identifier: DT_N_S_soc_S_spi_40003c00
 *
 * Binding (compatible = st,stm32h7-spi):
 *   $ZEPHYR_BASE/dts/bindings/spi/st,stm32h7-spi.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 25125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */






/* Macros for properties that are special in the specification: */
# 25181 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 25276 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@40013400
 *
 * Node identifier: DT_N_S_soc_S_spi_40013400
 *
 * Binding (compatible = st,stm32h7-spi):
 *   $ZEPHYR_BASE/dts/bindings/spi/st,stm32h7-spi.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 25321 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */






/* Macros for properties that are special in the specification: */
# 25377 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 25462 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@58001400
 *
 * Node identifier: DT_N_S_soc_S_spi_58001400
 *
 * Binding (compatible = st,stm32h7-spi):
 *   $ZEPHYR_BASE/dts/bindings/spi/st,stm32h7-spi.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 25507 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */






/* Macros for properties that are special in the specification: */
# 25563 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 25648 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timer@e000e010
 *
 * Node identifier: DT_N_S_soc_S_timer_e000e010
 *
 * Binding (compatible = arm,armv7m-systick):
 *   $ZEPHYR_BASE/dts/bindings/timer/arm,armv7m-systick.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 25693 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 25728 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 25757 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40002400
 *
 * Node identifier: DT_N_S_soc_S_timers_40002400
 *
 * Binding (compatible = st,stm32-lptim):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-lptim.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 25802 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 25851 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 25929 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/usb@40040000
 *
 * Node identifier: DT_N_S_soc_S_usb_40040000
 *
 * Binding (compatible = st,stm32-otghs):
 *   $ZEPHYR_BASE/dts/bindings/usb/st,stm32-otghs.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 25974 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 26060 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 26210 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/watchdog@50003000
 *
 * Node identifier: DT_N_S_soc_S_watchdog_50003000
 *
 * Binding (compatible = st,stm32-window-watchdog):
 *   $ZEPHYR_BASE/dts/bindings/watchdog/st,stm32-window-watchdog.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 26255 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 26300 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 26361 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/watchdog@58004800
 *
 * Node identifier: DT_N_S_soc_S_watchdog_58004800
 *
 * Binding (compatible = st,stm32-watchdog):
 *   $ZEPHYR_BASE/dts/bindings/watchdog/st,stm32-watchdog.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 26406 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 26442 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 26485 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@0
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 26527 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 26554 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 26597 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@1
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_1
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 26639 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 26666 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 26709 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@4
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_4
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 26751 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 26778 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 26821 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@5
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 26863 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 26890 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 26933 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@8
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 26975 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 27002 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 27045 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@9
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 27087 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 27114 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 27157 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@a
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_a
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 27199 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 27226 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 27269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@c
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_c
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 27311 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 27338 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 27381 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@d
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_d
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 27423 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 27450 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 27493 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@10
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_10
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 27535 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 27562 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 27605 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@12
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_12
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 27647 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 27674 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 27717 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@40022000/channel@13
 *
 * Node identifier: DT_N_S_soc_S_adc_40022000_S_channel_13
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@40022000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 27759 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 27786 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 27829 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@58026000/channel@0
 *
 * Node identifier: DT_N_S_soc_S_adc_58026000_S_channel_0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@58026000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 27871 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 27898 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 27941 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/adc@58026000/channel@1
 *
 * Node identifier: DT_N_S_soc_S_adc_58026000_S_channel_1
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/adc@58026000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 27983 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 28010 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 28053 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dma@40020000
 *
 * Node identifier: DT_N_S_soc_S_dma_40020000
 *
 * Binding (compatible = st,stm32-dma-v1):
 *   $ZEPHYR_BASE/dts/bindings/dma/st,stm32-dma-v1.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 28098 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 28192 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 28287 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2c@58001c00/gc2145@3c
 *
 * Node identifier: DT_N_S_soc_S_i2c_58001c00_S_gc2145_3c
 *
 * Binding (compatible = galaxycore,gc2145):
 *   $ZEPHYR_BASE/dts/bindings/video/galaxycore,gc2145.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/i2c@58001c00) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 28332 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Bus info (controller: '/soc/i2c@58001c00', type: '['i2c']') */



/* Macros for properties that are special in the specification: */
# 28374 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 28425 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_d0_ph9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_d0_ph9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 28467 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 28529 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_d1_ph10
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_d1_ph10
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 28571 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 28633 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_d2_ph11
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_d2_ph11
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 28675 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 28737 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_d3_pg11
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_d3_pg11
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 28779 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 28841 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_d4_ph14
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_d4_ph14
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 28883 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 28945 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_d5_pi4
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_d5_pi4
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 28987 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 29049 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_d6_pi6
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_d6_pi6
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 29091 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 29153 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_d7_pi7
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_d7_pi7
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 29195 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 29257 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_hsync_ph8
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_hsync_ph8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 29299 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 29361 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_pixclk_pa6
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_pixclk_pa6
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 29403 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 29465 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/dcmi_vsync_pi5
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_dcmi_vsync_pi5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 29507 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 29569 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dcmi@48020000
 *
 * Node identifier: DT_N_S_soc_S_dcmi_48020000
 *
 * Binding (compatible = st,stm32-dcmi):
 *   $ZEPHYR_BASE/dts/bindings/video/st,stm32-dcmi.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 29614 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 29640 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 29677 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 29696 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 29908 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dcmi@48020000/port
 *
 * Node identifier: DT_N_S_soc_S_dcmi_48020000_S_port
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/dcmi@48020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 29947 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /soc/dcmi@48020000/port/endpoint
 *
 * Node identifier: DT_N_S_soc_S_dcmi_48020000_S_port_S_endpoint
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/dcmi@48020000/port) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 30017 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /sdram@c0000000
 *
 * Node identifier: DT_N_S_sdram_c0000000
 *
 * Binding (compatible = zephyr,memory-region):
 *   $ZEPHYR_BASE/dts/bindings/base/zephyr,memory-region.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 30093 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 30131 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 30183 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/display-controller@50001000
 *
 * Node identifier: DT_N_S_soc_S_display_controller_50001000
 *
 * Binding (compatible = st,stm32-ltdc):
 *   $ZEPHYR_BASE/dts/bindings/display/st,stm32-ltdc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 30228 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 30245 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 30295 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 30437 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/display-controller@50001000/display-timings
 *
 * Node identifier: DT_N_S_soc_S_display_controller_50001000_S_display_timings
 *
 * Binding (compatible = zephyr,panel-timing):
 *   $ZEPHYR_BASE/dts/bindings/display/panel/panel-timing.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/display-controller@50001000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 30482 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 30513 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 30550 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dsihost@50000000
 *
 * Node identifier: DT_N_S_soc_S_dsihost_50000000
 *
 * Binding (compatible = st,stm32-mipi-dsi):
 *   $ZEPHYR_BASE/dts/bindings/mipi-dsi/st,stm32-mipi-dsi.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 30595 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 30634 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 30829 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dsihost@50000000/st7701@0
 *
 * Node identifier: DT_N_S_soc_S_dsihost_50000000_S_st7701_0
 *
 * Binding (compatible = sitronix,st7701):
 *   $ZEPHYR_BASE/dts/bindings/display/sitronix,st7701.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/dsihost@50000000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 30874 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Bus info (controller: '/soc/dsihost@50000000', type: '['mipi-dsi']') */



/* Macros for properties that are special in the specification: */
# 30913 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 31868 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/dsihost@50000000/st7701@0/display-timings
 *
 * Node identifier: DT_N_S_soc_S_dsihost_50000000_S_st7701_0_S_display_timings
 *
 * Binding (compatible = zephyr,panel-timing):
 *   $ZEPHYR_BASE/dts/bindings/display/panel/panel-timing.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/dsihost@50000000/st7701@0) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 31913 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Bus info (controller: '/soc/dsihost@50000000', type: '['mipi-dsi']') */



/* Macros for properties that are special in the specification: */
# 31948 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 31985 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/ethernet@40028000
 *
 * Node identifier: DT_N_S_soc_S_ethernet_40028000
 *
 * Binding (compatible = st,stm32h7-ethernet):
 *   $ZEPHYR_BASE/dts/bindings/ethernet/st,stm32h7-ethernet.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 32030 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 32081 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 32224 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/ethernet@40028000/mdio
 *
 * Node identifier: DT_N_S_soc_S_ethernet_40028000_S_mdio
 *
 * Binding (compatible = st,stm32-mdio):
 *   $ZEPHYR_BASE/dts/bindings/mdio/st,stm32-mdio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/ethernet@40028000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 32269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 32301 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 32342 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/flash-controller@52002000
 *
 * Node identifier: DT_N_S_soc_S_flash_controller_52002000
 *
 * Binding (compatible = st,stm32-flash-controller):
 *   $ZEPHYR_BASE/dts/bindings/flash_controller/st,stm32-flash-controller.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 32387 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 32438 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 32496 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/flash-controller@52002000/flash@8000000
 *
 * Node identifier: DT_N_S_soc_S_flash_controller_52002000_S_flash_8000000
 *
 * Binding (compatible = st,stm32-nv-flash):
 *   $ZEPHYR_BASE/dts/bindings/mtd/st,stm32-nv-flash.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/flash-controller@52002000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 32541 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */





/* Macros for properties that are special in the specification: */
# 32579 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 32623 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/flash-controller@52002000/flash@8000000/partitions
 *
 * Node identifier: DT_N_S_soc_S_flash_controller_52002000_S_flash_8000000_S_partitions
 *
 * Binding (compatible = fixed-partitions):
 *   $ZEPHYR_BASE/dts/bindings/mtd/fixed-partitions.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/flash-controller@52002000/flash@8000000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 32668 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */





/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 32698 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /soc/flash-controller@52002000/flash@8000000/partitions/partition@0
 *
 * Node identifier: DT_N_S_soc_S_flash_controller_52002000_S_flash_8000000_S_partitions_S_partition_0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/flash-controller@52002000/flash@8000000/partitions) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 32745 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 32774 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* fixed-partitions identifier: */


/* Generic property macros: */
# 32802 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/flash-controller@52002000/flash@8000000/partitions/partition@40000
 *
 * Node identifier: DT_N_S_soc_S_flash_controller_52002000_S_flash_8000000_S_partitions_S_partition_40000
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/flash-controller@52002000/flash@8000000/partitions) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 32844 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 32873 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* fixed-partitions identifier: */


/* Generic property macros: */
# 32901 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/flash-controller@52002000/flash@8000000/partitions/partition@e0000
 *
 * Node identifier: DT_N_S_soc_S_flash_controller_52002000_S_flash_8000000_S_partitions_S_partition_e0000
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/flash-controller@52002000/flash@8000000/partitions) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 32943 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 32972 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* fixed-partitions identifier: */


/* Generic property macros: */
# 32988 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/i2c@58001c00/gc2145@3c/port
 *
 * Node identifier: DT_N_S_soc_S_i2c_58001c00_S_gc2145_3c_S_port
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/i2c@58001c00/gc2145@3c) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33027 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */


/* Bus info (controller: '/soc/i2c@58001c00', type: '['i2c']') */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /soc/i2c@58001c00/gc2145@3c/port/endpoint
 *
 * Node identifier: DT_N_S_soc_S_i2c_58001c00_S_gc2145_3c_S_port_S_endpoint
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/i2c@58001c00/gc2145@3c/port) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33101 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Bus info (controller: '/soc/i2c@58001c00', type: '['i2c']') */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a0_pf0
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a0_pf0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33178 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 33240 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a10_pg0
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a10_pg0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33282 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 33344 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a11_pg1
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a11_pg1
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33386 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 33448 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a12_pg2
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a12_pg2
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33490 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 33552 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a14_pg4
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a14_pg4
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33594 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 33656 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a15_pg5
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a15_pg5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33698 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 33760 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a1_pf1
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a1_pf1
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33802 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 33864 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a2_pf2
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a2_pf2
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 33906 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 33968 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a3_pf3
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a3_pf3
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34010 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 34072 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a4_pf4
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a4_pf4
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34114 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 34176 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a5_pf5
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a5_pf5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34218 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 34280 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a6_pf12
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a6_pf12
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34322 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 34384 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a7_pf13
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a7_pf13
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34426 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 34488 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a8_pf14
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a8_pf14
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34530 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 34592 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_a9_pf15
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_a9_pf15
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34634 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 34696 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d0_pd14
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d0_pd14
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34738 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 34800 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d10_pe13
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d10_pe13
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34842 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 34904 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d11_pe14
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d11_pe14
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 34946 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35008 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d12_pe15
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d12_pe15
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35050 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35112 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d13_pd8
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d13_pd8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35154 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35216 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d14_pd9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d14_pd9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35258 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35320 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d15_pd10
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d15_pd10
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35362 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35424 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d1_pd15
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d1_pd15
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35466 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35528 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d2_pd0
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d2_pd0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35570 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35632 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d3_pd1
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d3_pd1
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35674 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35736 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d4_pe7
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d4_pe7
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35778 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35840 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d5_pe8
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d5_pe8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35882 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 35944 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d6_pe9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d6_pe9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 35986 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36048 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d7_pe10
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d7_pe10
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 36090 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36152 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d8_pe11
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d8_pe11
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 36194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36256 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_d9_pe12
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_d9_pe12
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 36298 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_nbl0_pe0
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_nbl0_pe0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 36402 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36464 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_nbl1_pe1
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_nbl1_pe1
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 36506 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_sdcke0_ph2
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_sdcke0_ph2
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 36610 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36672 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_sdclk_pg8
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_sdclk_pg8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 36714 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36776 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_sdncas_pg15
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_sdncas_pg15
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 36818 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36880 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_sdne0_ph3
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_sdne0_ph3
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 36922 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 36984 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_sdnras_pf11
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_sdnras_pf11
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 37026 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 37088 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/fmc_sdnwe_ph5
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_fmc_sdnwe_ph5
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 37130 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 37192 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/memory-controller@52004000
 *
 * Node identifier: DT_N_S_soc_S_memory_controller_52004000
 *
 * Binding (compatible = st,stm32h7-fmc):
 *   $ZEPHYR_BASE/dts/bindings/memory-controllers/st,stm32h7-fmc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 37237 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 37288 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 37313 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 37360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 37713 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/memory-controller@52004000/sdram
 *
 * Node identifier: DT_N_S_soc_S_memory_controller_52004000_S_sdram
 *
 * Binding (compatible = st,stm32-fmc-sdram):
 *   $ZEPHYR_BASE/dts/bindings/memory-controllers/st,stm32-fmc-sdram.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/memory-controller@52004000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 37758 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 37791 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 37836 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/memory-controller@52004000/sdram/bank@0
 *
 * Node identifier: DT_N_S_soc_S_memory_controller_52004000_S_sdram_S_bank_0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/memory-controller@52004000/sdram) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 37878 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */


/* Macros for properties that are special in the specification: */
# 37905 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 38008 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/gpio@58021400
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_gpio_58021400
 *
 * Binding (compatible = st,stm32-gpio):
 *   $ZEPHYR_BASE/dts/bindings/gpio/st,stm32-gpio.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 38053 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */




/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 38089 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 38134 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/rtc@58004000
 *
 * Node identifier: DT_N_S_soc_S_rtc_58004000
 *
 * Binding (compatible = st,stm32-rtc):
 *   $ZEPHYR_BASE/dts/bindings/rtc/st,stm32-rtc.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 38179 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */





/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 38224 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 38291 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/rtc@58004000/backup_regs
 *
 * Node identifier: DT_N_S_soc_S_rtc_58004000_S_backup_regs
 *
 * Binding (compatible = st,stm32-bbram):
 *   $ZEPHYR_BASE/dts/bindings/memory-controllers/st,stm32-bbram.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/rtc@58004000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 38336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 38368 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 38407 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/uart7_cts_pf9
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_uart7_cts_pf9
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 38449 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 38511 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/uart7_rts_pf8
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_uart7_rts_pf8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 38553 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 38615 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/uart7_rx_pa8
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_uart7_rx_pa8
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 38657 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 38719 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/uart7_tx_pf7
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_uart7_tx_pf7
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 38761 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 38823 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40007800
 *
 * Node identifier: DT_N_S_soc_S_serial_40007800
 *
 * Binding (compatible = st,stm32-uart):
 *   $ZEPHYR_BASE/dts/bindings/serial/st,stm32-uart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 38868 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 38886 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 38918 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 38930 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 39095 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40007800/bt_hci_uart
 *
 * Node identifier: DT_N_S_soc_S_serial_40007800_S_bt_hci_uart
 *
 * Binding (compatible = zephyr,bt-hci-uart):
 *   $ZEPHYR_BASE/dts/bindings/bluetooth/zephyr,bt-hci-uart.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/serial@40007800) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 39140 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Bus info (controller: '/soc/serial@40007800', type: '['uart']') */



/* Macros for properties that are special in the specification: */
# 39177 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 39242 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/serial@40007800/bt_hci_uart/murata-1dx
 *
 * Node identifier: DT_N_S_soc_S_serial_40007800_S_bt_hci_uart_S_murata_1dx
 *
 * Binding (compatible = infineon,cyw43xxx-bt-hci):
 *   $ZEPHYR_BASE/dts/bindings/bluetooth/infineon,cyw43xxx-bt-hci.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/serial@40007800/bt_hci_uart) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 39287 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Bus info (controller: '/soc/serial@40007800', type: '['uart']') */



/* Macros for properties that are special in the specification: */
# 39325 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 39386 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/quadspi_bk1_io0_pd11
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_quadspi_bk1_io0_pd11
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 39428 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 39490 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/quadspi_bk1_io1_pd12
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_quadspi_bk1_io1_pd12
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 39532 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 39594 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/quadspi_bk1_io2_pe2
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_quadspi_bk1_io2_pe2
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 39636 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 39698 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/quadspi_bk1_io3_pf6
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_quadspi_bk1_io3_pf6
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 39740 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 39802 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/quadspi_bk1_ncs_pg6
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_quadspi_bk1_ncs_pg6
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 39844 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 39906 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/pin-controller@58020000/quadspi_clk_pf10
 *
 * Node identifier: DT_N_S_soc_S_pin_controller_58020000_S_quadspi_clk_pf10
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/pin-controller@58020000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 39948 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */







/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 40010 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@52005000
 *
 * Node identifier: DT_N_S_soc_S_spi_52005000
 *
 * Binding (compatible = st,stm32-qspi):
 *   $ZEPHYR_BASE/dts/bindings/qspi/st,stm32-qspi.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 40055 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */
# 40074 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 40106 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */
# 40120 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Generic property macros: */
# 40236 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@52005000/qspi-nor-flash@90000000
 *
 * Node identifier: DT_N_S_soc_S_spi_52005000_S_qspi_nor_flash_90000000
 *
 * Binding (compatible = st,stm32-qspi-nor):
 *   $ZEPHYR_BASE/dts/bindings/flash_controller/st,stm32-qspi-nor.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/spi@52005000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 40281 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Bus info (controller: '/soc/spi@52005000', type: '['qspi']') */



/* Macros for properties that are special in the specification: */
# 40322 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 40373 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@52005000/qspi-nor-flash@90000000/partitions
 *
 * Node identifier: DT_N_S_soc_S_spi_52005000_S_qspi_nor_flash_90000000_S_partitions
 *
 * Binding (compatible = fixed-partitions):
 *   $ZEPHYR_BASE/dts/bindings/mtd/fixed-partitions.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/spi@52005000/qspi-nor-flash@90000000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 40418 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 40447 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* (No generic property macros) */

/*
 * Devicetree node: /soc/spi@52005000/qspi-nor-flash@90000000/partitions/partition@0
 *
 * Node identifier: DT_N_S_soc_S_spi_52005000_S_qspi_nor_flash_90000000_S_partitions_S_partition_0
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/spi@52005000/qspi-nor-flash@90000000/partitions) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 40494 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 40523 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* fixed-partitions identifier: */


/* Generic property macros: */
# 40551 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/spi@52005000/qspi-nor-flash@90000000/partitions/partition@100000
 *
 * Node identifier: DT_N_S_soc_S_spi_52005000_S_qspi_nor_flash_90000000_S_partitions_S_partition_100000
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/spi@52005000/qspi-nor-flash@90000000/partitions) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 40593 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 40622 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* fixed-partitions identifier: */


/* Generic property macros: */
# 40650 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000000/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40000000_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40000000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 40695 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 40726 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 40763 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000400/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40000400_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40000400) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 40808 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 40839 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 40876 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000800/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40000800_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40000800) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 40921 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 40952 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 40989 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000c00
 *
 * Node identifier: DT_N_S_soc_S_timers_40000c00
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 41034 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 41086 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 41173 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000c00/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40000c00_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40000c00) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 41218 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 41249 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 41286 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40000c00/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40000c00_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40000c00) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 41331 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 41362 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 41401 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001000
 *
 * Node identifier: DT_N_S_soc_S_timers_40001000
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 41446 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 41497 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 41584 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001000/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40001000_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40001000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 41629 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 41660 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 41697 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001400
 *
 * Node identifier: DT_N_S_soc_S_timers_40001400
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 41742 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */



/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 41793 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 41880 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001400/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40001400_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40001400) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 41925 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 41956 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 41993 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001800
 *
 * Node identifier: DT_N_S_soc_S_timers_40001800
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 42038 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 42090 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 42177 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001800/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40001800_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40001800) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 42222 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 42253 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 42290 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001800/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40001800_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40001800) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 42335 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 42366 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 42405 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001c00
 *
 * Node identifier: DT_N_S_soc_S_timers_40001c00
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 42450 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 42502 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 42589 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001c00/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40001c00_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40001c00) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 42634 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 42665 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 42702 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40001c00/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40001c00_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40001c00) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 42747 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 42778 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 42817 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40002000
 *
 * Node identifier: DT_N_S_soc_S_timers_40002000
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 42862 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 42914 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 43001 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40002000/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40002000_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40002000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 43046 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 43077 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 43114 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40002000/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40002000_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40002000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 43159 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 43190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 43229 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40010000/pwm/pwmclock
 *
 * Node identifier: DT_N_S_soc_S_timers_40010000_S_pwm_S_pwmclock
 *
 * Binding (compatible = pwm-clock):
 *   $ZEPHYR_BASE/dts/bindings/clock/pwm-clock.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40010000/pwm) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 43274 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 43302 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 43357 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40014000
 *
 * Node identifier: DT_N_S_soc_S_timers_40014000
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 43402 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 43454 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 43541 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40014000/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40014000_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40014000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 43586 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 43617 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 43654 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40014000/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40014000_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40014000) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 43699 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 43730 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 43769 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40014400
 *
 * Node identifier: DT_N_S_soc_S_timers_40014400
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 43814 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 43866 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 43953 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40014400/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40014400_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40014400) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 43998 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 44029 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 44066 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40014400/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40014400_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40014400) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 44111 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 44142 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 44181 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40014800
 *
 * Node identifier: DT_N_S_soc_S_timers_40014800
 *
 * Binding (compatible = st,stm32-timers):
 *   $ZEPHYR_BASE/dts/bindings/timer/st,stm32-timers.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 44226 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */






/* Ordinals for what depends directly on this node: */




/* Existence and alternate IDs: */




/* Macros for properties that are special in the specification: */
# 44278 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 44365 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40014800/counter
 *
 * Node identifier: DT_N_S_soc_S_timers_40014800_S_counter
 *
 * Binding (compatible = st,stm32-counter):
 *   $ZEPHYR_BASE/dts/bindings/counter/st,stm32-counter.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40014800) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 44410 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 44441 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 44478 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Devicetree node: /soc/timers@40014800/pwm
 *
 * Node identifier: DT_N_S_soc_S_timers_40014800_S_pwm
 *
 * Binding (compatible = st,stm32-pwm):
 *   $ZEPHYR_BASE/dts/bindings/pwm/st,stm32-pwm.yaml
 *
 * (Descriptions have moved to the Devicetree Bindings Index
 * in the documentation.)
 */

/* Node's full path: */


/* Node's name with unit-address: */





/* Node parent (/soc/timers@40014800) identifier: */


/* Node's index in its parent's list of children: */


/* Helpers for dealing with node labels: */





/* Helper macros for child nodes of this node. */
# 44523 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Node's hash: */


/* Node's dependency ordinal: */



/* Ordinals for what this node depends on directly: */



/* Ordinals for what depends directly on this node: */


/* Existence and alternate IDs: */



/* Macros for properties that are special in the specification: */
# 44554 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Pin control (pinctrl-<i>, pinctrl-names) properties: */


/* Generic property macros: */
# 44593 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Chosen nodes
 */
# 44623 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/* Macros for iterating over all nodes and enabled nodes */
# 44637 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Macros for compatibles with status "okay" nodes
 */
# 44703 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Macros for status "okay" instances of each compatible
 */
# 45017 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/devicetree_generated.h"
/*
 * Bus information for status "okay" nodes of each compatible
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq_multilevel.h" 1
/*
 * Copyright (c) 2023 Meta
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Public interface for multi-level interrupts
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 1
/*
 * Copyright (c) 2011-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq_multilevel.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_macro.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macro utilities
 *
 * Macro utilities are the public interface for C/C++ code and device tree
 * related implementation.  In general, C/C++ will include <sys/util.h>
 * instead this file directly.  For device tree implementation, this file
 * should be include instead <sys/util_internal.h>
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq_multilevel.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq_multilevel.h" 2


extern "C" {
# 397 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq_multilevel.h"
}
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2


# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h"
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2

/**
 * @brief devicetree.h API
 * @defgroup devicetree Devicetree
 * @since 2.2
 * @version 1.2.0
 * @{
 * @}
 */

/*
 * Property suffixes
 * -----------------
 *
 * These are the optional parts that come after the _P_<property>
 * part in DT_N_<path-id>_P_<property-id> macros, or the "prop-suf"
 * nonterminal in the DT guide's macros.bnf file.
 *
 * Before adding new ones, check this list to avoid conflicts. If any
 * are missing from this list, please add them. It should be complete.
 *
 * _ENUM_IDX: property's value as an index into bindings enum
 * _ENUM_VAL_<val>_EXISTS property's value as a token exists
 * _EXISTS: property is defined
 * _FOREACH_PROP_ELEM: helper for "iterating" over values in the property
 * _FOREACH_PROP_ELEM_VARGS: foreach functions with variable number of arguments
 * _IDX_<i>: logical index into property
 * _IDX_<i>_EXISTS: logical index into property is defined
 * _IDX_<i>_PH: phandle array's phandle by index (or phandle, phandles)
 * _IDX_<i>_STRING_TOKEN: string array element value as a token
 * _IDX_<i>_STRING_UPPER_TOKEN: string array element value as a uppercased token
 * _IDX <i>_STRING_UNQUOTED: string array element value as a sequence of tokens, with no quotes
 * _IDX_<i>_VAL_<val>: phandle array's specifier value by index
 * _IDX_<i>_VAL_<val>_EXISTS: cell value exists, by index
 * _LEN: property logical length
 * _NAME_<name>_PH: phandle array's phandle by name
 * _NAME_<name>_VAL_<val>: phandle array's property specifier by name
 * _NAME_<name>_VAL_<val>_EXISTS: cell value exists, by name
 * _STRING_TOKEN: string property's value as a token
 * _STRING_UPPER_TOKEN: like _STRING_TOKEN, but uppercased
 * _STRING_UNQUOTED: string property's value as a sequence of tokens, with no quotes
 */

/**
 * @defgroup devicetree-generic-id Node identifiers and helpers
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Name for an invalid node identifier
 *
 * This supports cases where factored macros can be invoked from paths where
 * devicetree data may or may not be available. It is a preprocessor identifier
 * that does not match any valid devicetree node identifier.
 */


/**
 * @brief Node identifier for the root node in the devicetree
 */


/**
 * @brief Get a node identifier for a devicetree path
 *
 * @note This macro returns a node identifier from path components. To get
 *       a path string from a node identifier, use DT_NODE_PATH() instead.
 *
 * The arguments to this macro are the names of non-root nodes in the
 * tree required to reach the desired node, starting from the root.
 * Non-alphanumeric characters in each name must be converted to
 * underscores to form valid C tokens, and letters must be lowercased.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             soc {
 *                     serial1: serial@40001000 {
 *                             status = "okay";
 *                             current-speed = <115200>;
 *                             ...
 *                     };
 *             };
 *     };
 * @endcode
 *
 * You can use `DT_PATH(soc, serial_40001000)` to get a node identifier
 * for the `serial@40001000` node. Node labels like `serial1` cannot be
 * used as DT_PATH() arguments; use DT_NODELABEL() for those instead.
 *
 * Example usage with DT_PROP() to get the `current-speed` property:
 *
 * @code{.c}
 *     DT_PROP(DT_PATH(soc, serial_40001000), current_speed) // 115200
 * @endcode
 *
 * (The `current-speed` property is also in `lowercase-and-underscores`
 * form when used with this API.)
 *
 * When determining arguments to DT_PATH():
 *
 * - the first argument corresponds to a child node of the root (`soc` above)
 * - a second argument corresponds to a child of the first argument
 *   (`serial_40001000` above, from the node name `serial@40001000`
 *   after lowercasing and changing `@` to `_`)
 * - and so on for deeper nodes in the desired node's path
 *
 * @param ... lowercase-and-underscores node names along the node's path,
 *            with each name given as a separate argument
 * @return node identifier for the node with that path
 */


/**
 * @brief Get a node identifier for a node label
 *
 * Convert non-alphanumeric characters in the node label to
 * underscores to form valid C tokens, and lowercase all letters. Note
 * that node labels are not the same thing as label properties.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     serial1: serial@40001000 {
 *             label = "UART_0";
 *             status = "okay";
 *             current-speed = <115200>;
 *             ...
 *     };
 * @endcode
 *
 * The only node label in this example is `serial1`.
 *
 * The string `UART_0` is *not* a node label; it's the value of a
 * property named label.
 *
 * You can use `DT_NODELABEL(serial1)` to get a node identifier for the
 * `serial@40001000` node. Example usage with DT_PROP() to get the
 * current-speed property:
 *
 * @code{.c}
 *     DT_PROP(DT_NODELABEL(serial1), current_speed) // 115200
 * @endcode
 *
 * Another example devicetree fragment:
 *
 * @code{.dts}
 *     cpu@0 {
 *            L2_0: l2-cache {
 *                    cache-level = <2>;
 *                    ...
 *            };
 *     };
 * @endcode
 *
 * Example usage to get the cache-level property:
 *
 * @code{.c}
 *     DT_PROP(DT_NODELABEL(l2_0), cache_level) // 2
 * @endcode
 *
 * Notice how `L2_0` in the devicetree is lowercased to `l2_0` in the
 * DT_NODELABEL() argument.
 *
 * @param label lowercase-and-underscores node label name
 * @return node identifier for the node with that label
 */


/**
 * @brief Get a node identifier from /aliases
 *
 * This macro's argument is a property of the `/aliases` node. It
 * returns a node identifier for the node which is aliased. Convert
 * non-alphanumeric characters in the alias property to underscores to
 * form valid C tokens, and lowercase all letters.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             aliases {
 *                     my-serial = &serial1;
 *             };
 *
 *             soc {
 *                     serial1: serial@40001000 {
 *                             status = "okay";
 *                             current-speed = <115200>;
 *                             ...
 *                     };
 *             };
 *     };
 * @endcode
 *
 * You can use DT_ALIAS(my_serial) to get a node identifier for the
 * `serial@40001000` node. Notice how `my-serial` in the devicetree
 * becomes `my_serial` in the DT_ALIAS() argument. Example usage with
 * DT_PROP() to get the current-speed property:
 *
 * @code{.c}
 *     DT_PROP(DT_ALIAS(my_serial), current_speed) // 115200
 * @endcode
 *
 * @param alias lowercase-and-underscores alias name.
 * @return node identifier for the node with that alias
 */


/**
 * @brief Test if the devicetree has a given alias
 * @param alias_name lowercase-and-underscores devicetree alias name
 * @return 1 if the alias exists and refers to a node, 0 otherwise
 */


/**
 * @brief Get the hash associated with a DT node
 *
 * Get the hash for the specified node_id. The hash is calculated on the
 * full devicetree path of the node.
 * @param node_id node identifier
 * @return hash value as a preprocessor token
 */


/**
 * @brief Get a node identifier for an instance of a compatible
 *
 * All nodes with a particular compatible property value are assigned
 * instance numbers, which are zero-based indexes specific to that
 * compatible. You can get a node identifier for these nodes by
 * passing DT_INST() an instance number, @p inst, along with the
 * lowercase-and-underscores version of the compatible, @p compat.
 *
 * Instance numbers have the following properties:
 *
 * - for each compatible, instance numbers start at 0 and are contiguous
 * - exactly one instance number is assigned for each node with a compatible,
 *   **including disabled nodes**
 * - enabled nodes (status property is `okay` or missing) are assigned the
 *   instance numbers starting from 0, and disabled nodes have instance
 *   numbers which are greater than those of any enabled node
 *
 * No other guarantees are made. In particular:
 *
 * - instance numbers **in no way reflect** any numbering scheme that
 *   might exist in SoC documentation, node labels or unit addresses,
 *   or properties of the /aliases node (use DT_NODELABEL() or DT_ALIAS()
 *   for those)
 * - there **is no general guarantee** that the same node will have
 *   the same instance number between builds, even if you are building
 *   the same application again in the same build directory
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     serial1: serial@40001000 {
 *             compatible = "vnd,soc-serial";
 *             status = "disabled";
 *             current-speed = <9600>;
 *             ...
 *     };
 *
 *     serial2: serial@40002000 {
 *             compatible = "vnd,soc-serial";
 *             status = "okay";
 *             current-speed = <57600>;
 *             ...
 *     };
 *
 *     serial3: serial@40003000 {
 *             compatible = "vnd,soc-serial";
 *             current-speed = <115200>;
 *             ...
 *     };
 * @endcode
 *
 * Assuming no other nodes in the devicetree have compatible
 * `"vnd,soc-serial"`, that compatible has nodes with instance numbers
 * 0, 1, and 2.
 *
 * The nodes `serial@40002000` and `serial@40003000` are both enabled, so
 * their instance numbers are 0 and 1, but no guarantees are made
 * regarding which node has which instance number.
 *
 * Since `serial@40001000` is the only disabled node, it has instance
 * number 2, since disabled nodes are assigned the largest instance
 * numbers. Therefore:
 *
 * @code{.c}
 *     // Could be 57600 or 115200. There is no way to be sure:
 *     // either serial@40002000 or serial@40003000 could
 *     // have instance number 0, so this could be the current-speed
 *     // property of either of those nodes.
 *     DT_PROP(DT_INST(0, vnd_soc_serial), current_speed)
 *
 *     // Could be 57600 or 115200, for the same reason.
 *     // If the above expression expands to 57600, then
 *     // this expands to 115200, and vice-versa.
 *     DT_PROP(DT_INST(1, vnd_soc_serial), current_speed)
 *
 *     // 9600, because there is only one disabled node, and
 *     // disabled nodes are "at the end" of the instance
 *     // number "list".
 *     DT_PROP(DT_INST(2, vnd_soc_serial), current_speed)
 * @endcode
 *
 * Notice how `"vnd,soc-serial"` in the devicetree becomes `vnd_soc_serial`
 * (without quotes) in the DT_INST() arguments. (As usual, `current-speed`
 * in the devicetree becomes `current_speed` as well.)
 *
 * Nodes whose `compatible` property has multiple values are assigned
 * independent instance numbers for each compatible.
 *
 * @param inst instance number for compatible @p compat
 * @param compat lowercase-and-underscores compatible, without quotes
 * @return node identifier for the node with that instance number and
 *         compatible
 */


/**
 * @brief Get a node identifier for a parent node
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     parent: parent-node {
 *             child: child-node {
 *                     ...
 *             };
 *     };
 * @endcode
 *
 * The following are equivalent ways to get the same node identifier:
 *
 * @code{.c}
 *     DT_NODELABEL(parent)
 *     DT_PARENT(DT_NODELABEL(child))
 * @endcode
 *
 * @param node_id node identifier
 * @return a node identifier for the node's parent
 */


/**
 * @brief Get a node identifier for a grandparent node
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     gparent: grandparent-node {
 *             parent: parent-node {
 *                     child: child-node { ... }
 *             };
 *     };
 * @endcode
 *
 * The following are equivalent ways to get the same node identifier:
 *
 * @code{.c}
 *     DT_GPARENT(DT_NODELABEL(child))
 *     DT_PARENT(DT_PARENT(DT_NODELABEL(child))
 * @endcode
 *
 * @param node_id node identifier
 * @return a node identifier for the node's parent's parent
 */


/**
 * @brief Get a node identifier for a child node
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             soc-label: soc {
 *                     serial1: serial@40001000 {
 *                             status = "okay";
 *                             current-speed = <115200>;
 *                             ...
 *                     };
 *             };
 *     };
 * @endcode
 *
 * Example usage with DT_PROP() to get the status of the
 * `serial@40001000` node:
 *
 * @code{.c}
 *     #define SOC_NODE DT_NODELABEL(soc_label)
 *     DT_PROP(DT_CHILD(SOC_NODE, serial_40001000), status) // "okay"
 * @endcode
 *
 * Node labels like `serial1` cannot be used as the @p child argument
 * to this macro. Use DT_NODELABEL() for that instead.
 *
 * You can also use DT_FOREACH_CHILD() to iterate over node
 * identifiers for all of a node's children.
 *
 * @param node_id node identifier
 * @param child lowercase-and-underscores child node name
 * @return node identifier for the node with the name referred to by 'child'
 */


/**
 * @brief Get a node identifier for a status `okay` node with a compatible
 *
 * Use this if you want to get an arbitrary enabled node with a given
 * compatible, and you do not care which one you get. If any enabled
 * nodes with the given compatible exist, a node identifier for one
 * of them is returned. Otherwise, @ref DT_INVALID_NODE is returned.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	node-a {
 *		compatible = "vnd,device";
 *		status = "okay";
 *	};
 *
 *	node-b {
 *		compatible = "vnd,device";
 *		status = "okay";
 *	};
 *
 *	node-c {
 *		compatible = "vnd,device";
 *		status = "disabled";
 *	};
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_COMPAT_GET_ANY_STATUS_OKAY(vnd_device)
 * @endcode
 *
 * This expands to a node identifier for either `node-a` or `node-b`.
 * It will not expand to a node identifier for `node-c`, because that
 * node does not have status `okay`.
 *
 * @param compat lowercase-and-underscores compatible, without quotes
 * @return node identifier for a node with that compatible, or
 *         @ref DT_INVALID_NODE
 */





/**
 * @brief Get a devicetree node's full path as a string literal
 *
 * This returns the path to a node from a node identifier. To get a
 * node identifier from path components instead, use DT_PATH().
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             soc {
 *                     node: my-node@12345678 { ... };
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *    DT_NODE_PATH(DT_NODELABEL(node)) // "/soc/my-node@12345678"
 *    DT_NODE_PATH(DT_PATH(soc))       // "/soc"
 *    DT_NODE_PATH(DT_ROOT)            // "/"
 * @endcode
 *
 * @param node_id node identifier
 * @return the node's full path in the devicetree
 */


/**
 * @brief Get a devicetree node's name with unit-address as a string literal
 *
 * This returns the node name and unit-address from a node identifier.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             soc {
 *                     node: my-node@12345678 { ... };
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *    DT_NODE_FULL_NAME(DT_NODELABEL(node)) // "my-node@12345678"
 * @endcode
 *
 * @param node_id node identifier
 * @return the node's name with unit-address as a string in the devicetree
 */


/**
 * @brief Get the node's full name, including the unit-address, as an unquoted
 *        sequence of tokens
 *
 * This macro returns removed "the quotes" from the node's full name.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             soc {
 *                     node: my-node@12345678 { ... };
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *    DT_NODE_FULL_NAME_UNQUOTED(DT_NODELABEL(node)) // my-node@12345678
 * @endcode
 *
 * @param node_id node identifier
 * @return the node's full name with unit-address as a sequence of tokens,
 *         with no quotes
 */


/**
 * @brief Get the node's full name, including the unit-address, as a token.
 *
 * This macro returns removed "the quotes" from the node's full name and
 * converting any non-alphanumeric characters to underscores.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             soc {
 *                     node: my-node@12345678 { ... };
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *    DT_NODE_FULL_NAME_TOKEN(DT_NODELABEL(node)) // my_node_12345678
 * @endcode
 *
 * @param node_id node identifier
 * @return the node's full name with unit-address as a token, i.e. without any quotes
 *         and with special characters converted to underscores
 */


/**
 * @brief Like DT_NODE_FULL_NAME_TOKEN(), but uppercased.
 *
 * This macro returns removed "the quotes" from the node's full name,
 * converting any non-alphanumeric characters to underscores, and
 * capitalizing the result.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             soc {
 *                     node: my-node@12345678 { ... };
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *    DT_NODE_FULL_NAME_UPPER_TOKEN(DT_NODELABEL(node)) // MY_NODE_12345678
 * @endcode
 *
 * @param node_id node identifier
 * @return the node's full name with unit-address as an uppercased token,
 *         i.e. without any quotes and with special characters converted
 *         to underscores
 */


/**
 * @brief Get a devicetree node's index into its parent's list of children
 *
 * Indexes are zero-based.
 *
 * It is an error to use this macro with the root node.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     parent {
 *             c1: child-1 {};
 *             c2: child-2 {};
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_NODE_CHILD_IDX(DT_NODELABEL(c1)) // 0
 *     DT_NODE_CHILD_IDX(DT_NODELABEL(c2)) // 1
 * @endcode
 *
 * @param node_id node identifier
 * @return the node's index in its parent node's list of children
 */


/**
 * @brief Get the number of child nodes of a given node
 *
 * @param node_id a node identifier
 * @return Number of child nodes
 */



/**
 * @brief Get the number of child nodes of a given node
 *        which child nodes' status are okay
 *
 * @param node_id a node identifier
 * @return Number of child nodes which status are okay
 */



/**
 * @brief Do @p node_id1 and @p node_id2 refer to the same node?
 *
 * Both @p node_id1 and @p node_id2 must be node identifiers for nodes
 * that exist in the devicetree (if unsure, you can check with
 * DT_NODE_EXISTS()).
 *
 * The expansion evaluates to 0 or 1, but may not be a literal integer
 * 0 or 1.
 *
 * @internal
 * Implementation note: distinct nodes have distinct node identifiers.
 * See include/zephyr/devicetree/ordinals.h.
 * @endinternal
 *
 * @param node_id1 first node identifier
 * @param node_id2 second node identifier
 * @return an expression that evaluates to 1 if the node identifiers
 *         refer to the same node, and evaluates to 0 otherwise
 */



/**
 * @brief Get a devicetree node's node labels as an array of strings
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     foo: bar: node@deadbeef {};
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_NODELABEL_STRING_ARRAY(DT_NODELABEL(foo))
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *     { "foo", "bar", }
 * @endcode
 *
 * @param node_id node identifier
 * @return an array initializer for an array of the node's node labels as strings
 */



/**
 * @}
 */

/**
 * @defgroup devicetree-generic-prop Property accessors
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get a devicetree property value
 *
 * For properties whose bindings have the following types, this macro
 * expands to:
 *
 * - string: a string literal
 * - boolean: `0` if the property is false, or `1` if it is true
 * - int: the property's value as an integer literal
 * - array, uint8-array, string-array: an initializer expression in braces,
 *   whose elements are integer or string literals (like `{0, 1, 2}`,
 *   `{"hello", "world"}`, etc.)
 * - phandle: a node identifier for the node with that phandle
 *
 * A property's type is usually defined by its binding. In some
 * special cases, it has an assumed type defined by the devicetree
 * specification even when no binding is available: `compatible` has
 * type string-array, `status` has type string, and
 * `interrupt-controller` has type boolean.
 *
 * For other properties or properties with unknown type due to a
 * missing binding, behavior is undefined.
 *
 * For usage examples, see DT_PATH(), DT_ALIAS(), DT_NODELABEL(),
 * and DT_INST() above.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @return a representation of the property's value
 */


/**
 * @brief Get a property's logical length
 *
 * Here, "length" is a number of elements, which may differ from the
 * property's size in bytes.
 *
 * The return value depends on the property's type:
 *
 * - for types array, string-array, and uint8-array, this expands
 *   to the number of elements in the array
 * - for type phandles, this expands to the number of phandles
 * - for type phandle-array, this expands to the number of
 *   phandle and specifier blocks in the property
 * - for type phandle, this expands to 1 (so that a phandle
 *   can be treated as a degenerate case of phandles with length 1)
 * - for type string, this expands to 1 (so that a string can be
 *   treated as a degenerate case of string-array with length 1)
 *
 * These properties are handled as special cases:
 *
 * - reg property: use `DT_NUM_REGS(node_id)` instead
 * - interrupts property: use `DT_NUM_IRQS(node_id)` instead
 *
 * It is an error to use this macro with the `ranges`, `dma-ranges`, `reg`
 * or `interrupts` properties.
 *
 * For other properties, behavior is undefined.
 *
 * @param node_id node identifier
 * @param prop a lowercase-and-underscores property with a logical length
 * @return the property's length
 */


/**
 * @brief Like DT_PROP_LEN(), but with a fallback to @p default_value
 *
 * If the property is defined (as determined by DT_NODE_HAS_PROP()),
 * this expands to DT_PROP_LEN(node_id, prop). The @p default_value
 * parameter is not expanded in this case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @param node_id node identifier
 * @param prop a lowercase-and-underscores property with a logical length
 * @param default_value a fallback value to expand to
 * @return the property's length or the given default value
 */




/**
 * @brief Is index @p idx valid for an array type property?
 *
 * If this returns 1, then DT_PROP_BY_IDX(node_id, prop, idx) or
 * DT_PHA_BY_IDX(node_id, prop, idx, ...) are valid at index @p idx.
 * If it returns 0, it is an error to use those macros with that index.
 *
 * These properties are handled as special cases:
 *
 * - `reg` property: use DT_REG_HAS_IDX(node_id, idx) instead
 * - `interrupts` property: use DT_IRQ_HAS_IDX(node_id, idx) instead
 *
 * It is an error to use this macro with the `reg` or `interrupts` properties.
 *
 * @param node_id node identifier
 * @param prop a lowercase-and-underscores property with a logical length
 * @param idx index to check
 * @return An expression which evaluates to 1 if @p idx is a valid index
 *         into the given property, and 0 otherwise.
 */



/**
 * @brief Is name @p name available in a `foo-names` property?
 *
 * This property is handled as special case:
 *
 * - `interrupts` property: use DT_IRQ_HAS_NAME(node_id, idx) instead
 *
 * It is an error to use this macro with the `interrupts` property.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	nx: node-x {
 *		foos = <&bar xx yy>, <&baz xx zz>;
 *		foo-names = "event", "error";
 *		status = "okay";
 *	};
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_PROP_HAS_NAME(DT_NODELABEL(nx), foos, event)    // 1
 *     DT_PROP_HAS_NAME(DT_NODELABEL(nx), foos, failure)  // 0
 * @endcode
 *
 * @param node_id node identifier
 * @param prop a lowercase-and-underscores `prop-names` type property
 * @param name a lowercase-and-underscores name to check
 * @return An expression which evaluates to 1 if "name" is an available
 *         name into the given property, and 0 otherwise.
 */



/**
 * @brief Get the value at index @p idx in an array type property
 *
 * It might help to read the argument order as being similar to
 * `node->property[index]`.
 *
 * The return value depends on the property's type:
 *
 * - for types array, string-array, uint8-array, and phandles,
 *   this expands to the idx-th array element as an
 *   integer, string literal, integer, and node identifier
 *   respectively
 *
 * - for type phandle, idx must be 0 and the expansion is a node
 *   identifier (this treats phandle like a phandles of length 1)
 *
 * - for type string, idx must be 0 and the expansion is the
 *   entire string (this treats string like string-array of length 1)
 *
 * These properties are handled as special cases:
 *
 * - `reg`: use DT_REG_ADDR_BY_IDX() or DT_REG_SIZE_BY_IDX() instead
 * - `interrupts`: use DT_IRQ_BY_IDX()
 * - `ranges`: use DT_NUM_RANGES()
 * - `dma-ranges`: it is an error to use this property with
 *   DT_PROP_BY_IDX()
 *
 * For properties of other types, behavior is undefined.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return a representation of the idx-th element of the property
 */



/**
 * @brief Get the last element of an array type property
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 *
 * @return a representation of the last element of the property
 */



/**
 * @brief Like DT_PROP(), but with a fallback to @p default_value
 *
 * If the value exists, this expands to DT_PROP(node_id, prop).
 * The @p default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param default_value a fallback value to expand to
 * @return the property's value or @p default_value
 */




/**
 * @brief Get a property array value's index into its enumeration values
 *
 * The return values start at zero.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     some_node: some-node {
 *         compat = "vend,enum-string-array";
 *         foos =
 *             <&phandle val1>,
 *             <&phandle val2>,
 *             <&phandle val3>;
 *         foo-names = "default", "option3", "option1";
 *     };
 * @endcode
 *
 * Example bindings fragment:
 *
 * @code{.yaml}
 * compatible: vend,enum-string-array
 * properties:
 *   foos:
 *     type: phandle-array
 *     description: |
 *       Explanation about what this phandle-array exactly is for.
 *
 *   foo-names:
 *     type: string-array
 *     description: |
 *       Some explanation about the available options
 *       default: explain default
 *       option1: explain option1
 *       option2: explain option2
 *       option3: explain option3
 *     enum:
 *       - default
 *       - option1
 *       - option2
 *       - option3
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_ENUM_IDX_BY_IDX(DT_NODELABEL(some_node), foo_names, 0) // 0
 *     DT_ENUM_IDX_BY_IDX(DT_NODELABEL(some_node), foo_names, 2) // 1
 * @endcode
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return zero-based index of the property's value in its enum: list
 */



/**
 * @brief Equivalent to @ref DT_ENUM_IDX_BY_IDX(node_id, prop, 0).
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @return zero-based index of the property's value in its enum: list
 */


/**
 * @brief Like DT_ENUM_IDX_BY_IDX(), but with a fallback to a default enum index
 *
 * If the value exists, this expands to its zero based index value thanks to
 * DT_ENUM_IDX_BY_IDX(node_id, prop, idx).
 *
 * Otherwise, this expands to provided default index enum value.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @param default_idx_value a fallback index value to expand to
 * @return zero-based index of the property's value in its enum if present,
 *         default_idx_value otherwise
 */




/**
 * @brief Equivalent to DT_ENUM_IDX_BY_IDX_OR(node_id, prop, 0, default_idx_value).
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param default_idx_value a fallback index value to expand to
 * @return zero-based index of the property's value in its enum if present,
 *         default_idx_value otherwise
 */



/**
 * @brief Does a node enumeration property array have a given value?
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @param value lowercase-and-underscores enumeration value
 * @return 1 if the node property has the value @a value, 0 otherwise.
 */



/**
 * @brief Equivalent to DT_ENUM_HAS_VALUE_BY_IDX(node_id, prop, 0, value).
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param value lowercase-and-underscores enumeration value
 * @return 1 if the node property has the value @a value, 0 otherwise.
 */



/**
 * @brief Get a string property's value as a token.
 *
 * This removes "the quotes" from a string property's value,
 * converting any non-alphanumeric characters to underscores. This can
 * be useful, for example, when programmatically using the value to
 * form a C variable or code.
 *
 * DT_STRING_TOKEN() can only be used for properties with string type.
 *
 * It is an error to use DT_STRING_TOKEN() in other circumstances.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n1: node-1 {
 *             prop = "foo";
 *     };
 *     n2: node-2 {
 *             prop = "FOO";
 *     }
 *     n3: node-3 {
 *             prop = "123 foo";
 *     };
 * @endcode
 *
 * Example bindings fragment:
 *
 * @code{.yaml}
 *     properties:
 *       prop:
 *         type: string
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_STRING_TOKEN(DT_NODELABEL(n1), prop) // foo
 *     DT_STRING_TOKEN(DT_NODELABEL(n2), prop) // FOO
 *     DT_STRING_TOKEN(DT_NODELABEL(n3), prop) // 123_foo
 * @endcode
 *
 * Notice how:
 *
 * - Unlike C identifiers, the property values may begin with a
 *   number. It's the user's responsibility not to use such values as
 *   the name of a C identifier.
 *
 * - The uppercased `"FOO"` in the DTS remains `FOO` as a token. It is
 *   *not* converted to `foo`.
 *
 * - The whitespace in the DTS `"123 foo"` string is converted to
 *   `123_foo` as a token.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @return the value of @p prop as a token, i.e. without any quotes
 *         and with special characters converted to underscores
 */



/**
 * @brief Like DT_STRING_TOKEN(), but with a fallback to @p default_value
 *
 * If the value exists, this expands to DT_STRING_TOKEN(node_id, prop).
 * The @p default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param default_value a fallback value to expand to
 * @return the property's value as a token, or @p default_value
 */




/**
 * @brief Like DT_STRING_TOKEN(), but uppercased.
 *
 * This removes "the quotes" from a string property's value,
 * converting any non-alphanumeric characters to underscores, and
 * capitalizing the result. This can be useful, for example, when
 * programmatically using the value to form a C variable or code.
 *
 * DT_STRING_UPPER_TOKEN() can only be used for properties with string type.
 *
 * It is an error to use DT_STRING_UPPER_TOKEN() in other circumstances.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n1: node-1 {
 *             prop = "foo";
 *     };
 *     n2: node-2 {
 *             prop = "123 foo";
 *     };
 * @endcode
 *
 * Example bindings fragment:
 *
 * @code{.yaml}
 *     properties:
 *       prop:
 *         type: string
 *
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_STRING_UPPER_TOKEN(DT_NODELABEL(n1), prop) // FOO
 *     DT_STRING_UPPER_TOKEN(DT_NODELABEL(n2), prop) // 123_FOO
 * @endcode
 *
 * Notice how:
 *
 * - Unlike C identifiers, the property values may begin with a
 *   number. It's the user's responsibility not to use such values as
 *   the name of a C identifier.
 *
 * - The lowercased `"foo"` in the DTS becomes `FOO` as a token, i.e.
 *   it is uppercased.
 *
 * - The whitespace in the DTS `"123 foo"` string is converted to
 *   `123_FOO` as a token, i.e. it is uppercased and whitespace becomes
 *   an underscore.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @return the value of @p prop as an uppercased token, i.e. without
 *         any quotes and with special characters converted to underscores
 */



/**
 * @brief Like DT_STRING_UPPER_TOKEN(), but with a fallback to @p default_value
 *
 * If the value exists, this expands to DT_STRING_UPPER_TOKEN(node_id, prop).
 * The @p default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param default_value a fallback value to expand to
 * @return the property's value as an uppercased token,
 *         or @p default_value
 */




/**
 * @brief Get a string property's value as an unquoted sequence of tokens
 *
 * This removes "the quotes" from string-valued properties.
 * That can be useful, for example,
 * when defining floating point values as a string in devicetree
 * that you would like to use to initialize a float or double variable in C.
 *
 * DT_STRING_UNQUOTED() can only be used for properties with string type.
 *
 * It is an error to use DT_STRING_UNQUOTED() in other circumstances.
 *
 * Example devicetree fragment:
 *
 *     n1: node-1 {
 *             prop = "12.7";
 *     };
 *     n2: node-2 {
 *             prop = "0.5";
 *     }
 *     n3: node-3 {
 *             prop = "A B C";
 *     };
 *
 * Example bindings fragment:
 *
 *     properties:
 *       prop:
 *         type: string
 *
 * Example usage:
 *
 *     DT_STRING_UNQUOTED(DT_NODELABEL(n1), prop) // 12.7
 *     DT_STRING_UNQUOTED(DT_NODELABEL(n2), prop) // 0.5
 *     DT_STRING_UNQUOTED(DT_NODELABEL(n3), prop) // A B C
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @return the property's value as a sequence of tokens, with no quotes
 */



/**
 * @brief Like DT_STRING_UNQUOTED(), but with a fallback to @p default_value
 *
 * If the value exists, this expands to DT_STRING_UNQUOTED(node_id, prop).
 * The @p default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param default_value a fallback value to expand to
 * @return the property's value as a sequence of tokens, with no quotes,
 *         or @p default_value
 */




/**
 * @brief Get an element out of a string-array property as a token.
 *
 * This removes "the quotes" from an element in the array, and converts
 * non-alphanumeric characters to underscores. That can be useful, for example,
 * when programmatically using the value to form a C variable or code.
 *
 * DT_STRING_TOKEN_BY_IDX() can only be used for properties with
 * string-array type.
 *
 * It is an error to use DT_STRING_TOKEN_BY_IDX() in other circumstances.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n1: node-1 {
 *             prop = "f1", "F2";
 *     };
 *     n2: node-2 {
 *             prop = "123 foo", "456 FOO";
 *     };
 * @endcode
 *
 * Example bindings fragment:
 *
 * @code{.yaml}
 *     properties:
 *       prop:
 *         type: string-array
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_STRING_TOKEN_BY_IDX(DT_NODELABEL(n1), prop, 0) // f1
 *     DT_STRING_TOKEN_BY_IDX(DT_NODELABEL(n1), prop, 1) // F2
 *     DT_STRING_TOKEN_BY_IDX(DT_NODELABEL(n2), prop, 0) // 123_foo
 *     DT_STRING_TOKEN_BY_IDX(DT_NODELABEL(n2), prop, 1) // 456_FOO
 * @endcode
 *
 * For more information, see @ref DT_STRING_TOKEN.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return the element in @p prop at index @p idx as a token
 */



/**
 * @brief Like DT_STRING_TOKEN_BY_IDX(), but uppercased.
 *
 * This removes "the quotes" and capitalizes an element in the array, and
 * converts non-alphanumeric characters to underscores. That can be useful, for
 * example, when programmatically using the value to form a C variable or code.
 *
 * DT_STRING_UPPER_TOKEN_BY_IDX() can only be used for properties with
 * string-array type.
 *
 * It is an error to use DT_STRING_UPPER_TOKEN_BY_IDX() in other circumstances.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n1: node-1 {
 *             prop = "f1", "F2";
 *     };
 *     n2: node-2 {
 *             prop = "123 foo", "456 FOO";
 *     };
 * @endcode
 *
 * Example bindings fragment:
 *
 * @code{.yaml}
 *     properties:
 *       prop:
 *         type: string-array
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_STRING_UPPER_TOKEN_BY_IDX(DT_NODELABEL(n1), prop, 0) // F1
 *     DT_STRING_UPPER_TOKEN_BY_IDX(DT_NODELABEL(n1), prop, 1) // F2
 *     DT_STRING_UPPER_TOKEN_BY_IDX(DT_NODELABEL(n2), prop, 0) // 123_FOO
 *     DT_STRING_UPPER_TOKEN_BY_IDX(DT_NODELABEL(n2), prop, 1) // 456_FOO
 * @endcode
 *
 * For more information, see @ref DT_STRING_UPPER_TOKEN.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return the element in @p prop at index @p idx as an uppercased token
 */



/**
 * @brief Get a string array item value as an unquoted sequence of tokens.
 *
 * This removes "the quotes" from string-valued item.
 * That can be useful, for example,
 * when defining floating point values as a string in devicetree
 * that you would like to use to initialize a float or double variable in C.
 *
 * DT_STRING_UNQUOTED_BY_IDX() can only be used for properties with
 * string-array type.
 *
 * It is an error to use DT_STRING_UNQUOTED_BY_IDX() in other circumstances.
 *
 * Example devicetree fragment:
 *
 *     n1: node-1 {
 *             prop = "12.7", "34.1";
 *     };
 *     n2: node-2 {
 *             prop = "A B", "C D";
 *     }
 *
 * Example bindings fragment:
 *
 *     properties:
 *       prop:
 *         type: string-array
 *
 * Example usage:
 *
 *     DT_STRING_UNQUOTED_BY_IDX(DT_NODELABEL(n1), prop, 0) // 12.7
 *     DT_STRING_UNQUOTED_BY_IDX(DT_NODELABEL(n1), prop, 1) // 34.1
 *     DT_STRING_UNQUOTED_BY_IDX(DT_NODELABEL(n2), prop, 0) // A B
 *     DT_STRING_UNQUOTED_BY_IDX(DT_NODELABEL(n2), prop, 1) // C D
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return the property's value as a sequence of tokens, with no quotes
 */



/*
 * phandle properties
 *
 * These are special-cased to manage the impedance mismatch between
 * phandles, which are just uint32_t node properties that only make sense
 * within the tree itself, and C values.
 */

/**
 * @brief Get a property value from a phandle in a property.
 *
 * This is a shorthand for:
 *
 * @code{.c}
 *     DT_PROP(DT_PHANDLE_BY_IDX(node_id, phs, idx), prop)
 * @endcode
 *
 * That is, @p prop is a property of the phandle's node, not a
 * property of @p node_id.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n1: node-1 {
 *             foo = <&n2 &n3>;
 *     };
 *
 *     n2: node-2 {
 *             bar = <42>;
 *     };
 *
 *     n3: node-3 {
 *             baz = <43>;
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     #define N1 DT_NODELABEL(n1)
 *
 *     DT_PROP_BY_PHANDLE_IDX(N1, foo, 0, bar) // 42
 *     DT_PROP_BY_PHANDLE_IDX(N1, foo, 1, baz) // 43
 * @endcode
 *
 * @param node_id node identifier
 * @param phs lowercase-and-underscores property with type `phandle`,
 *            `phandles`, or `phandle-array`
 * @param idx logical index into @p phs, which must be zero if @p phs
 *            has type `phandle`
 * @param prop lowercase-and-underscores property of the phandle's node
 * @return the property's value
 */



/**
 * @brief Like DT_PROP_BY_PHANDLE_IDX(), but with a fallback to
 * @p default_value.
 *
 * If the value exists, this expands to DT_PROP_BY_PHANDLE_IDX(node_id, phs,
 * idx, prop). The @p default_value parameter is not expanded in this
 * case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @param node_id node identifier
 * @param phs lowercase-and-underscores property with type `phandle`,
 *            `phandles`, or `phandle-array`
 * @param idx logical index into @p phs, which must be zero if @p phs
 *            has type `phandle`
 * @param prop lowercase-and-underscores property of the phandle's node
 * @param default_value a fallback value to expand to
 * @return the property's value
 */



/**
 * @brief Get a property value from a phandle's node
 *
 * This is equivalent to DT_PROP_BY_PHANDLE_IDX(node_id, ph, 0, prop).
 *
 * @param node_id node identifier
 * @param ph lowercase-and-underscores property of @p node_id
 *           with type `phandle`
 * @param prop lowercase-and-underscores property of the phandle's node
 * @return the property's value
 */



/**
 * @brief Get a phandle-array specifier cell value at an index
 *
 * It might help to read the argument order as being similar to
 * `node->phandle_array[index].cell`. That is, the cell value is in
 * the @p pha property of @p node_id, inside the specifier at index
 * @p idx.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     gpio0: gpio@abcd1234 {
 *             #gpio-cells = <2>;
 *     };
 *
 *     gpio1: gpio@1234abcd {
 *             #gpio-cells = <2>;
 *     };
 *
 *     led: led_0 {
 *             gpios = <&gpio0 17 0x1>, <&gpio1 5 0x3>;
 *     };
 * @endcode
 *
 * Bindings fragment for the `gpio0` and `gpio1` nodes:
 *
 * @code{.yaml}
 *     gpio-cells:
 *       - pin
 *       - flags
 * @endcode
 *
 * Above, `gpios` has two elements:
 *
 * - index 0 has specifier <17 0x1>, so its `pin` cell is 17, and its
 *   `flags` cell is 0x1
 * - index 1 has specifier <5 0x3>, so `pin` is 5 and `flags` is 0x3
 *
 * Example usage:
 *
 * @code{.c}
 *     #define LED DT_NODELABEL(led)
 *
 *     DT_PHA_BY_IDX(LED, gpios, 0, pin)   // 17
 *     DT_PHA_BY_IDX(LED, gpios, 1, flags) // 0x3
 * @endcode
 *
 * @param node_id node identifier
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param idx logical index into @p pha
 * @param cell lowercase-and-underscores cell name within the specifier
 *             at @p pha index @p idx
 * @return the cell's value
 */



/**
 * @brief Like DT_PHA_BY_IDX(), but with a fallback to @p default_value.
 *
 * If the value exists, this expands to DT_PHA_BY_IDX(node_id, pha,
 * idx, cell). The @p default_value parameter is not expanded in this
 * case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @internal
 * Implementation note: the _IDX_##idx##_VAL_##cell##_EXISTS macros are
 * defined, so it's safe to use DT_PROP_OR() here, because that uses an
 * IS_ENABLED() on the _EXISTS macro.
 * @endinternal
 *
 * @param node_id node identifier
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param idx logical index into @p pha
 * @param cell lowercase-and-underscores cell name within the specifier
 *             at @p pha index @p idx
 * @param default_value a fallback value to expand to
 * @return the cell's value or @p default_value
 */



/**
 * @brief Equivalent to DT_PHA_BY_IDX(node_id, pha, 0, cell)
 * @param node_id node identifier
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param cell lowercase-and-underscores cell name
 * @return the cell's value
 */


/**
 * @brief Like DT_PHA(), but with a fallback to @p default_value
 *
 * If the value exists, this expands to DT_PHA(node_id, pha, cell).
 * The @p default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @param node_id node identifier
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param cell lowercase-and-underscores cell name
 * @param default_value a fallback value to expand to
 * @return the cell's value or @p default_value
 */



/**
 * @brief Get a value within a phandle-array specifier by name
 *
 * This is like DT_PHA_BY_IDX(), except it treats @p pha as a structure
 * where each array element has a name.
 *
 * It might help to read the argument order as being similar to
 * `node->phandle_struct.name.cell`. That is, the cell value is in the
 * @p pha property of @p node_id, treated as a data structure where
 * each array element has a name.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n: node {
 *             io-channels = <&adc1 10>, <&adc2 20>;
 *             io-channel-names = "SENSOR", "BANDGAP";
 *     };
 * @endcode
 *
 * Bindings fragment for the "adc1" and "adc2" nodes:
 *
 * @code{.yaml}
 *     io-channel-cells:
 *       - input
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_PHA_BY_NAME(DT_NODELABEL(n), io_channels, sensor, input)  // 10
 *     DT_PHA_BY_NAME(DT_NODELABEL(n), io_channels, bandgap, input) // 20
 * @endcode
 *
 * @param node_id node identifier
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param name lowercase-and-underscores name of a specifier in @p pha
 * @param cell lowercase-and-underscores cell name in the named specifier
 * @return the cell's value
 */



/**
 * @brief Like DT_PHA_BY_NAME(), but with a fallback to @p default_value
 *
 * If the value exists, this expands to DT_PHA_BY_NAME(node_id, pha,
 * name, cell). The @p default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @internal
 * Implementation note: the `_NAME_##name##_VAL_##cell##_EXISTS` macros are
 * defined, so it's safe to use DT_PROP_OR() here, because that uses an
 * IS_ENABLED() on the `_EXISTS` macro.
 * @endinternal
 *
 * @param node_id node identifier
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param name lowercase-and-underscores name of a specifier in @p pha
 * @param cell lowercase-and-underscores cell name in the named specifier
 * @param default_value a fallback value to expand to
 * @return the cell's value or @p default_value
 */



/**
 * @brief Get a phandle's node identifier from a phandle array by @p name
 *
 * It might help to read the argument order as being similar to
 * `node->phandle_struct.name.phandle`. That is, the phandle array is
 * treated as a structure with named elements. The return value is
 * the node identifier for a phandle inside the structure.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     adc1: adc@abcd1234 {
 *             foobar = "ADC_1";
 *     };
 *
 *     adc2: adc@1234abcd {
 *             foobar = "ADC_2";
 *     };
 *
 *     n: node {
 *             io-channels = <&adc1 10>, <&adc2 20>;
 *             io-channel-names = "SENSOR", "BANDGAP";
 *     };
 * @endcode
 *
 * Above, "io-channels" has two elements:
 *
 * - the element named `"SENSOR"` has phandle `&adc1`
 * - the element named `"BANDGAP"` has phandle `&adc2`
 *
 * Example usage:
 *
 * @code{.c}
 *     #define NODE DT_NODELABEL(n)
 *
 *     DT_PROP(DT_PHANDLE_BY_NAME(NODE, io_channels, sensor), foobar)  // "ADC_1"
 *     DT_PROP(DT_PHANDLE_BY_NAME(NODE, io_channels, bandgap), foobar) // "ADC_2"
 * @endcode
 *
 * Notice how devicetree properties and names are lowercased, and
 * non-alphanumeric characters are converted to underscores.
 *
 * @param node_id node identifier
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param name lowercase-and-underscores name of an element in @p pha
 * @return a node identifier for the node with that phandle
 */



/**
 * @brief Get a node identifier for a phandle in a property.
 *
 * When a node's value at a logical index contains a phandle, this
 * macro returns a node identifier for the node with that phandle.
 *
 * Therefore, if @p prop has type `phandle`, @p idx must be zero. (A
 * `phandle` type is treated as a `phandles` with a fixed length of
 * 1).
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n1: node-1 {
 *             foo = <&n2 &n3>;
 *     };
 *
 *     n2: node-2 { ... };
 *     n3: node-3 { ... };
 * @endcode
 *
 * Above, `foo` has type phandles and has two elements:
 *
 * - index 0 has phandle `&n2`, which is `node-2`'s phandle
 * - index 1 has phandle `&n3`, which is `node-3`'s phandle
 *
 * Example usage:
 *
 * @code{.c}
 *     #define N1 DT_NODELABEL(n1)
 *
 *     DT_PHANDLE_BY_IDX(N1, foo, 0) // node identifier for node-2
 *     DT_PHANDLE_BY_IDX(N1, foo, 1) // node identifier for node-3
 * @endcode
 *
 * Behavior is analogous for phandle-arrays.
 *
 * @internal
 * Implementation note: using DT_CAT6 above defers concatenation until
 * after expansion of each parameter. This is important when 'idx' is
 * expandable to a number, but it isn't one "yet".
 * @endinternal
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name in @p node_id
 *             with type `phandle`, `phandles` or `phandle-array`
 * @param idx index into @p prop
 * @return node identifier for the node with the phandle at that index
 */



/**
 * @brief Get a node identifier for a phandle property's value
 *
 * This is equivalent to DT_PHANDLE_BY_IDX(node_id, prop, 0). Its primary
 * benefit is readability when @p prop has type `phandle`.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property of @p node_id
 *             with type `phandle`
 * @return a node identifier for the node pointed to by "ph"
 */


/**
 * @}
 */

/**
 * @defgroup devicetree-ranges-prop ranges property
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the number of range blocks in the ranges property
 *
 * Use this instead of DT_PROP_LEN(node_id, ranges).
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     pcie0: pcie@0 {
 *             compatible = "pcie-controller";
 *             reg = <0 1>;
 *             #address-cells = <3>;
 *             #size-cells = <2>;
 *
 *             ranges = <0x1000000 0 0 0 0x3eff0000 0 0x10000>,
 *                      <0x2000000 0 0x10000000 0 0x10000000 0 0x2eff0000>,
 *                      <0x3000000 0x80 0 0x80 0 0x80 0>;
 *     };
 *
 *     other: other@1 {
 *             reg = <1 1>;
 *
 *             ranges = <0x0 0x0 0x0 0x3eff0000 0x10000>,
 *                      <0x0 0x10000000 0x0 0x10000000 0x2eff0000>;
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_NUM_RANGES(DT_NODELABEL(pcie0)) // 3
 *     DT_NUM_RANGES(DT_NODELABEL(other)) // 2
 * @endcode
 *
 * @param node_id node identifier
 */


/**
 * @brief Is @p idx a valid range block index?
 *
 * If this returns 1, then DT_RANGES_CHILD_BUS_ADDRESS_BY_IDX(node_id, idx),
 * DT_RANGES_PARENT_BUS_ADDRESS_BY_IDX(node_id, idx) or
 * DT_RANGES_LENGTH_BY_IDX(node_id, idx) are valid.
 * For DT_RANGES_CHILD_BUS_FLAGS_BY_IDX(node_id, idx) the return value
 * of DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(node_id, idx) will indicate
 * validity.
 * If it returns 0, it is an error to use those macros with index @p idx,
 * including DT_RANGES_CHILD_BUS_FLAGS_BY_IDX(node_id, idx).
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     pcie0: pcie@0 {
 *             compatible = "pcie-controller";
 *             reg = <0 1>;
 *             #address-cells = <3>;
 *             #size-cells = <2>;
 *
 *             ranges = <0x1000000 0 0 0 0x3eff0000 0 0x10000>,
 *                      <0x2000000 0 0x10000000 0 0x10000000 0 0x2eff0000>,
 *                      <0x3000000 0x80 0 0x80 0 0x80 0>;
 *     };
 *
 *     other: other@1 {
 *             reg = <1 1>;
 *
 *             ranges = <0x0 0x0 0x0 0x3eff0000 0x10000>,
 *                      <0x0 0x10000000 0x0 0x10000000 0x2eff0000>;
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_RANGES_HAS_IDX(DT_NODELABEL(pcie0), 0) // 1
 *     DT_RANGES_HAS_IDX(DT_NODELABEL(pcie0), 1) // 1
 *     DT_RANGES_HAS_IDX(DT_NODELABEL(pcie0), 2) // 1
 *     DT_RANGES_HAS_IDX(DT_NODELABEL(pcie0), 3) // 0
 *     DT_RANGES_HAS_IDX(DT_NODELABEL(other), 0) // 1
 *     DT_RANGES_HAS_IDX(DT_NODELABEL(other), 1) // 1
 *     DT_RANGES_HAS_IDX(DT_NODELABEL(other), 2) // 0
 *     DT_RANGES_HAS_IDX(DT_NODELABEL(other), 3) // 0
 * @endcode
 *
 * @param node_id node identifier
 * @param idx index to check
 * @return 1 if @p idx is a valid register block index,
 *         0 otherwise.
 */



/**
 * @brief Does a ranges property have child bus flags at index?
 *
 * If this returns 1, then DT_RANGES_CHILD_BUS_FLAGS_BY_IDX(node_id, idx) is valid.
 * If it returns 0, it is an error to use this macro with index @p idx.
 * This macro only returns 1 for PCIe buses (i.e. nodes whose bindings specify they
 * are "pcie" bus nodes.)
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     parent {
 *             #address-cells = <2>;
 *
 *             pcie0: pcie@0 {
 *                     compatible = "pcie-controller";
 *                     reg = <0 0 1>;
 *                     #address-cells = <3>;
 *                     #size-cells = <2>;
 *
 *                     ranges = <0x1000000 0 0 0 0x3eff0000 0 0x10000>,
 *                              <0x2000000 0 0x10000000 0 0x10000000 0 0x2eff0000>,
 *                              <0x3000000 0x80 0 0x80 0 0x80 0>;
 *             };
 *
 *             other: other@1 {
 *                     reg = <0 1 1>;
 *
 *                     ranges = <0x0 0x0 0x0 0x3eff0000 0x10000>,
 *                              <0x0 0x10000000 0x0 0x10000000 0x2eff0000>;
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(DT_NODELABEL(pcie0), 0) // 1
 *     DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(DT_NODELABEL(pcie0), 1) // 1
 *     DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(DT_NODELABEL(pcie0), 2) // 1
 *     DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(DT_NODELABEL(pcie0), 3) // 0
 *     DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(DT_NODELABEL(other), 0) // 0
 *     DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(DT_NODELABEL(other), 1) // 0
 *     DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(DT_NODELABEL(other), 2) // 0
 *     DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(DT_NODELABEL(other), 3) // 0
 * @endcode
 *
 * @param node_id node identifier
 * @param idx logical index into the ranges array
 * @return 1 if @p idx is a valid child bus flags index,
 *         0 otherwise.
 */



/**
 * @brief Get the ranges property child bus flags at index
 *
 * When the node is a PCIe bus, the Child Bus Address has an extra cell used to store some
 * flags, thus this cell is extracted from the Child Bus Address as Child Bus Flags field.
 *
 * Example devicetree fragments:
 *
 * @code{.dts}
 *     parent {
 *             #address-cells = <2>;
 *
 *             pcie0: pcie@0 {
 *                     compatible = "pcie-controller";
 *                     reg = <0 0 1>;
 *                     #address-cells = <3>;
 *                     #size-cells = <2>;
 *
 *                     ranges = <0x1000000 0 0 0 0x3eff0000 0 0x10000>,
 *                              <0x2000000 0 0x10000000 0 0x10000000 0 0x2eff0000>,
 *                              <0x3000000 0x80 0 0x80 0 0x80 0>;
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_RANGES_CHILD_BUS_FLAGS_BY_IDX(DT_NODELABEL(pcie0), 0) // 0x1000000
 *     DT_RANGES_CHILD_BUS_FLAGS_BY_IDX(DT_NODELABEL(pcie0), 1) // 0x2000000
 *     DT_RANGES_CHILD_BUS_FLAGS_BY_IDX(DT_NODELABEL(pcie0), 2) // 0x3000000
 * @endcode
 *
 * @param node_id node identifier
 * @param idx logical index into the ranges array
 * @returns range child bus flags field at idx
 */



/**
 * @brief Get the ranges property child bus address at index
 *
 * When the node is a PCIe bus, the Child Bus Address has an extra cell used to store some
 * flags, thus this cell is removed from the Child Bus Address.
 *
 * Example devicetree fragments:
 *
 * @code{.dts}
 *     parent {
 *             #address-cells = <2>;
 *
 *             pcie0: pcie@0 {
 *                     compatible = "pcie-controller";
 *                     reg = <0 0 1>;
 *                     #address-cells = <3>;
 *                     #size-cells = <2>;
 *
 *                     ranges = <0x1000000 0 0 0 0x3eff0000 0 0x10000>,
 *                              <0x2000000 0 0x10000000 0 0x10000000 0 0x2eff0000>,
 *                              <0x3000000 0x80 0 0x80 0 0x80 0>;
 *             };
 *
 *             other: other@1 {
 *                     reg = <0 1 1>;
 *
 *                     ranges = <0x0 0x0 0x0 0x3eff0000 0x10000>,
 *                              <0x0 0x10000000 0x0 0x10000000 0x2eff0000>;
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_RANGES_CHILD_BUS_ADDRESS_BY_IDX(DT_NODELABEL(pcie0), 0) // 0
 *     DT_RANGES_CHILD_BUS_ADDRESS_BY_IDX(DT_NODELABEL(pcie0), 1) // 0x10000000
 *     DT_RANGES_CHILD_BUS_ADDRESS_BY_IDX(DT_NODELABEL(pcie0), 2) // 0x8000000000
 *     DT_RANGES_CHILD_BUS_ADDRESS_BY_IDX(DT_NODELABEL(other), 0) // 0
 *     DT_RANGES_CHILD_BUS_ADDRESS_BY_IDX(DT_NODELABEL(other), 1) // 0x10000000
 * @endcode
 *
 * @param node_id node identifier
 * @param idx logical index into the ranges array
 * @returns range child bus address field at idx
 */



/**
 * @brief Get the ranges property parent bus address at index
 *
 * Similarly to DT_RANGES_CHILD_BUS_ADDRESS_BY_IDX(), this properly accounts
 * for child bus flags cells when the node is a PCIe bus.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     parent {
 *             #address-cells = <2>;
 *
 *             pcie0: pcie@0 {
 *                     compatible = "pcie-controller";
 *                     reg = <0 0 1>;
 *                     #address-cells = <3>;
 *                     #size-cells = <2>;
 *
 *                     ranges = <0x1000000 0 0 0 0x3eff0000 0 0x10000>,
 *                              <0x2000000 0 0x10000000 0 0x10000000 0 0x2eff0000>,
 *                              <0x3000000 0x80 0 0x80 0 0x80 0>;
 *             };
 *
 *             other: other@1 {
 *                     reg = <0 1 1>;
 *
 *                     ranges = <0x0 0x0 0x0 0x3eff0000 0x10000>,
 *                              <0x0 0x10000000 0x0 0x10000000 0x2eff0000>;
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_RANGES_PARENT_BUS_ADDRESS_BY_IDX(DT_NODELABEL(pcie0), 0) // 0x3eff0000
 *     DT_RANGES_PARENT_BUS_ADDRESS_BY_IDX(DT_NODELABEL(pcie0), 1) // 0x10000000
 *     DT_RANGES_PARENT_BUS_ADDRESS_BY_IDX(DT_NODELABEL(pcie0), 2) // 0x8000000000
 *     DT_RANGES_PARENT_BUS_ADDRESS_BY_IDX(DT_NODELABEL(other), 0) // 0x3eff0000
 *     DT_RANGES_PARENT_BUS_ADDRESS_BY_IDX(DT_NODELABEL(other), 1) // 0x10000000
 * @endcode
 *
 * @param node_id node identifier
 * @param idx logical index into the ranges array
 * @returns range parent bus address field at idx
 */



/**
 * @brief Get the ranges property length at index
 *
 * Similarly to DT_RANGES_CHILD_BUS_ADDRESS_BY_IDX(), this properly accounts
 * for child bus flags cells when the node is a PCIe bus.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     parent {
 *             #address-cells = <2>;
 *
 *             pcie0: pcie@0 {
 *                     compatible = "pcie-controller";
 *                     reg = <0 0 1>;
 *                     #address-cells = <3>;
 *                     #size-cells = <2>;
 *
 *                     ranges = <0x1000000 0 0 0 0x3eff0000 0 0x10000>,
 *                              <0x2000000 0 0x10000000 0 0x10000000 0 0x2eff0000>,
 *                              <0x3000000 0x80 0 0x80 0 0x80 0>;
 *             };
 *
 *             other: other@1 {
 *                     reg = <0 1 1>;
 *
 *                     ranges = <0x0 0x0 0x0 0x3eff0000 0x10000>,
 *                              <0x0 0x10000000 0x0 0x10000000 0x2eff0000>;
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_RANGES_LENGTH_BY_IDX(DT_NODELABEL(pcie0), 0) // 0x10000
 *     DT_RANGES_LENGTH_BY_IDX(DT_NODELABEL(pcie0), 1) // 0x2eff0000
 *     DT_RANGES_LENGTH_BY_IDX(DT_NODELABEL(pcie0), 2) // 0x8000000000
 *     DT_RANGES_LENGTH_BY_IDX(DT_NODELABEL(other), 0) // 0x10000
 *     DT_RANGES_LENGTH_BY_IDX(DT_NODELABEL(other), 1) // 0x2eff0000
 * @endcode
 *
 * @param node_id node identifier
 * @param idx logical index into the ranges array
 * @returns range length field at idx
 */



/**
 * @brief Invokes @p fn for each entry of @p node_id ranges property
 *
 * The macro @p fn must take two parameters, @p node_id which will be the node
 * identifier of the node with the ranges property and @p idx the index of
 * the ranges block.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n: node@0 {
 *             reg = <0 0 1>;
 *
 *             ranges = <0x0 0x0 0x0 0x3eff0000 0x10000>,
 *                      <0x0 0x10000000 0x0 0x10000000 0x2eff0000>;
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     #define RANGE_LENGTH(node_id, idx) DT_RANGES_LENGTH_BY_IDX(node_id, idx),
 *
 *     const uint64_t *ranges_length[] = {
 *             DT_FOREACH_RANGE(DT_NODELABEL(n), RANGE_LENGTH)
 *     };
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *     const char *ranges_length[] = {
 *         0x10000, 0x2eff0000,
 *     };
 * @endcode
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 */



/**
 * @}
 */

/**
 * @defgroup devicetree-generic-vendor Vendor and model name helpers
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the vendor at index @p idx as a string literal
 *
 * The vendor is a string extracted from vendor prefixes if an entry exists
 * that matches the node's compatible prefix. There may be as many as one
 * vendor prefixes file per directory in DTS_ROOT.
 *
 * Example vendor-prefixes.txt:
 *
 *	vnd	A stand-in for a real vendor
 *	zephyr	Zephyr-specific binding
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	n1: node-1 {
 *		compatible = "vnd,model1", "gpio", "zephyr,model2";
 *	};
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *	DT_NODE_VENDOR_BY_IDX(DT_NODELABEL(n1), 0) // "A stand-in for a real vendor"
 *	DT_NODE_VENDOR_BY_IDX(DT_NODELABEL(n1), 2) // "Zephyr-specific binding"
 * @endcode
 *
 * Notice that the compatible at index 1 doesn't match any entries in the
 * vendor prefix file and therefore index 1 is not a valid vendor index. Use
 * DT_NODE_VENDOR_HAS_IDX(node_id, idx) to determine if an index is valid.
 *
 * @param node_id node identifier
 * @param idx index of the vendor to return
 * @return string literal of the idx-th vendor
 */



/**
 * @brief Does a node's compatible property have a vendor at an index?
 *
 * If this returns 1, then DT_NODE_VENDOR_BY_IDX(node_id, idx) is valid. If it
 * returns 0, it is an error to use DT_NODE_VENDOR_BY_IDX(node_id, idx) with
 * index @p idx.
 *
 * @param node_id node identifier
 * @param idx index of the vendor to check
 * @return 1 if @p idx is a valid vendor index,
 *         0 otherwise.
 */



/**
 * @brief Like DT_NODE_VENDOR_BY_IDX(), but with a fallback to default_value.
 *
 * If the value exists, this expands to DT_NODE_VENDOR_BY_IDX(node_id, idx).
 * The default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to default_value.
 *
 * @param node_id node identifier
 * @param idx index of the vendor to return
 * @return string literal of the idx-th vendor
 * @param default_value a fallback value to expand to
 * @return string literal of the idx-th vendor or "default_value"
 */




/**
 * @brief Get the node's (only) vendor as a string literal
 *
 * Equivalent to DT_NODE_VENDOR_BY_IDX_OR(node_id, 0, default_value).
 *
 * @param node_id node identifier
 * @param default_value a fallback value to expand to
 */



/**
 * @brief Get the model at index "idx" as a string literal
 *
 * The model is a string extracted from the compatible after the vendor prefix.
 *
 * Example vendor-prefixes.txt:
 *
 *	vnd	A stand-in for a real vendor
 *	zephyr	Zephyr-specific binding
 *
 * Example devicetree fragment:
 *
 *	n1: node-1 {
 *		compatible = "vnd,model1", "gpio", "zephyr,model2";
 *	};
 *
 * Example usage:
 *
 *	DT_NODE_MODEL_BY_IDX(DT_NODELABEL(n1), 0) // "model1"
 *	DT_NODE_MODEL_BY_IDX(DT_NODELABEL(n1), 2) // "model2"
 *
 * Notice that the compatible at index 1 doesn't match any entries in the
 * vendor prefix file and therefore index 1 is not a valid model index. Use
 * DT_NODE_MODEL_HAS_IDX(node_id, idx) to determine if an index is valid.
 *
 * @param node_id node identifier
 * @param idx index of the model to return
 * @return string literal of the idx-th model
 */



/**
 * @brief Does a node's compatible property have a model at an index?
 *
 * If this returns 1, then DT_NODE_MODEL_BY_IDX(node_id, idx) is valid. If it
 * returns 0, it is an error to use DT_NODE_MODEL_BY_IDX(node_id, idx) with
 * index "idx".
 *
 * @param node_id node identifier
 * @param idx index of the model to check
 * @return 1 if "idx" is a valid model index,
 *         0 otherwise.
 */



/**
 * @brief Like DT_NODE_MODEL_BY_IDX(), but with a fallback to default_value.
 *
 * If the value exists, this expands to DT_NODE_MODEL_BY_IDX(node_id, idx).
 * The default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to default_value.
 *
 * @param node_id node identifier
 * @param idx index of the model to return
 * @return string literal of the idx-th model
 * @param default_value a fallback value to expand to
 * @return string literal of the idx-th model or "default_value"
 */




/**
 * @brief Get the node's (only) model as a string literal
 *
 * Equivalent to DT_NODE_MODEL_BY_IDX_OR(node_id, 0, default_value).
 *
 * @param node_id node identifier
 * @param default_value a fallback value to expand to
 */



/**
 * @}
 */

/**
 * @defgroup devicetree-reg-prop reg property
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the number of register blocks in the reg property
 *
 * Use this instead of DT_PROP_LEN(node_id, reg).
 * @param node_id node identifier
 * @return Number of register blocks in the node's "reg" property.
 */


/**
 * @brief Is @p idx a valid register block index?
 *
 * If this returns 1, then DT_REG_ADDR_BY_IDX(node_id, idx) or
 * DT_REG_SIZE_BY_IDX(node_id, idx) are valid.
 * If it returns 0, it is an error to use those macros with index @p idx.
 * @param node_id node identifier
 * @param idx index to check
 * @return 1 if @p idx is a valid register block index,
 *         0 otherwise.
 */



/**
 * @brief Is @p name a valid register block name?
 *
 * If this returns 1, then DT_REG_ADDR_BY_NAME(node_id, name) or
 * DT_REG_SIZE_BY_NAME(node_id, name) are valid.
 * If it returns 0, it is an error to use those macros with name @p name.
 * @param node_id node identifier
 * @param name name to check
 * @return 1 if @p name is a valid register block name,
 *         0 otherwise.
 */



/**
 * @brief Get the base raw address of the register block at index @p idx
 *
 * Get the base address of the register block at index @p idx without any
 * type suffix. This can be used to index other devicetree properties, use the
 * non _RAW macros for assigning values in actual code.
 *
 * @param node_id node identifier
 * @param idx index of the register whose address to return
 * @return address of the idx-th register block
 */



/**
 * @brief Get a node's (only) register block raw address
 *
 * Get a node's only register block address without any type suffix. This can
 * be used to index other devicetree properties, use the non _RAW macros for
 * assigning values in actual code.
 *
 * Equivalent to DT_REG_ADDR_BY_IDX_RAW(node_id, 0).
 * @param node_id node identifier
 * @return node's register block address
 */



/**
 * @brief Get the base address of the register block at index @p idx
 * @param node_id node identifier
 * @param idx index of the register whose address to return
 * @return address of the idx-th register block
 */



/**
 * @brief Get the size of the register block at index @p idx
 *
 * This is the size of an individual register block, not the total
 * number of register blocks in the property; use DT_NUM_REGS() for
 * that.
 *
 * @param node_id node identifier
 * @param idx index of the register whose size to return
 * @return size of the idx-th register block
 */



/**
 * @brief Get a node's (only) register block address
 *
 * Equivalent to DT_REG_ADDR_BY_IDX(node_id, 0).
 * @param node_id node identifier
 * @return node's register block address
 */


/**
 * @brief 64-bit version of DT_REG_ADDR()
 *
 * This macro version adds the appropriate suffix for 64-bit unsigned
 * integer literals.
 * Note that this macro is equivalent to DT_REG_ADDR() in linker/ASM context.
 *
 * @param node_id node identifier
 * @return node's register block address
 */


/**
 * @brief Get a node's (only) register block size
 *
 * Equivalent to DT_REG_SIZE_BY_IDX(node_id, 0).
 * @param node_id node identifier
 * @return node's only register block's size
 */


/**
 * @brief Get a register block's base address by name
 * @param node_id node identifier
 * @param name lowercase-and-underscores register specifier name
 * @return address of the register block specified by name
 */



/**
 * @brief Like DT_REG_ADDR_BY_NAME(), but with a fallback to @p default_value
 * @param node_id node identifier
 * @param name lowercase-and-underscores register specifier name
 * @param default_value a fallback value to expand to
 * @return address of the register block specified by name if present,
 *         @p default_value otherwise
 */




/**
 * @brief 64-bit version of DT_REG_ADDR_BY_NAME()
 *
 * This macro version adds the appropriate suffix for 64-bit unsigned
 * integer literals.
 * Note that this macro is equivalent to DT_REG_ADDR_BY_NAME() in
 * linker/ASM context.
 *
 * @param node_id node identifier
 * @param name lowercase-and-underscores register specifier name
 * @return address of the register block specified by name
 */



/**
 * @brief Get a register block's size by name
 * @param node_id node identifier
 * @param name lowercase-and-underscores register specifier name
 * @return size of the register block specified by name
 */



/**
 * @brief Like DT_REG_SIZE_BY_NAME(), but with a fallback to @p default_value
 * @param node_id node identifier
 * @param name lowercase-and-underscores register specifier name
 * @param default_value a fallback value to expand to
 * @return size of the register block specified by name if present,
 *         @p default_value otherwise
 */





/**
 * @}
 */

/**
 * @defgroup devicetree-interrupts-prop interrupts property
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the number of interrupt sources for the node
 *
 * Use this instead of DT_PROP_LEN(node_id, interrupts).
 *
 * @param node_id node identifier
 * @return Number of interrupt specifiers in the node's "interrupts" property.
 */


/**
 * @brief Get the number of node labels that a node has
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *         foo {};
 *         bar: bar@1000 {};
 *         baz: baz2: baz@2000 {};
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_NUM_NODELABELS(DT_PATH(foo))      // 0
 *     DT_NUM_NODELABELS(DT_NODELABEL(bar)) // 1
 *     DT_NUM_NODELABELS(DT_NODELABEL(baz)) // 2
 * @endcode
 *
 * @param node_id node identifier
 * @return number of node labels that the node has
 */


/**
 * @brief Get the interrupt level for the node
 *
 * @param node_id node identifier
 * @return interrupt level
 */


/**
 * @brief Is @p idx a valid interrupt index?
 *
 * If this returns 1, then DT_IRQ_BY_IDX(node_id, idx) is valid.
 * If it returns 0, it is an error to use that macro with this index.
 * @param node_id node identifier
 * @param idx index to check
 * @return 1 if the idx is valid for the interrupt property
 *         0 otherwise.
 */



/**
 * @brief Does an interrupts property have a named cell specifier at an index?
 * If this returns 1, then DT_IRQ_BY_IDX(node_id, idx, cell) is valid.
 * If it returns 0, it is an error to use that macro.
 * @param node_id node identifier
 * @param idx index to check
 * @param cell named cell value whose existence to check
 * @return 1 if the named cell exists in the interrupt specifier at index idx
 *         0 otherwise.
 */



/**
 * @brief Equivalent to DT_IRQ_HAS_CELL_AT_IDX(node_id, 0, cell)
 * @param node_id node identifier
 * @param cell named cell value whose existence to check
 * @return 1 if the named cell exists in the interrupt specifier at index 0
 *         0 otherwise.
 */


/**
 * @brief Does an interrupts property have a named specifier value at an index?
 * If this returns 1, then DT_IRQ_BY_NAME(node_id, name, cell) is valid.
 * If it returns 0, it is an error to use that macro.
 * @param node_id node identifier
 * @param name lowercase-and-underscores interrupt specifier name
 * @return 1 if "name" is a valid named specifier
 *         0 otherwise.
 */



/**
 * @brief Get a value within an interrupt specifier at an index
 *
 * It might help to read the argument order as being similar to
 * "node->interrupts[index].cell".
 *
 * This can be used to get information about an individual interrupt
 * when a device generates more than one.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     my-serial: serial@abcd1234 {
 *             interrupts = < 33 0 >, < 34 1 >;
 *     };
 * @endcode
 *
 * Assuming the node's interrupt domain has "#interrupt-cells = <2>;" and
 * the individual cells in each interrupt specifier are named "irq" and
 * "priority" by the node's binding, here are some examples:
 *
 *     #define SERIAL DT_NODELABEL(my_serial)
 *
 *     Example usage                       Value
 *     -------------                       -----
 *     DT_IRQ_BY_IDX(SERIAL, 0, irq)          33
 *     DT_IRQ_BY_IDX(SERIAL, 0, priority)      0
 *     DT_IRQ_BY_IDX(SERIAL, 1, irq,          34
 *     DT_IRQ_BY_IDX(SERIAL, 1, priority)      1
 *
 * @param node_id node identifier
 * @param idx logical index into the interrupt specifier array
 * @param cell cell name specifier
 * @return the named value at the specifier given by the index
 */



/**
 * @brief Get a value within an interrupt specifier by name
 *
 * It might help to read the argument order as being similar to
 * `node->interrupts.name.cell`.
 *
 * This can be used to get information about an individual interrupt
 * when a device generates more than one, if the bindings give each
 * interrupt specifier a name.
 *
 * @param node_id node identifier
 * @param name lowercase-and-underscores interrupt specifier name
 * @param cell cell name specifier
 * @return the named value at the specifier given by the index
 */



/**
 * @brief Get an interrupt specifier's value
 * Equivalent to DT_IRQ_BY_IDX(node_id, 0, cell).
 * @param node_id node identifier
 * @param cell cell name specifier
 * @return the named value at that index
 */


/**
 * @brief Get an interrupt specifier's interrupt controller by index
 *
 * @code{.dts}
 *     gpio0: gpio0 {
 *             interrupt-controller;
 *             #interrupt-cells = <2>;
 *     };
 *
 *     foo: foo {
 *             interrupt-parent = <&gpio0>;
 *             interrupts = <1 1>, <2 2>;
 *     };
 *
 *     bar: bar {
 *             interrupts-extended = <&gpio0 3 3>, <&pic0 4>;
 *     };
 *
 *     pic0: pic0 {
 *             interrupt-controller;
 *             #interrupt-cells = <1>;
 *
 *             qux: qux {
 *                     interrupts = <5>, <6>;
 *                     interrupt-names = "int1", "int2";
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 *     DT_IRQ_INTC_BY_IDX(DT_NODELABEL(foo), 0) // &gpio0
 *     DT_IRQ_INTC_BY_IDX(DT_NODELABEL(foo), 1) // &gpio0
 *     DT_IRQ_INTC_BY_IDX(DT_NODELABEL(bar), 0) // &gpio0
 *     DT_IRQ_INTC_BY_IDX(DT_NODELABEL(bar), 1) // &pic0
 *     DT_IRQ_INTC_BY_IDX(DT_NODELABEL(qux), 0) // &pic0
 *     DT_IRQ_INTC_BY_IDX(DT_NODELABEL(qux), 1) // &pic0
 *
 * @param node_id node identifier
 * @param idx interrupt specifier's index
 * @return node_id of interrupt specifier's interrupt controller
 */



/**
 * @brief Get an interrupt specifier's interrupt controller by name
 *
 * @code{.dts}
 *     gpio0: gpio0 {
 *             interrupt-controller;
 *             #interrupt-cells = <2>;
 *     };
 *
 *     foo: foo {
 *             interrupt-parent = <&gpio0>;
 *             interrupts = <1 1>, <2 2>;
 *             interrupt-names = "int1", "int2";
 *     };
 *
 *     bar: bar {
 *             interrupts-extended = <&gpio0 3 3>, <&pic0 4>;
 *             interrupt-names = "int1", "int2";
 *     };
 *
 *     pic0: pic0 {
 *             interrupt-controller;
 *             #interrupt-cells = <1>;
 *
 *             qux: qux {
 *                     interrupts = <5>, <6>;
 *                     interrupt-names = "int1", "int2";
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 *     DT_IRQ_INTC_BY_NAME(DT_NODELABEL(foo), int1) // &gpio0
 *     DT_IRQ_INTC_BY_NAME(DT_NODELABEL(foo), int2) // &gpio0
 *     DT_IRQ_INTC_BY_NAME(DT_NODELABEL(bar), int1) // &gpio0
 *     DT_IRQ_INTC_BY_NAME(DT_NODELABEL(bar), int2) // &pic0
 *     DT_IRQ_INTC_BY_NAME(DT_NODELABEL(qux), int1) // &pic0
 *     DT_IRQ_INTC_BY_NAME(DT_NODELABEL(qux), int2) // &pic0
 *
 * @param node_id node identifier
 * @param name interrupt specifier's name
 * @return node_id of interrupt specifier's interrupt controller
 */



/**
 * @brief Get an interrupt specifier's interrupt controller
 * @note Equivalent to DT_IRQ_INTC_BY_IDX(node_id, 0)
 *
 * @code{.dts}
 *     gpio0: gpio0 {
 *             interrupt-controller;
 *             #interrupt-cells = <2>;
 *     };
 *
 *     foo: foo {
 *             interrupt-parent = <&gpio0>;
 *             interrupts = <1 1>;
 *     };
 *
 *     bar: bar {
 *             interrupts-extended = <&gpio0 3 3>;
 *     };
 *
 *     pic0: pic0 {
 *             interrupt-controller;
 *             #interrupt-cells = <1>;
 *
 *             qux: qux {
 *                     interrupts = <5>;
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 *     DT_IRQ_INTC(DT_NODELABEL(foo)) // &gpio0
 *     DT_IRQ_INTC(DT_NODELABEL(bar)) // &gpio0
 *     DT_IRQ_INTC(DT_NODELABEL(qux)) // &pic0
 *
 * @param node_id node identifier
 * @return node_id of interrupt specifier's interrupt controller
 * @see DT_IRQ_INTC_BY_IDX()
 */



/**
 * @cond INTERNAL_HIDDEN
 */

/* DT helper macro to encode a node's IRQN to level 1 according to the multi-level scheme */

/* DT helper macro to encode a node's IRQN to level 2 according to the multi-level scheme */



/* DT helper macro to encode a node's IRQN to level 3 according to the multi-level scheme */




/* DT helper macro for the macros above */


/**
 * DT helper macro to encode a node's interrupt number according to the Zephyr's multi-level scheme
 * See doc/kernel/services/interrupts.rst for details
 */



/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief Get the node's Zephyr interrupt number at index
 * If @kconfig{CONFIG_MULTI_LEVEL_INTERRUPTS} is enabled, the interrupt number at index will be
 * multi-level encoded
 * @param node_id node identifier
 * @param idx logical index into the interrupt specifier array
 * @return the Zephyr interrupt number
 */





/**
 * @brief Get a node's (only) irq number
 *
 * Equivalent to DT_IRQ(node_id, irq). This is provided as a convenience
 * for the common case where a node generates exactly one interrupt,
 * and the IRQ number is in a cell named `irq`.
 *
 * @param node_id node identifier
 * @return the interrupt number for the node's only interrupt
 */


/**
 * @}
 */

/**
 * @defgroup devicetree-generic-chosen Chosen nodes
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get a node identifier for a `/chosen` node property
 *
 * This is only valid to call if `DT_HAS_CHOSEN(prop)` is 1.
 * @param prop lowercase-and-underscores property name for
 *             the /chosen node
 * @return a node identifier for the chosen node property
 */


/**
 * @brief Test if the devicetree has a `/chosen` node
 * @param prop lowercase-and-underscores devicetree property
 * @return 1 if the chosen property exists and refers to a node,
 *         0 otherwise
 */


/**
 * @}
 */

/**
 * @defgroup devicetree-generic-foreach "For-each" macros
 * @ingroup devicetree
 * @{
 *
 * IMPORTANT: you can't use the DT for-each macros in their own expansions.
 *
 * For example, something like this won't work the way you might expect:
 *
 * @code{.c}
 * #define FOO(node_id) [...] DT_FOREACH_NODE(...) [...]
 * DT_FOREACH_NODE(FOO)
 * @endcode
 *
 * In this example, the C preprocessor won't expand the
 * DT_FOREACH_NODE() macro inside of FOO() while it's already
 * expanding DT_FOREACH_NODE() at the top level of the file.
 *
 * This is true of any macro, not just DT_FOREACH_NODE(). The C
 * language works this way to avoid infinite recursions inside of
 * macro expansions.
 *
 * If you need to "nest" calls to one of these macros, you can work
 * around this preprocessor limitation by using a different, related
 * macro instead, like this:
 *
 * @code{.c}
 * #define BAR(node_id) [...] DT_FOREACH_NODE_VARGS(...) [...]
 * DT_FOREACH_NODE(BAR)
 * @endcode
 *
 * Here, we use DT_FOREACH_NODE_VARGS() "inside" BAR() "inside"
 * DT_FOREACH_NODE(). Because of this, the preprocessor will expand
 * both DT_FOREACH_NODE_VARGS() and DT_FOREACH_NODE() as expected.
 */

/**
 * @brief Invokes @p fn for every node in the tree.
 *
 * The macro @p fn must take one parameter, which will be a node
 * identifier. The macro is expanded once for each node in the tree.
 * The order that nodes are visited in is not specified.
 *
 * @param fn macro to invoke
 */


/**
 * @brief Invokes @p fn for every node in the tree with multiple arguments.
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the node. The remaining are passed-in by the caller.
 *
 * The macro is expanded once for each node in the tree. The order that nodes
 * are visited in is not specified.
 *
 * @param fn macro to invoke
 * @param ... variable number of arguments to pass to @p fn
 */


/**
 * @brief Invokes @p fn for every status `okay` node in the tree.
 *
 * The macro @p fn must take one parameter, which will be a node
 * identifier. The macro is expanded once for each node in the tree
 * with status `okay` (as usual, a missing status property is treated
 * as status `okay`). The order that nodes are visited in is not
 * specified.
 *
 * @param fn macro to invoke
 */


/**
 * @brief Invokes @p fn for every status `okay` node in the tree with multiple
 *        arguments.
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the node. The remaining are passed-in by the caller.
 *
 * The macro is expanded once for each node in the tree with status `okay` (as
 * usual, a missing status property is treated as status `okay`). The order
 * that nodes are visited in is not specified.
 *
 * @param fn macro to invoke
 * @param ... variable number of arguments to pass to @p fn
 */


/**
 * @brief Invokes @p fn for each ancestor of @p node_id
 *
 * The macro @p fn must take one parameter, which will be the identifier
 * of a child node of @p node_id to enable traversal of all ancestor nodes.
 *
 * The ancestor will be iterated over in the same order as they
 * appear in the final devicetree.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n: node1 {
 *             foobar = "foo1";
 *
 *             n_2: node2 {
 *                        foobar = "foo2";
 *
 *                        n_3: node3 {
 *                                   foobar = "foo3";
 *                        };
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     #define GET_PROP(n) DT_PROP(n, foobar),
 *
 *     const char *ancestor_names[] = {
 *         DT_FOREACH_ANCESTOR(DT_NODELABEL(n_3), GET_PROP)
 *     };
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *     const char *ancestor_names[] = {
 *         "foo2", "foo1",
 *     };
 * @endcode
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 */



/**
 * @brief Invokes @p fn for each child of @p node_id
 *
 * The macro @p fn must take one parameter, which will be the node
 * identifier of a child node of @p node_id.
 *
 * The children will be iterated over in the same order as they
 * appear in the final devicetree.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n: node {
 *             child-1 {
 *                     foobar = "foo";
 *             };
 *             child-2 {
 *                     foobar = "bar";
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     #define FOOBAR_AND_COMMA(node_id) DT_PROP(node_id, foobar),
 *
 *     const char *child_foobars[] = {
 *         DT_FOREACH_CHILD(DT_NODELABEL(n), FOOBAR_AND_COMMA)
 *     };
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *     const char *child_foobars[] = {
 *         "foo", "bar",
 *     };
 * @endcode
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 */



/**
 * @brief Invokes @p fn for each child of @p node_id with a separator
 *
 * The macro @p fn must take one parameter, which will be the node
 * identifier of a child node of @p node_id.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n: node {
 *             child-1 {
 *                     ...
 *             };
 *             child-2 {
 *                     ...
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     const char *child_names[] = {
 *         DT_FOREACH_CHILD_SEP(DT_NODELABEL(n), DT_NODE_FULL_NAME, (,))
 *     };
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *     const char *child_names[] = {
 *         "child-1", "child-2"
 *     };
 * @endcode
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 */



/**
 * @brief Invokes @p fn for each child of @p node_id with multiple arguments
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the child node. The remaining are passed-in by the caller.
 *
 * The children will be iterated over in the same order as they
 * appear in the final devicetree.
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_FOREACH_CHILD
 */



/**
 * @brief Invokes @p fn for each child of @p node_id with separator and multiple
 *        arguments.
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the child node. The remaining are passed-in by the caller.
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_FOREACH_CHILD_VARGS
 */



/**
 * @brief Call @p fn on the child nodes with status `okay`
 *
 * The macro @p fn should take one argument, which is the node
 * identifier for the child node.
 *
 * As usual, both a missing status and an `ok` status are
 * treated as `okay`.
 *
 * The children will be iterated over in the same order as they
 * appear in the final devicetree.
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 */



/**
 * @brief Call @p fn on the child nodes with status `okay` with separator
 *
 * The macro @p fn should take one argument, which is the node
 * identifier for the child node.
 *
 * As usual, both a missing status and an `ok` status are
 * treated as `okay`.
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 *
 * @see DT_FOREACH_CHILD_STATUS_OKAY
 */



/**
 * @brief Call @p fn on the child nodes with status `okay` with multiple
 * arguments
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the child node. The remaining are passed-in by the caller.
 *
 * As usual, both a missing status and an `ok` status are
 * treated as `okay`.
 *
 * The children will be iterated over in the same order as they
 * appear in the final devicetree.
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_FOREACH_CHILD_STATUS_OKAY
 */



/**
 * @brief Call @p fn on the child nodes with status `okay` with separator and
 * multiple arguments
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the child node. The remaining are passed-in by the caller.
 *
 * As usual, both a missing status and an `ok` status are
 * treated as `okay`.
 *
 * @param node_id node identifier
 * @param fn macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_FOREACH_CHILD_SEP_STATUS_OKAY
 */



/**
 * @brief Invokes @p fn for each element in the value of property @p prop.
 *
 * The macro @p fn must take three parameters: fn(node_id, prop, idx).
 * @p node_id and @p prop are the same as what is passed to
 * DT_FOREACH_PROP_ELEM(), and @p idx is the current index into the array.
 * The @p idx values are integer literals starting from 0.
 *
 * The @p prop argument must refer to a property that can be passed to
 * DT_PROP_LEN().
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n: node {
 *             my-ints = <1 2 3>;
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     #define TIMES_TWO(node_id, prop, idx)  *	       (2 * DT_PROP_BY_IDX(node_id, prop, idx)),
,
 *
 *     int array[] = {
 *             DT_FOREACH_PROP_ELEM(DT_NODELABEL(n), my_ints, TIMES_TWO)
 *     };
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *     int array[] = {
 *             (2 * 1), (2 * 2), (2 * 3),
 *     };
 * @endcode
 *
 * In general, this macro expands to:
 *
 *     fn(node_id, prop, 0) fn(node_id, prop, 1) [...] fn(node_id, prop, n-1)
 *
 * where `n` is the number of elements in @p prop, as it would be
 * returned by `DT_PROP_LEN(node_id, prop)`.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param fn macro to invoke
 * @see DT_PROP_LEN
 */



/**
 * @brief Invokes @p fn for each element in the value of property @p prop with
 *        separator.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n: node {
 *             my-gpios = <&gpioa 0 GPIO_ACTICE_HIGH>,
 *                        <&gpiob 1 GPIO_ACTIVE_HIGH>;
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     struct gpio_dt_spec specs[] = {
 *             DT_FOREACH_PROP_ELEM_SEP(DT_NODELABEL(n), my_gpios,
 *                                      GPIO_DT_SPEC_GET_BY_IDX, (,))
 *     };
 * @endcode
 *
 * This expands as a first step to:
 *
 * @code{.c}
 *     struct gpio_dt_spec specs[] = {
 *             GPIO_DT_SPEC_GET_BY_IDX(DT_NODELABEL(n), my_gpios, 0),
 *             GPIO_DT_SPEC_GET_BY_IDX(DT_NODELABEL(n), my_gpios, 1)
 *     };
 * @endcode
 *
 * The @p prop parameter has the same restrictions as the same parameter
 * given to DT_FOREACH_PROP_ELEM().
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param fn macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 *
 * @see DT_FOREACH_PROP_ELEM
 */



/**
 * @brief Invokes @p fn for each element in the value of property @p prop with
 * multiple arguments.
 *
 * The macro @p fn must take multiple parameters:
 * `fn(node_id, prop, idx, ...)`. @p node_id and @p prop are the same as what
 * is passed to DT_FOREACH_PROP_ELEM(), and @p idx is the current index into
 * the array. The @p idx values are integer literals starting from 0. The
 * remaining arguments are passed-in by the caller.
 *
 * The @p prop parameter has the same restrictions as the same parameter
 * given to DT_FOREACH_PROP_ELEM().
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param fn macro to invoke
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_FOREACH_PROP_ELEM
 */



/**
 * @brief Invokes @p fn for each element in the value of property @p prop with
 * multiple arguments and a separator.
 *
 * The @p prop parameter has the same restrictions as the same parameter
 * given to DT_FOREACH_PROP_ELEM().
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @param fn macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 * @param ... variable number of arguments to pass to fn
 *
 * @see DT_FOREACH_PROP_ELEM_VARGS
 */




/**
 * @brief Invokes @p fn for each status `okay` node of a compatible.
 *
 * This macro expands to:
 *
 *     fn(node_id_1) fn(node_id_2) ... fn(node_id_n)
 *
 * where each `node_id_<i>` is a node identifier for some node with
 * compatible @p compat and status `okay`. Whitespace is added between
 * expansions as shown above.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             a {
 *                     compatible = "foo";
 *                     status = "okay";
 *             };
 *             b {
 *                     compatible = "foo";
 *                     status = "disabled";
 *             };
 *             c {
 *                     compatible = "foo";
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_FOREACH_STATUS_OKAY(foo, DT_NODE_PATH)
 * @endcode
 *
 * This expands to one of the following:
 *
 *     "/a" "/c"
 *     "/c" "/a"
 *
 * "One of the following" is because no guarantees are made about the
 * order that node identifiers are passed to @p fn in the expansion.
 *
 * (The `/c` string literal is present because a missing status
 * property is always treated as if the status were set to `okay`.)
 *
 * Note also that @p fn is responsible for adding commas, semicolons,
 * or other terminators as needed.
 *
 * @param compat lowercase-and-underscores devicetree compatible
 * @param fn Macro to call for each enabled node. Must accept a
 *           node_id as its only parameter.
 */





/**
 * @brief Invokes @p fn for each status `okay` node of a compatible
 *        with multiple arguments.
 *
 * This is like DT_FOREACH_STATUS_OKAY() except you can also pass
 * additional arguments to @p fn.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     / {
 *             a {
 *                     compatible = "foo";
 *                     val = <3>;
 *             };
 *             b {
 *                     compatible = "foo";
 *                     val = <4>;
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     #define MY_FN(node_id, operator) DT_PROP(node_id, val) operator
 *     x = DT_FOREACH_STATUS_OKAY_VARGS(foo, MY_FN, +) 0;
 * @endcode
 *
 * This expands to one of the following:
 *
 * @code{.c}
 *     x = 3 + 4 + 0;
 *     x = 4 + 3 + 0;
 * @endcode
 *
 * i.e. it sets `x` to 7. As with DT_FOREACH_STATUS_OKAY(), there are no
 * guarantees about the order nodes appear in the expansion.
 *
 * @param compat lowercase-and-underscores devicetree compatible
 * @param fn Macro to call for each enabled node. Must accept a
 *           node_id as its only parameter.
 * @param ... Additional arguments to pass to @p fn
 */






/**
 * @brief Call @p fn on all nodes with compatible `compat`
 *        and status `okay` with multiple arguments
 *
 *
 * @param compat lowercase-and-underscores devicetree compatible
 * @param fn Macro to call for each enabled node. Must accept a
 *           devicetree compatible and instance number.
 * @param ... Additional arguments to pass to @p fn
 *
 * @see DT_INST_FOREACH_STATUS_OKAY_VARGS
 */







/**
 * @brief Invokes @p fn for each node label of a given node
 *
 * The order of the node labels in this macro's expansion matches
 * the order in the final devicetree, with duplicates removed.
 *
 * Node labels are passed to @p fn as tokens. Note that devicetree
 * node labels are always valid C tokens (see "6.2 Labels" in
 * Devicetree Specification v0.4 for details). The node labels are
 * passed as tokens to @p fn as-is, without any lowercasing or
 * conversion of special characters to underscores.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     foo: bar: FOO: node@deadbeef {};
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     int foo = 1;
 *     int bar = 2;
 *     int FOO = 3;
 *
 *     #define FN(nodelabel) + nodelabel
 *     int sum = 0 DT_FOREACH_NODELABEL(DT_NODELABEL(foo), FN)
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *     int sum = 0 + 1 + 2 + 3;
 * @endcode
 *
 * @param node_id node identifier whose node labels to use
 * @param fn macro which will be passed each node label in order
 */


/**
 * @brief Invokes @p fn for each node label of a given node with
 *        multiple arguments.
 *
 * This is like DT_FOREACH_NODELABEL() except you can also pass
 * additional arguments to @p fn.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     foo: bar: node@deadbeef {};
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     int foo = 0;
 *     int bar = 1;
 *
 *     #define VAR_PLUS(nodelabel, to_add) int nodelabel ## _added = nodelabel + to_add;
 *
 *     DT_FOREACH_NODELABEL_VARGS(DT_NODELABEL(foo), VAR_PLUS, 1)
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *     int foo = 0;
 *     int bar = 1;
 *     int foo_added = foo + 1;
 *     int bar_added = bar + 1;
 * @endcode
 *
 * @param node_id node identifier whose node labels to use
 * @param fn macro which will be passed each node label in order
 * @param ... additional arguments to pass to @p fn
 */



/**
 * @}
 */

/**
 * @defgroup devicetree-generic-exist Existence checks
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Does a node identifier refer to a node?
 *
 * Tests whether a node identifier refers to a node which exists, i.e.
 * is defined in the devicetree.
 *
 * It doesn't matter whether or not the node has a matching binding,
 * or what the node's status value is. This is purely a check of
 * whether the node exists at all.
 *
 * @param node_id a node identifier
 * @return 1 if the node identifier refers to a node,
 *         0 otherwise.
 */


/**
 * @brief Does a node identifier refer to a node with a status?
 *
 * Example uses:
 *
 * @code{.c}
 *     DT_NODE_HAS_STATUS(DT_PATH(soc, i2c_12340000), okay)
 *     DT_NODE_HAS_STATUS(DT_PATH(soc, i2c_12340000), disabled)
 * @endcode
 *
 * Tests whether a node identifier refers to a node which:
 *
 * - exists in the devicetree, and
 * - has a status property matching the second argument
 *   (except that either a missing status or an `ok` status
 *   in the devicetree is treated as if it were `okay` instead)
 *
 * @param node_id a node identifier
 * @param status a status as one of the tokens okay or disabled, not a string
 * @return 1 if the node has the given status, 0 otherwise.
 */



/**
 * @brief Does a node identifier refer to a node with a status `okay`?
 *
 * Example uses:
 *
 * @code{.c}
 *     DT_NODE_HAS_STATUS_OKAY(DT_PATH(soc, i2c_12340000))
 * @endcode
 *
 * Tests whether a node identifier refers to a node which:
 *
 * - exists in the devicetree, and
 * - has a status property as `okay`
 *
 * As usual, both a missing status and an `ok` status are treated as
 * `okay`.
 *
 * @param node_id a node identifier
 * @return 1 if the node has status as `okay`, 0 otherwise.
 */


/**
 * @brief Does the devicetree have a status `okay` node with a compatible?
 *
 * Test for whether the devicetree has any nodes with status `okay`
 * and the given compatible. That is, this returns 1 if and only if
 * there is at least one @p node_id for which both of these
 * expressions return 1:
 *
 * @code{.c}
 *     DT_NODE_HAS_STATUS(node_id, okay)
 *     DT_NODE_HAS_COMPAT(node_id, compat)
 * @endcode
 *
 * As usual, both a missing status and an `ok` status are treated as
 * `okay`.
 *
 * @param compat lowercase-and-underscores compatible, without quotes
 * @return 1 if both of the above conditions are met, 0 otherwise
 */



/**
 * @brief Get the number of instances of a given compatible with
 *        status `okay`
 * @param compat lowercase-and-underscores compatible, without quotes
 * @return Number of instances with status `okay`
 */




/**
 * @brief Does a devicetree node match a compatible?
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     n: node {
 *             compatible = "vnd,specific-device", "generic-device";
 *     }
 * @endcode
 *
 * Example usages which evaluate to 1:
 *
 * @code{.c}
 *     DT_NODE_HAS_COMPAT(DT_NODELABEL(n), vnd_specific_device)
 *     DT_NODE_HAS_COMPAT(DT_NODELABEL(n), generic_device)
 * @endcode
 *
 * This macro only uses the value of the compatible property. Whether
 * or not a particular compatible has a matching binding has no effect
 * on its value, nor does the node's status.
 *
 * @param node_id node identifier
 * @param compat lowercase-and-underscores compatible, without quotes
 * @return 1 if the node's compatible property contains @p compat,
 *         0 otherwise.
 */



/**
 * @brief Does a devicetree node have a compatible and status?
 *
 * This is equivalent to:
 *
 * @code{.c}
 *     (DT_NODE_HAS_COMPAT(node_id, compat) &&
 *      DT_NODE_HAS_STATUS(node_id, status))
 * @endcode
 *
 * @param node_id node identifier
 * @param compat lowercase-and-underscores compatible, without quotes
 * @param status okay or disabled as a token, not a string
 */



/**
 * @brief Does a devicetree node have a property?
 *
 * Tests whether a devicetree node has a property defined.
 *
 * This tests whether the property is defined at all, not whether a
 * boolean property is true or false. To get a boolean property's
 * truth value, use DT_PROP(node_id, prop) instead.
 *
 * @param node_id node identifier
 * @param prop lowercase-and-underscores property name
 * @return 1 if the node has the property, 0 otherwise.
 */




/**
 * @brief Does a phandle array have a named cell specifier at an index?
 *
 * If this returns 1, then the phandle-array property @p pha has a cell
 * named @p cell at index @p idx, and therefore DT_PHA_BY_IDX(node_id,
 * pha, idx, cell) is valid. If it returns 0, it's an error to use
 * DT_PHA_BY_IDX() with the same arguments.
 *
 * @param node_id node identifier
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param idx index to check within @p pha
 * @param cell lowercase-and-underscores cell name whose existence to check
 *             at index @p idx
 * @return 1 if the named cell exists in the specifier at index idx,
 *         0 otherwise.
 */




/**
 * @brief Equivalent to DT_PHA_HAS_CELL_AT_IDX(node_id, pha, 0, cell)
 * @param node_id node identifier
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param cell lowercase-and-underscores cell name whose existence to check
 *             at index @p idx
 * @return 1 if the named cell exists in the specifier at index 0,
 *         0 otherwise.
 */



/**
 * @}
 */

/**
 * @defgroup devicetree-generic-bus Bus helpers
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Node's bus controller
 *
 * Get the node identifier of the node's bus controller. This can be
 * used with DT_PROP() to get properties of the bus controller.
 *
 * It is an error to use this with nodes which do not have bus
 * controllers.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     i2c@deadbeef {
 *             status = "okay";
 *             clock-frequency = < 100000 >;
 *
 *             i2c_device: accelerometer@12 {
 *                     ...
 *             };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     DT_PROP(DT_BUS(DT_NODELABEL(i2c_device)), clock_frequency) // 100000
 * @endcode
 *
 * @param node_id node identifier
 * @return a node identifier for the node's bus controller
 */


/**
 * @brief Is a node on a bus of a given type?
 *
 * Example devicetree overlay:
 *
 * @code{.dts}
 *     &i2c0 {
 *            temp: temperature-sensor@76 {
 *                     compatible = "vnd,some-sensor";
 *                     reg = <0x76>;
 *            };
 *     };
 * @endcode
 *
 * Example usage, assuming `i2c0` is an I2C bus controller node, and
 * therefore `temp` is on an I2C bus:
 *
 * @code{.c}
 *     DT_ON_BUS(DT_NODELABEL(temp), i2c) // 1
 *     DT_ON_BUS(DT_NODELABEL(temp), spi) // 0
 * @endcode
 *
 * @param node_id node identifier
 * @param bus lowercase-and-underscores bus type as a C token (i.e.
 *            without quotes)
 * @return 1 if the node is on a bus of the given type,
 *         0 otherwise
 */


/**
 * @}
 */

/**
 * @defgroup devicetree-inst Instance-based devicetree APIs
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Node identifier for an instance of a `DT_DRV_COMPAT` compatible
 * @param inst instance number
 * @return a node identifier for the node with `DT_DRV_COMPAT` compatible and
 *         instance number @p inst
 */


/**
 * @brief Get a `DT_DRV_COMPAT` parent's node identifier
 * @param inst instance number
 * @return a node identifier for the instance's parent
 *
 * @see DT_PARENT
 */


/**
 * @brief Get a `DT_DRV_COMPAT` grandparent's node identifier
 * @param inst instance number
 * @return a node identifier for the instance's grandparent
 *
 * @see DT_GPARENT
 */


/**
 * @brief Get a node identifier for a child node of DT_DRV_INST(inst)
 *
 * @param inst instance number
 * @param child lowercase-and-underscores child node name
 * @return node identifier for the node with the name referred to by 'child'
 *
 * @see DT_CHILD
 */



/**
 * @brief Get the number of child nodes of a given node
 *
 * This is equivalent to @see
 * <tt>DT_CHILD_NUM(DT_DRV_INST(inst))</tt>.
 *
 * @param inst Devicetree instance number
 * @return Number of child nodes
 */


/**
 * @brief Get the number of child nodes of a given node
 *
 * This is equivalent to @see
 * <tt>DT_CHILD_NUM_STATUS_OKAY(DT_DRV_INST(inst))</tt>.
 *
 * @param inst Devicetree instance number
 * @return Number of child nodes which status are okay
 */



/**
 * @brief Get a string array of DT_DRV_INST(inst)'s node labels
 *
 * Equivalent to DT_NODELABEL_STRING_ARRAY(DT_DRV_INST(inst)).
 *
 * @param inst instance number
 * @return an array initializer for an array of the instance's node labels as strings
 */


/**
 * @brief Get the number of node labels by instance number
 *
 * Equivalent to DT_NUM_NODELABELS(DT_DRV_INST(inst)).
 *
 * @param inst instance number
 * @return the number of node labels that the node with that instance number has
 */


/**
 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst).
 *
 * The macro @p fn should take one argument, which is the node
 * identifier for the child node.
 *
 * The children will be iterated over in the same order as they
 * appear in the final devicetree.
 *
 * @param inst instance number
 * @param fn macro to invoke on each child node identifier
 *
 * @see DT_FOREACH_CHILD
 */



/**
 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with a separator
 *
 * The macro @p fn should take one argument, which is the node
 * identifier for the child node.
 *
 * @param inst instance number
 * @param fn macro to invoke on each child node identifier
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 *
 * @see DT_FOREACH_CHILD_SEP
 */



/**
 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst).
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the child node. The remaining are passed-in by the caller.
 *
 * The children will be iterated over in the same order as they
 * appear in the final devicetree.
 *
 * @param inst instance number
 * @param fn macro to invoke on each child node identifier
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_FOREACH_CHILD
 */



/**
 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with separator.
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the child node. The remaining are passed-in by the caller.
 *
 * @param inst instance number
 * @param fn macro to invoke on each child node identifier
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_FOREACH_CHILD_SEP_VARGS
 */



/**
 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with status `okay`.
 *
 * The macro @p fn should take one argument, which is the node
 * identifier for the child node.
 *
 * @param inst instance number
 * @param fn macro to invoke on each child node identifier
 *
 * @see DT_FOREACH_CHILD_STATUS_OKAY
 */



/**
 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with status `okay`
 * and with separator.
 *
 * The macro @p fn should take one argument, which is the node
 * identifier for the child node.
 *
 * @param inst instance number
 * @param fn macro to invoke on each child node identifier
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 *
 * @see DT_FOREACH_CHILD_STATUS_OKAY_SEP
 */



/**
 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with status `okay`
 * and multiple arguments.
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the child node. The remaining are passed-in by the caller.
 *
 * @param inst instance number
 * @param fn macro to invoke on each child node identifier
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_FOREACH_CHILD_STATUS_OKAY_VARGS
 */



/**
 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with status `okay`
 * and with separator and multiple arguments.
 *
 * The macro @p fn takes multiple arguments. The first should be the node
 * identifier for the child node. The remaining are passed-in by the caller.
 *
 * @param inst instance number
 * @param fn macro to invoke on each child node identifier
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_FOREACH_CHILD_STATUS_OKAY_SEP_VARGS
 */



/**
 * @brief Get a `DT_DRV_COMPAT` property array value's index into its enumeration values
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return zero-based index of the property's value in its enum: list
 */



/**
 * @brief Get a `DT_DRV_COMPAT` value's index into its enumeration values
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @return zero-based index of the property's value in its enum: list
 */



/**
 * @brief Like DT_INST_ENUM_IDX_BY_IDX(), but with a fallback to a default enum index
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @param default_idx_value a fallback index value to expand to
 * @return zero-based index of the property's value in its enum if present,
 *         default_idx_value otherwise
 */



/**
 * @brief Like DT_INST_ENUM_IDX(), but with a fallback to a default enum index
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param default_idx_value a fallback index value to expand to
 * @return zero-based index of the property's value in its enum if present,
 *         default_idx_value otherwise
 */



/**
 * @brief Does a `DT_DRV_COMPAT` enumeration property have a given value by index?
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @param value lowercase-and-underscores enumeration value
 * @return zero-based index of the property's value in its enum
 */



/**
 * @brief Does a `DT_DRV_COMPAT` enumeration property have a given value?
 *
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param value lowercase-and-underscores enumeration value
 * @return 1 if the node property has the value @a value, 0 otherwise.
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance property
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @return a representation of the property's value
 */


/**
 * @brief Get a `DT_DRV_COMPAT` property length
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @return logical length of the property
 */


/**
 * @brief Is index @p idx valid for an array type property
 *        on a `DT_DRV_COMPAT` instance?
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param idx index to check
 * @return 1 if @p idx is a valid index into the given property,
 *         0 otherwise.
 */



/**
 * @brief Is name @p name available in a `foo-names` property?
 * @param inst instance number
 * @param prop a lowercase-and-underscores `prop-names` type property
 * @param name a lowercase-and-underscores name to check
 * @return An expression which evaluates to 1 if @p name is an available
 *         name into the given property, and 0 otherwise.
 */



/**
 * @brief Get a `DT_DRV_COMPAT` element value in an array property
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return a representation of the idx-th element of the property
 */



/**
 * @brief Like DT_INST_PROP(), but with a fallback to @p default_value
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param default_value a fallback value to expand to
 * @return DT_INST_PROP(inst, prop) or @p default_value
 */



/**
 * @brief Like DT_INST_PROP_LEN(), but with a fallback to @p default_value
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param default_value a fallback value to expand to
 * @return DT_INST_PROP_LEN(inst, prop) or @p default_value
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's string property's value as a
 *        token.
 *
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @return the value of @p prop as a token, i.e. without any quotes
 *         and with special characters converted to underscores
 */



/**
 * @brief Like DT_INST_STRING_TOKEN(), but uppercased.
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @return the value of @p prop as an uppercased token, i.e. without
 *         any quotes and with special characters converted to underscores
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's string property's value as
 *        an unquoted sequence of tokens.
 *
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @return the value of @p prop as a sequence of tokens, with no quotes
 */



/**
 * @brief Get an element out of string-array property as a token.
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return the element in @p prop at index @p idx as a token
 */



/**
 * @brief Like DT_INST_STRING_TOKEN_BY_IDX(), but uppercased.
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return the element in @p prop at index @p idx as an uppercased token
 */



/**
 * @brief Get an element out of string-array property as an unquoted sequence of tokens.
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param idx the index to get
 * @return the value of @p prop at index @p idx as a sequence of tokens, with no quotes
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's property value from a phandle's node
 * @param inst instance number
 * @param ph lowercase-and-underscores property of @p inst
 *           with type `phandle`
 * @param prop lowercase-and-underscores property of the phandle's node
 * @return the value of @p prop as described in the DT_PROP() documentation
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's property value from a phandle in a
 * property.
 * @param inst instance number
 * @param phs lowercase-and-underscores property with type `phandle`,
 *            `phandles`, or `phandle-array`
 * @param idx logical index into "phs", which must be zero if "phs"
 *            has type `phandle`
 * @param prop lowercase-and-underscores property of the phandle's node
 * @return the value of @p prop as described in the DT_PROP() documentation
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's phandle-array specifier value at an index
 * @param inst instance number
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param idx logical index into the property @p pha
 * @param cell binding's cell name within the specifier at index @p idx
 * @return the value of the cell inside the specifier at index @p idx
 */



/**
 * @brief Like DT_INST_PHA_BY_IDX(), but with a fallback to default_value
 * @param inst instance number
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param idx logical index into the property @p pha
 * @param cell binding's cell name within the specifier at index @p idx
 * @param default_value a fallback value to expand to
 * @return DT_INST_PHA_BY_IDX(inst, pha, idx, cell) or default_value
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's phandle-array specifier value
 * Equivalent to DT_INST_PHA_BY_IDX(inst, pha, 0, cell)
 * @param inst instance number
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param cell binding's cell name for the specifier at @p pha index 0
 * @return the cell value
 */


/**
 * @brief Like DT_INST_PHA(), but with a fallback to default_value
 * @param inst instance number
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param cell binding's cell name for the specifier at @p pha index 0
 * @param default_value a fallback value to expand to
 * @return DT_INST_PHA(inst, pha, cell) or default_value
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's value within a phandle-array
 * specifier by name
 * @param inst instance number
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param name lowercase-and-underscores name of a specifier in @p pha
 * @param cell binding's cell name for the named specifier
 * @return the cell value
 */



/**
 * @brief Like DT_INST_PHA_BY_NAME(), but with a fallback to default_value
 * @param inst instance number
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param name lowercase-and-underscores name of a specifier in @p pha
 * @param cell binding's cell name for the named specifier
 * @param default_value a fallback value to expand to
 * @return DT_INST_PHA_BY_NAME(inst, pha, name, cell) or default_value
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's phandle node identifier from a
 * phandle array by name
 * @param inst instance number
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param name lowercase-and-underscores name of an element in @p pha
 * @return node identifier for the phandle at the element named "name"
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's node identifier for a phandle in
 * a property.
 * @param inst instance number
 * @param prop lowercase-and-underscores property name in @p inst
 *             with type `phandle`, `phandles` or `phandle-array`
 * @param idx index into @p prop
 * @return a node identifier for the phandle at index @p idx in @p prop
 */



/**
 * @brief Get a `DT_DRV_COMPAT` instance's node identifier for a phandle
 * property's value
 * @param inst instance number
 * @param prop lowercase-and-underscores property of @p inst
 *             with type `phandle`
 * @return a node identifier for the node pointed to by "ph"
 */


/**
 * @brief is @p idx a valid register block index on a `DT_DRV_COMPAT` instance?
 * @param inst instance number
 * @param idx index to check
 * @return 1 if @p idx is a valid register block index,
 *         0 otherwise.
 */


/**
 * @brief is @p name a valid register block name on a `DT_DRV_COMPAT` instance?
 * @param inst instance number
 * @param name name to check
 * @return 1 if @p name is a valid register block name,
 *         0 otherwise.
 */


/**
 * @brief Get a `DT_DRV_COMPAT` instance's idx-th register block's raw address
 * @param inst instance number
 * @param idx index of the register whose address to return
 * @return address of the instance's idx-th register block
 */


/**
 * @brief Get a `DT_DRV_COMPAT` instance's idx-th register block's address
 * @param inst instance number
 * @param idx index of the register whose address to return
 * @return address of the instance's idx-th register block
 */


/**
 * @brief Get a `DT_DRV_COMPAT` instance's idx-th register block's size
 * @param inst instance number
 * @param idx index of the register whose size to return
 * @return size of the instance's idx-th register block
 */



/**
 * @brief Get a `DT_DRV_COMPAT`'s register block address by  name
 * @param inst instance number
 * @param name lowercase-and-underscores register specifier name
 * @return address of the register block with the given @p name
 */



/**
 * @brief Like DT_INST_REG_ADDR_BY_NAME(), but with a fallback to @p default_value
 * @param inst instance number
 * @param name lowercase-and-underscores register specifier name
 * @param default_value a fallback value to expand to
 * @return address of the register block specified by name if present,
 *         @p default_value otherwise
 */



/**
 * @brief 64-bit version of DT_INST_REG_ADDR_BY_NAME()
 *
 * This macro version adds the appropriate suffix for 64-bit unsigned
 * integer literals.
 * Note that this macro is equivalent to DT_INST_REG_ADDR_BY_NAME() in
 * linker/ASM context.
 *
 * @param inst instance number
 * @param name lowercase-and-underscores register specifier name
 * @return address of the register block with the given @p name
 */



/**
 * @brief Get a `DT_DRV_COMPAT`'s register block size by name
 * @param inst instance number
 * @param name lowercase-and-underscores register specifier name
 * @return size of the register block with the given @p name
 */



/**
 * @brief Like DT_INST_REG_SIZE_BY_NAME(), but with a fallback to @p default_value
 * @param inst instance number
 * @param name lowercase-and-underscores register specifier name
 * @param default_value a fallback value to expand to
 * @return size of the register block specified by name if present,
 *         @p default_value otherwise
 */



/**
 * @brief Get a `DT_DRV_COMPAT`'s (only) register block raw address
 * @param inst instance number
 * @return instance's register block address
 */


/**
 * @brief Get a `DT_DRV_COMPAT`'s (only) register block address
 * @param inst instance number
 * @return instance's register block address
 */


/**
 * @brief 64-bit version of DT_INST_REG_ADDR()
 *
 * This macro version adds the appropriate suffix for 64-bit unsigned
 * integer literals.
 * Note that this macro is equivalent to DT_INST_REG_ADDR() in
 * linker/ASM context.
 *
 * @param inst instance number
 * @return instance's register block address
 */


/**
 * @brief Get a `DT_DRV_COMPAT`'s (only) register block size
 * @param inst instance number
 * @return instance's register block size
 */


/**
 * @brief Get a `DT_DRV_COMPAT`'s number of interrupts
 *
 * @param inst instance number
 * @return number of interrupts
 */


/**
 * @brief Get a `DT_DRV_COMPAT` interrupt level
 *
 * @param inst instance number
 * @return interrupt level
 */


/**
 * @brief Get a `DT_DRV_COMPAT` interrupt specifier value at an index
 * @param inst instance number
 * @param idx logical index into the interrupt specifier array
 * @param cell cell name specifier
 * @return the named value at the specifier given by the index
 */



/**
 * @brief Get a `DT_DRV_COMPAT` interrupt specifier's interrupt controller by index
 * @param inst instance number
 * @param idx interrupt specifier's index
 * @return node_id of interrupt specifier's interrupt controller
 */



/**
 * @brief Get a `DT_DRV_COMPAT` interrupt specifier's interrupt controller by name
 * @param inst instance number
 * @param name interrupt specifier's name
 * @return node_id of interrupt specifier's interrupt controller
 */



/**
 * @brief Get a `DT_DRV_COMPAT` interrupt specifier's interrupt controller
 * @note Equivalent to DT_INST_IRQ_INTC_BY_IDX(node_id, 0)
 * @param inst instance number
 * @return node_id of interrupt specifier's interrupt controller
 * @see DT_INST_IRQ_INTC_BY_IDX()
 */



/**
 * @brief Get a `DT_DRV_COMPAT` interrupt specifier value by name
 * @param inst instance number
 * @param name lowercase-and-underscores interrupt specifier name
 * @param cell cell name specifier
 * @return the named value at the specifier given by the index
 */



/**
 * @brief Get a `DT_DRV_COMPAT` interrupt specifier's value
 * @param inst instance number
 * @param cell cell name specifier
 * @return the named value at that index
 */


/**
 * @brief Get a `DT_DRV_COMPAT`'s (only) irq number
 * @param inst instance number
 * @return the interrupt number for the node's only interrupt
 */


/**
 * @brief Get a `DT_DRV_COMPAT`'s irq number at index
 * @param inst instance number
 * @param idx logical index into the interrupt specifier array
 * @return the interrupt number for the node's idx-th interrupt
 */


/**
 * @brief Get a `DT_DRV_COMPAT`'s bus node identifier
 * @param inst instance number
 * @return node identifier for the instance's bus node
 */


/**
 * @brief Test if a `DT_DRV_COMPAT`'s bus type is a given type
 * @param inst instance number
 * @param bus a binding's bus type as a C token, lowercased and without quotes
 * @return 1 if the given instance is on a bus of the given type,
 *         0 otherwise
 */


/**
 * @brief Like DT_INST_STRING_TOKEN(), but with a fallback to @p default_value
 * @param inst instance number
 * @param name lowercase-and-underscores property name
 * @param default_value a fallback value to expand to
 * @return if @p prop exists, its value as a token, i.e. without any quotes and
 *         with special characters converted to underscores. Otherwise
 *         @p default_value
 */



/**
 * @brief Like DT_INST_STRING_UPPER_TOKEN(), but with a fallback to
 *        @p default_value
 * @param inst instance number
 * @param name lowercase-and-underscores property name
 * @param default_value a fallback value to expand to
 * @return the property's value as an uppercased token, or @p default_value
 */



/**
 * @brief Like DT_INST_STRING_UNQUOTED(), but with a fallback to
 *        @p default_value
 * @param inst instance number
 * @param name lowercase-and-underscores property name
 * @param default_value a fallback value to expand to
 * @return the property's value as a sequence of tokens, with no quotes, or @p default_value
 */



/**
 * @brief Test if any enabled node with the given compatible is on
 *        the given bus type
 *
 * This is like DT_ANY_INST_ON_BUS_STATUS_OKAY(), except it can also
 * be useful for handling multiple compatibles in single source file.
 *
 * Example devicetree overlay:
 *
 * @code{.dts}
 *     &i2c0 {
 *            temp: temperature-sensor@76 {
 *                     compatible = "vnd,some-sensor";
 *                     reg = <0x76>;
 *            };
 *     };
 * @endcode
 *
 * Example usage, assuming `i2c0` is an I2C bus controller node, and
 * therefore `temp` is on an I2C bus:
 *
 * @code{.c}
 *     DT_HAS_COMPAT_ON_BUS_STATUS_OKAY(vnd_some_sensor, i2c) // 1
 * @endcode
 *
 * @param compat lowercase-and-underscores compatible, without quotes
 * @param bus a binding's bus type as a C token, lowercased and without quotes
 * @return 1 if any enabled node with that compatible is on that bus type,
 *         0 otherwise
 */



/**
 * @brief Test if any `DT_DRV_COMPAT` node is on a bus of a given type
 *        and has status okay
 *
 * This is a special-purpose macro which can be useful when writing
 * drivers for devices which can appear on multiple buses. One example
 * is a sensor device which may be wired on an I2C or SPI bus.
 *
 * Example devicetree overlay:
 *
 * @code{.dts}
 *     &i2c0 {
 *            temp: temperature-sensor@76 {
 *                     compatible = "vnd,some-sensor";
 *                     reg = <0x76>;
 *            };
 *     };
 * @endcode
 *
 * Example usage, assuming `i2c0` is an I2C bus controller node, and
 * therefore `temp` is on an I2C bus:
 *
 * @code{.c}
 *     #define DT_DRV_COMPAT vnd_some_sensor
 *
 *     DT_ANY_INST_ON_BUS_STATUS_OKAY(i2c) // 1
 * @endcode
 *
 * @param bus a binding's bus type as a C token, lowercased and without quotes
 * @return 1 if any enabled node with that compatible is on that bus type,
 *         0 otherwise
 */



/**
 * @brief Check if any `DT_DRV_COMPAT` node with status `okay` has a given
 *        property.
 *
 * @param prop lowercase-and-underscores property name
 *
 * Example devicetree overlay:
 *
 * @code{.dts}
 *     &i2c0 {
 *         sensor0: sensor@0 {
 *             compatible = "vnd,some-sensor";
 *             status = "okay";
 *             reg = <0>;
 *             foo = <1>;
 *             bar = <2>;
 *         };
 *
 *         sensor1: sensor@1 {
 *             compatible = "vnd,some-sensor";
 *             status = "okay";
 *             reg = <1>;
 *             foo = <2>;
 *         };
 *
 *         sensor2: sensor@2 {
 *             compatible = "vnd,some-sensor";
 *             status = "disabled";
 *             reg = <2>;
 *             baz = <1>;
 *         };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     #define DT_DRV_COMPAT vnd_some_sensor
 *
 *     DT_ANY_INST_HAS_PROP_STATUS_OKAY(foo) // 1
 *     DT_ANY_INST_HAS_PROP_STATUS_OKAY(bar) // 1
 *     DT_ANY_INST_HAS_PROP_STATUS_OKAY(baz) // 0
 * @endcode
 */



/**
 * @brief Check if any device node with status `okay` has a given
 *        property.
 *
 * @param compat lowercase-and-underscores devicetree compatible
 * @param prop lowercase-and-underscores property name
 *
 * Example devicetree overlay:
 *
 * @code{.dts}
 *     &i2c0 {
 *         sensor0: sensor@0 {
 *             compatible = "vnd,some-sensor";
 *             status = "okay";
 *             reg = <0>;
 *             foo = <1>;
 *             bar = <2>;
 *         };
 *
 *         sensor1: sensor@1 {
 *             compatible = "vnd,some-sensor";
 *             status = "okay";
 *             reg = <1>;
 *             foo = <2>;
 *         };
 *
 *         sensor2: sensor@2 {
 *             compatible = "vnd,some-sensor";
 *             status = "disabled";
 *             reg = <2>;
 *             baz = <1>;
 *         };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *
 *     DT_ANY_COMPAT_HAS_PROP_STATUS_OKAY(vnd_some_sensor, foo) // 1
 *     DT_ANY_COMPAT_HAS_PROP_STATUS_OKAY(vnd_some_sensor, bar) // 1
 *     DT_ANY_COMPAT_HAS_PROP_STATUS_OKAY(vnd_some_sensor, baz) // 0
 * @endcode
 */



/**
 * @brief Check if any `DT_DRV_COMPAT` node with status `okay` has a given
 *        boolean property that exists.
 *
 * This differs from @ref DT_ANY_INST_HAS_PROP_STATUS_OKAY because even when not present
 * on a node, the boolean property is generated with a value of 0 and therefore exists.
 *
 * @param prop lowercase-and-underscores property name
 *
 * Example devicetree overlay:
 *
 * @code{.dts}
 *     &i2c0 {
 *         sensor0: sensor@0 {
 *             compatible = "vnd,some-sensor";
 *             status = "okay";
 *             reg = <0>;
 *             foo;
 *             bar;
 *         };
 *
 *         sensor1: sensor@1 {
 *             compatible = "vnd,some-sensor";
 *             status = "okay";
 *             reg = <1>;
 *             foo;
 *         };
 *
 *         sensor2: sensor@2 {
 *             compatible = "vnd,some-sensor";
 *             status = "disabled";
 *             reg = <2>;
 *             baz;
 *         };
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     #define DT_DRV_COMPAT vnd_some_sensor
 *
 *     DT_ANY_INST_HAS_BOOL_STATUS_OKAY(foo) // 1
 *     DT_ANY_INST_HAS_BOOL_STATUS_OKAY(bar) // 1
 *     DT_ANY_INST_HAS_BOOL_STATUS_OKAY(baz) // 0
 * @endcode
 */



/**
 * @brief Call @p fn on all nodes with compatible `DT_DRV_COMPAT`
 *        and status `okay`
 *
 * This macro calls `fn(inst)` on each `inst` number that refers to a
 * node with status `okay`. Whitespace is added between invocations.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *     a {
 *             compatible = "vnd,device";
 *             status = "okay";
 *             foobar = "DEV_A";
 *     };
 *
 *     b {
 *             compatible = "vnd,device";
 *             status = "okay";
 *             foobar = "DEV_B";
 *     };
 *
 *     c {
 *             compatible = "vnd,device";
 *             status = "disabled";
 *             foobar = "DEV_C";
 *     };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *     #define DT_DRV_COMPAT vnd_device
 *     #define MY_FN(inst) DT_INST_PROP(inst, foobar),
 *
 *     DT_INST_FOREACH_STATUS_OKAY(MY_FN)
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *     MY_FN(0) MY_FN(1)
 * @endcode
 *
 * and from there, to either this:
 *
 *     "DEV_A", "DEV_B",
 *
 * or this:
 *
 *     "DEV_B", "DEV_A",
 *
 * No guarantees are made about the order that a and b appear in the
 * expansion.
 *
 * Note that @p fn is responsible for adding commas, semicolons, or
 * other separators or terminators.
 *
 * Device drivers should use this macro whenever possible to
 * instantiate a struct device for each enabled node in the devicetree
 * of the driver's compatible `DT_DRV_COMPAT`.
 *
 * @param fn Macro to call for each enabled node. Must accept an
 *           instance number as its only parameter.
 */






/**
 * @brief Call @p fn on all nodes with compatible `DT_DRV_COMPAT`
 *        and status `okay` with multiple arguments
 *
 *
 * @param fn Macro to call for each enabled node. Must accept an
 *           instance number.
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_INST_FOREACH_STATUS_OKAY
 * @see DT_COMPAT_FOREACH_STATUS_OKAY_VARGS
 */






/**
 * @brief Call @p fn on all node labels for a given `DT_DRV_COMPAT` instance
 *
 * Equivalent to DT_FOREACH_NODELABEL(DT_DRV_INST(inst), fn).
 *
 * @param inst instance number
 * @param fn macro which will be passed each node label for the node
 *           with that instance number
 */



/**
 * @brief Call @p fn on all node labels for a given `DT_DRV_COMPAT` instance
 *        with multiple arguments
 *
 * Equivalent to DT_FOREACH_NODELABEL_VARGS(DT_DRV_INST(inst), fn, ...).
 *
 * @param inst instance number
 * @param fn macro which will be passed each node label for the node
 *           with that instance number
 * @param ... additional arguments to pass to @p fn
 */



/**
 * @brief Invokes @p fn for each element of property @p prop for
 *        a `DT_DRV_COMPAT` instance.
 *
 * Equivalent to DT_FOREACH_PROP_ELEM(DT_DRV_INST(inst), prop, fn).
 *
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param fn macro to invoke
 */



/**
 * @brief Invokes @p fn for each element of property @p prop for
 *        a `DT_DRV_COMPAT` instance with a separator.
 *
 * Equivalent to DT_FOREACH_PROP_ELEM_SEP(DT_DRV_INST(inst), prop, fn, sep).
 *
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param fn macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 */



/**
 * @brief Invokes @p fn for each element of property @p prop for
 *        a `DT_DRV_COMPAT` instance with multiple arguments.
 *
 * Equivalent to
 *      DT_FOREACH_PROP_ELEM_VARGS(DT_DRV_INST(inst), prop, fn, __VA_ARGS__)
 *
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param fn macro to invoke
 * @param ... variable number of arguments to pass to @p fn
 *
 * @see DT_INST_FOREACH_PROP_ELEM
 */



/**
 * @brief Invokes @p fn for each element of property @p prop for
 *        a `DT_DRV_COMPAT` instance with multiple arguments and a separator.
 *
 * Equivalent to
 *      DT_FOREACH_PROP_ELEM_SEP_VARGS(DT_DRV_INST(inst), prop, fn, sep,
 *                                     __VA_ARGS__)
 *
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @param fn macro to invoke
 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
 *            this is required to enable providing a comma as separator.
 * @param ... variable number of arguments to pass to fn
 *
 * @see DT_INST_FOREACH_PROP_ELEM
 */




/**
 * @brief Does a DT_DRV_COMPAT instance have a property?
 * @param inst instance number
 * @param prop lowercase-and-underscores property name
 * @return 1 if the instance has the property, 0 otherwise.
 */



/**
 * @brief Does a DT_DRV_COMPAT instance have the compatible?
 * @param inst instance number
 * @param compat lowercase-and-underscores compatible, without quotes
 * @return 1 if the instance matches the compatible, 0 otherwise.
 */



/**
 * @brief Does a phandle array have a named cell specifier at an index
 *        for a `DT_DRV_COMPAT` instance?
 * @param inst instance number
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param idx index to check
 * @param cell named cell value whose existence to check
 * @return 1 if the named @p cell exists in the specifier at index @p idx,
 *         0 otherwise.
 */



/**
 * @brief Does a phandle array have a named cell specifier at index 0
 *        for a `DT_DRV_COMPAT` instance?
 * @param inst instance number
 * @param pha lowercase-and-underscores property with type `phandle-array`
 * @param cell named cell value whose existence to check
 * @return 1 if the named @p cell exists in the specifier at index 0,
 *         0 otherwise.
 */



/**
 * @brief is index valid for interrupt property on a `DT_DRV_COMPAT` instance?
 * @param inst instance number
 * @param idx logical index into the interrupt specifier array
 * @return 1 if the @p idx is valid for the interrupt property
 *         0 otherwise.
 */


/**
 * @brief Does a `DT_DRV_COMPAT` instance have an interrupt named cell specifier?
 * @param inst instance number
 * @param idx index to check
 * @param cell named cell value whose existence to check
 * @return 1 if the named @p cell exists in the interrupt specifier at index
 *         @p idx 0 otherwise.
 */



/**
 * @brief Does a `DT_DRV_COMPAT` instance have an interrupt value?
 * @param inst instance number
 * @param cell named cell value whose existence to check
 * @return 1 if the named @p cell exists in the interrupt specifier at index 0
 *         0 otherwise.
 */



/**
 * @brief Does a `DT_DRV_COMPAT` instance have an interrupt value?
 * @param inst instance number
 * @param name lowercase-and-underscores interrupt specifier name
 * @return 1 if @p name is a valid named specifier
 */



/**
 * @}
 */

/** @cond INTERNAL_HIDDEN */

/** @brief Helper for DT_ANY_INST_HAS_PROP_STATUS_OKAY_
 *
 * This macro generates token "1," for instance of a device,
 * identified by index @p idx, if instance has property @p prop.
 *
 * @param idx instance number
 * @param prop property to check for
 *
 * @return Macro evaluates to `1,` if instance has the property,
 * otherwise it evaluates to literal nothing.
 */


/** @brief Helper for DT_ANY_INST_HAS_PROP_STATUS_OKAY
 *
 * This macro uses DT_ANY_INST_HAS_PROP_STATUS_OKAY_ with
 * DT_INST_FOREACH_STATUS_OKAY_VARG to generate comma separated list of 1,
 * where each 1 on the list represents instance that has a property
 * @p prop; the list may be empty, and the upper bound on number of
 * list elements is number of device instances.
 *
 * @param prop property to check
 *
 * @return Evaluates to list of 1s (e.g: 1,1,1,) or nothing.
 */



/** @brief Helper for DT_ANY_INST_HAS_BOOL_STATUS_OKAY_
 *
 * This macro generates token "1," for instance of a device,
 * identified by index @p idx, if instance has boolean property
 * @p prop with value 1.
 *
 * @param idx instance number
 * @param prop property to check for
 *
 * @return Macro evaluates to `1,` if instance property value is 1,
 * otherwise it evaluates to literal nothing.
 */


/** @brief Helper for DT_ANY_INST_HAS_BOOL_STATUS_OKAY
 *
 * This macro uses DT_ANY_INST_HAS_BOOL_STATUS_OKAY_ with
 * DT_INST_FOREACH_STATUS_OKAY_VARG to generate comma separated list of 1,
 * where each 1 on the list represents instance that has a property
 * @p prop of value 1; the list may be empty, and the upper bound on number of
 * list elements is number of device instances.
 *
 * @param prop property to check
 *
 * @return Evaluates to list of 1s (e.g: 1,1,1,) or nothing.
 */





/** @brief DT_PATH_INTERNAL() helper: prepends _S_ to a node name
 * We don't want to expand 'name' recursively before expansion
 * in this case. The MACRO_MAP_CAT above is giving us the exact
 * tokens it wants prefixed with _S_.
 */


/**
 * @brief Concatenation helper, 2 arguments
 *
 * This and the following macros are used to paste things together
 * with "##" *after* forcing expansion on each argument.
 *
 * We could try to use something like UTIL_CAT(), but the compiler
 * error messages from the util macros can be extremely long when they
 * are misused. This unfortunately happens often with devicetree.h,
 * since its macro-based API is fiddly and can be hard to get right.
 *
 * Keeping things brutally simple here hopefully makes some errors
 * easier to read.
 */

/** @brief Concatenation helper, 3 arguments */

/** @brief Concatenation helper, 4 arguments */

/** @brief Internal concatenation helper, 5 arguments */

/** @brief Concatenation helper, 6 arguments */

/** @brief concatenation helper, 7 arguments */


/** @brief concatenation helper, 8 arguments */


/*
 * If you need to define a bigger DT_CATN(), do so here. Don't leave
 * any "holes" of undefined macros, please.
 */

/** @brief Helper for node identifier macros to expand args */

/** @brief Helper for DT_DASH(): prepends _ to a name */

/** @brief Helper for DT_NODE_HAS_STATUS */



/** @brief Helper macro to OR multiple has property checks in a loop macro
 *         (for the specified device)
 */



/**
 * @def DT_U32_C
 * @brief Macro to add 32bit unsigned postfix to the devicetree address constants
 */






/**
 * @def DT_U64_C
 * @brief Macro to add ULL postfix to the devicetree address constants
 */






/* Helpers for DT_NODELABEL_STRING_ARRAY. We define our own stringify
 * in order to avoid adding a dependency on toolchain.h..
 */




/** @endcond */

/* have these last so they have access to all previously defined macros */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/io-channels.h" 1
/**
 * @file
 * @brief IO channels devicetree macro public API header file.
 */

/*
 * Copyright (c) 2020, Linaro Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-io-channels Devicetree IO Channels API
 * @ingroup devicetree
 * @{
 */

/**
 *
 * @brief Get the node identifier for the node referenced by an
 *        io-channels property at an index
 *
 * Example devicetree fragment:
 *
 *     adc1: adc@... { ... };
 *
 *     adc2: adc@... { ... };
 *
 *     n: node {
 *             io-channels = <&adc1 10>, <&adc2 20>;
 *     };
 *
 * Example usage:
 *
 *     DT_IO_CHANNELS_CTLR_BY_IDX(DT_NODELABEL(n), 0) // DT_NODELABEL(adc1)
 *     DT_IO_CHANNELS_CTLR_BY_IDX(DT_NODELABEL(n), 1) // DT_NODELABEL(adc2)
 *
 * @param node_id node identifier for a node with an io-channels property
 * @param idx logical index into io-channels property
 * @return the node identifier for the node referenced at index "idx"
 * @see DT_PROP_BY_PHANDLE_IDX()
 */



/**
 * @brief Get the node identifier for the node referenced by an
 *        io-channels property by name
 *
 * Example devicetree fragment:
 *
 *     adc1: adc@... { ... };
 *
 *     adc2: adc@... { ... };
 *
 *     n: node {
 *             io-channels = <&adc1 10>, <&adc2 20>;
 *             io-channel-names = "SENSOR", "BANDGAP";
 *     };
 *
 * Example usage:
 *
 *  DT_IO_CHANNELS_CTLR_BY_NAME(DT_NODELABEL(n), sensor) // DT_NODELABEL(adc1)
 *  DT_IO_CHANNELS_CTLR_BY_NAME(DT_NODELABEL(n), bandgap) // DT_NODELABEL(adc2)
 *
 * @param node_id node identifier for a node with an io-channels property
 * @param name lowercase-and-underscores name of an io-channels element
 *             as defined by the node's io-channel-names property
 * @return the node identifier for the node referenced at the named element
 * @see DT_PHANDLE_BY_NAME()
 */



/**
 * @brief Equivalent to DT_IO_CHANNELS_CTLR_BY_IDX(node_id, 0)
 * @param node_id node identifier for a node with an io-channels property
 * @return the node identifier for the node referenced at index 0
 *         in the node's "io-channels" property
 * @see DT_IO_CHANNELS_CTLR_BY_IDX()
 */


/**
 * @brief Get the node identifier from a DT_DRV_COMPAT instance's io-channels
 *        property at an index
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into io-channels property
 * @return the node identifier for the node referenced at index "idx"
 * @see DT_IO_CHANNELS_CTLR_BY_IDX()
 */



/**
 * @brief Get the node identifier from a DT_DRV_COMPAT instance's io-channels
 *        property by name
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of an io-channels element
 *             as defined by the node's io-channel-names property
 * @return the node identifier for the node referenced at the named element
 * @see DT_IO_CHANNELS_CTLR_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_IO_CHANNELS_CTLR_BY_IDX(inst, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @return the node identifier for the node referenced at index 0
 *         in the node's "io-channels" property
 * @see DT_IO_CHANNELS_CTLR_BY_IDX()
 */


/**
 * @brief Get an io-channels specifier input cell at an index
 *
 * This macro only works for io-channels specifiers with cells named
 * "input". Refer to the node's binding to check if necessary.
 *
 * Example devicetree fragment:
 *
 *     adc1: adc@... {
 *             compatible = "vnd,adc";
 *             #io-channel-cells = <1>;
 *     };
 *
 *     adc2: adc@... {
 *             compatible = "vnd,adc";
 *             #io-channel-cells = <1>;
 *     };
 *
 *     n: node {
 *             io-channels = <&adc1 10>, <&adc2 20>;
 *     };
 *
 * Bindings fragment for the vnd,adc compatible:
 *
 *    io-channel-cells:
 *      - input
 *
 * Example usage:
 *
 *     DT_IO_CHANNELS_INPUT_BY_IDX(DT_NODELABEL(n), 0) // 10
 *     DT_IO_CHANNELS_INPUT_BY_IDX(DT_NODELABEL(n), 1) // 20
 *
 * @param node_id node identifier for a node with an io-channels property
 * @param idx logical index into io-channels property
 * @return the input cell in the specifier at index "idx"
 * @see DT_PHA_BY_IDX()
 */



/**
 * @brief Get an io-channels specifier input cell by name
 *
 * This macro only works for io-channels specifiers with cells named
 * "input". Refer to the node's binding to check if necessary.
 *
 * Example devicetree fragment:
 *
 *     adc1: adc@... {
 *             compatible = "vnd,adc";
 *             #io-channel-cells = <1>;
 *     };
 *
 *     adc2: adc@... {
 *             compatible = "vnd,adc";
 *             #io-channel-cells = <1>;
 *     };
 *
 *     n: node {
 *             io-channels = <&adc1 10>, <&adc2 20>;
 *             io-channel-names = "SENSOR", "BANDGAP";
 *     };
 *
 * Bindings fragment for the vnd,adc compatible:
 *
 *    io-channel-cells:
 *      - input
 *
 * Example usage:
 *
 *     DT_IO_CHANNELS_INPUT_BY_NAME(DT_NODELABEL(n), sensor) // 10
 *     DT_IO_CHANNELS_INPUT_BY_NAME(DT_NODELABEL(n), bandgap) // 20
 *
 * @param node_id node identifier for a node with an io-channels property
 * @param name lowercase-and-underscores name of an io-channels element
 *             as defined by the node's io-channel-names property
 * @return the input cell in the specifier at the named element
 * @see DT_PHA_BY_NAME()
 */


/**
 * @brief Equivalent to DT_IO_CHANNELS_INPUT_BY_IDX(node_id, 0)
 * @param node_id node identifier for a node with an io-channels property
 * @return the input cell in the specifier at index 0
 * @see DT_IO_CHANNELS_INPUT_BY_IDX()
 */


/**
 * @brief Get an input cell from the "DT_DRV_INST(inst)" io-channels
 *        property at an index
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into io-channels property
 * @return the input cell in the specifier at index "idx"
 * @see DT_IO_CHANNELS_INPUT_BY_IDX()
 */



/**
 * @brief Get an input cell from the "DT_DRV_INST(inst)" io-channels
 *        property by name
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of an io-channels element
 *             as defined by the instance's io-channel-names property
 * @return the input cell in the specifier at the named element
 * @see DT_IO_CHANNELS_INPUT_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_IO_CHANNELS_INPUT_BY_IDX(inst, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @return the input cell in the specifier at index 0
 */


/**
 * @}
 */


}
# 5334 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/clocks.h" 1
/**
 * @file
 * @brief Clocks Devicetree macro public API header file.
 */

/*
 * Copyright (c) 2020, Linaro Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-clocks Devicetree Clocks API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Test if a node has a clocks phandle-array property at a given index
 *
 * This expands to 1 if the given index is valid clocks property phandle-array index.
 * Otherwise, it expands to 0.
 *
 * Example devicetree fragment:
 *
 *     n1: node-1 {
 *             clocks = <...>, <...>;
 *     };
 *
 *     n2: node-2 {
 *             clocks = <...>;
 *     };
 *
 * Example usage:
 *
 *     DT_CLOCKS_HAS_IDX(DT_NODELABEL(n1), 0) // 1
 *     DT_CLOCKS_HAS_IDX(DT_NODELABEL(n1), 1) // 1
 *     DT_CLOCKS_HAS_IDX(DT_NODELABEL(n1), 2) // 0
 *     DT_CLOCKS_HAS_IDX(DT_NODELABEL(n2), 1) // 0
 *
 * @param node_id node identifier; may or may not have any clocks property
 * @param idx index of a clocks property phandle-array whose existence to check
 * @return 1 if the index exists, 0 otherwise
 */



/**
 * @brief Test if a node has a clock-names array property holds a given name
 *
 * This expands to 1 if the name is available as clocks-name array property cell.
 * Otherwise, it expands to 0.
 *
 * Example devicetree fragment:
 *
 *     n1: node-1 {
 *             clocks = <...>, <...>;
 *             clock-names = "alpha", "beta";
 *     };
 *
 *     n2: node-2 {
 *             clocks = <...>;
 *             clock-names = "alpha";
 *     };
 *
 * Example usage:
 *
 *     DT_CLOCKS_HAS_NAME(DT_NODELABEL(n1), alpha) // 1
 *     DT_CLOCKS_HAS_NAME(DT_NODELABEL(n1), beta)  // 1
 *     DT_CLOCKS_HAS_NAME(DT_NODELABEL(n2), beta)  // 0
 *
 * @param node_id node identifier; may or may not have any clock-names property.
 * @param name lowercase-and-underscores clock-names cell value name to check
 * @return 1 if the clock name exists, 0 otherwise
 */



/**
 * @brief Get the number of elements in a clocks property
 *
 * Example devicetree fragment:
 *
 *     n1: node-1 {
 *             clocks = <&foo>, <&bar>;
 *     };
 *
 *     n2: node-2 {
 *             clocks = <&foo>;
 *     };
 *
 * Example usage:
 *
 *     DT_NUM_CLOCKS(DT_NODELABEL(n1)) // 2
 *     DT_NUM_CLOCKS(DT_NODELABEL(n2)) // 1
 *
 * @param node_id node identifier with a clocks property
 * @return number of elements in the property
 */




/**
 * @brief Get the node identifier for the controller phandle from a
 *        "clocks" phandle-array property at an index
 *
 * Example devicetree fragment:
 *
 *     clk1: clock-controller@... { ... };
 *
 *     clk2: clock-controller@... { ... };
 *
 *     n: node {
 *             clocks = <&clk1 10 20>, <&clk2 30 40>;
 *     };
 *
 * Example usage:
 *
 *     DT_CLOCKS_CTLR_BY_IDX(DT_NODELABEL(n), 0)) // DT_NODELABEL(clk1)
 *     DT_CLOCKS_CTLR_BY_IDX(DT_NODELABEL(n), 1)) // DT_NODELABEL(clk2)
 *
 * @param node_id node identifier
 * @param idx logical index into "clocks"
 * @return the node identifier for the clock controller referenced at
 *         index "idx"
 * @see DT_PHANDLE_BY_IDX()
 */



/**
 * @brief Equivalent to DT_CLOCKS_CTLR_BY_IDX(node_id, 0)
 * @param node_id node identifier
 * @return a node identifier for the clocks controller at index 0
 *         in "clocks"
 * @see DT_CLOCKS_CTLR_BY_IDX()
 */


/**
 * @brief Get the node identifier for the controller phandle from a
 *        clocks phandle-array property by name
 *
 * Example devicetree fragment:
 *
 *     clk1: clock-controller@... { ... };
 *
 *     clk2: clock-controller@... { ... };
 *
 *     n: node {
 *             clocks = <&clk1 10 20>, <&clk2 30 40>;
 *             clock-names = "alpha", "beta";
 *     };
 *
 * Example usage:
 *
 *     DT_CLOCKS_CTLR_BY_NAME(DT_NODELABEL(n), beta) // DT_NODELABEL(clk2)
 *
 * @param node_id node identifier
 * @param name lowercase-and-underscores name of a clocks element
 *             as defined by the node's clock-names property
 * @return the node identifier for the clock controller referenced by name
 * @see DT_PHANDLE_BY_NAME()
 */



/**
 * @brief Get a clock specifier's cell value at an index
 *
 * Example devicetree fragment:
 *
 *     clk1: clock-controller@... {
 *             compatible = "vnd,clock";
 *             #clock-cells = < 2 >;
 *     };
 *
 *     n: node {
 *             clocks = < &clk1 10 20 >, < &clk1 30 40 >;
 *     };
 *
 * Bindings fragment for the vnd,clock compatible:
 *
 *     clock-cells:
 *       - bus
 *       - bits
 *
 * Example usage:
 *
 *     DT_CLOCKS_CELL_BY_IDX(DT_NODELABEL(n), 0, bus) // 10
 *     DT_CLOCKS_CELL_BY_IDX(DT_NODELABEL(n), 1, bits) // 40
 *
 * @param node_id node identifier for a node with a clocks property
 * @param idx logical index into clocks property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index "idx"
 * @see DT_PHA_BY_IDX()
 */



/**
 * @brief Get a clock specifier's cell value by name
 *
 * Example devicetree fragment:
 *
 *     clk1: clock-controller@... {
 *             compatible = "vnd,clock";
 *             #clock-cells = < 2 >;
 *     };
 *
 *     n: node {
 *             clocks = < &clk1 10 20 >, < &clk1 30 40 >;
 *             clock-names = "alpha", "beta";
 *     };
 *
 * Bindings fragment for the vnd,clock compatible:
 *
 *     clock-cells:
 *       - bus
 *       - bits
 *
 * Example usage:
 *
 *     DT_CLOCKS_CELL_BY_NAME(DT_NODELABEL(n), alpha, bus) // 10
 *     DT_CLOCKS_CELL_BY_NAME(DT_NODELABEL(n), beta, bits) // 40
 *
 * @param node_id node identifier for a node with a clocks property
 * @param name lowercase-and-underscores name of a clocks element
 *             as defined by the node's clock-names property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value in the specifier at the named element
 * @see DT_PHA_BY_NAME()
 */



/**
 * @brief Equivalent to DT_CLOCKS_CELL_BY_IDX(node_id, 0, cell)
 * @param node_id node identifier for a node with a clocks property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index 0
 * @see DT_CLOCKS_CELL_BY_IDX()
 */


/**
 * @brief Equivalent to DT_CLOCKS_HAS_IDX(DT_DRV_INST(inst), idx)
 * @param inst DT_DRV_COMPAT instance number; may or may not have any clocks property
 * @param idx index of a clocks property phandle-array whose existence to check
 * @return 1 if the index exists, 0 otherwise
 */



/**
 * @brief Equivalent to DT_CLOCK_HAS_NAME(DT_DRV_INST(inst), name)
 * @param inst DT_DRV_COMPAT instance number; may or may not have any clock-names property.
 * @param name lowercase-and-underscores clock-names cell value name to check
 * @return 1 if the clock name exists, 0 otherwise
 */



/**
 * @brief Equivalent to DT_NUM_CLOCKS(DT_DRV_INST(inst))
 * @param inst instance number
 * @return number of elements in the clocks property
 */



/**
 * @brief Get the node identifier for the controller phandle from a
 *        "clocks" phandle-array property at an index
 *
 * @param inst instance number
 * @param idx logical index into "clocks"
 * @return the node identifier for the clock controller referenced at
 *         index "idx"
 * @see DT_CLOCKS_CTLR_BY_IDX()
 */



/**
 * @brief Equivalent to DT_INST_CLOCKS_CTLR_BY_IDX(inst, 0)
 * @param inst instance number
 * @return a node identifier for the clocks controller at index 0
 *         in "clocks"
 * @see DT_CLOCKS_CTLR()
 */


/**
 * @brief Get the node identifier for the controller phandle from a
 *        clocks phandle-array property by name
 *
 * @param inst instance number
 * @param name lowercase-and-underscores name of a clocks element
 *             as defined by the node's clock-names property
 * @return the node identifier for the clock controller referenced by
 *         the named element
 * @see DT_CLOCKS_CTLR_BY_NAME()
 */



/**
 * @brief Get a DT_DRV_COMPAT instance's clock specifier's cell value
 *        at an index
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into clocks property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index "idx"
 * @see DT_CLOCKS_CELL_BY_IDX()
 */



/**
 * @brief Get a DT_DRV_COMPAT instance's clock specifier's cell value by name
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a clocks element
 *             as defined by the node's clock-names property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value in the specifier at the named element
 * @see DT_CLOCKS_CELL_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_CLOCKS_CELL_BY_IDX(inst, 0, cell)
 * @param inst DT_DRV_COMPAT instance number
 * @param cell lowercase-and-underscores cell name
 * @return the value of the cell inside the specifier at index 0
 */



/**
 * @}
 */


}
# 5335 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/gpio.h" 1
/**
 * @file
 * @brief GPIO Devicetree macro public API header file.
 */

/*
 * Copyright (c) 2020, Linaro Ltd.
 * Copyright (c) 2020 Nordic Semiconductor
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-gpio Devicetree GPIO API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the node identifier for the controller phandle from a
 *        gpio phandle-array property at an index
 *
 * Example devicetree fragment:
 *
 *     gpio1: gpio@... { };
 *
 *     gpio2: gpio@... { };
 *
 *     n: node {
 *             gpios = <&gpio1 10 GPIO_ACTIVE_LOW>,
 *                     <&gpio2 30 GPIO_ACTIVE_HIGH>;
 *     };
 *
 * Example usage:
 *
 *     DT_GPIO_CTLR_BY_IDX(DT_NODELABEL(n), gpios, 1) // DT_NODELABEL(gpio2)
 *
 * @param node_id node identifier
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @param idx logical index into "gpio_pha"
 * @return the node identifier for the gpio controller referenced at
 *         index "idx"
 * @see DT_PHANDLE_BY_IDX()
 */



/**
 * @brief Equivalent to DT_GPIO_CTLR_BY_IDX(node_id, gpio_pha, 0)
 * @param node_id node identifier
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @return a node identifier for the gpio controller at index 0
 *         in "gpio_pha"
 * @see DT_GPIO_CTLR_BY_IDX()
 */



/**
 * @brief Get a GPIO specifier's pin cell at an index
 *
 * This macro only works for GPIO specifiers with cells named "pin".
 * Refer to the node's binding to check if necessary.
 *
 * Example devicetree fragment:
 *
 *     gpio1: gpio@... {
 *             compatible = "vnd,gpio";
 *             #gpio-cells = <2>;
 *     };
 *
 *     gpio2: gpio@... {
 *             compatible = "vnd,gpio";
 *             #gpio-cells = <2>;
 *     };
 *
 *     n: node {
 *             gpios = <&gpio1 10 GPIO_ACTIVE_LOW>,
 *                     <&gpio2 30 GPIO_ACTIVE_HIGH>;
 *     };
 *
 * Bindings fragment for the vnd,gpio compatible:
 *
 *     gpio-cells:
 *       - pin
 *       - flags
 *
 * Example usage:
 *
 *     DT_GPIO_PIN_BY_IDX(DT_NODELABEL(n), gpios, 0) // 10
 *     DT_GPIO_PIN_BY_IDX(DT_NODELABEL(n), gpios, 1) // 30
 *
 * @param node_id node identifier
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @param idx logical index into "gpio_pha"
 * @return the pin cell value at index "idx"
 * @see DT_PHA_BY_IDX()
 */



/**
 * @brief Equivalent to DT_GPIO_PIN_BY_IDX(node_id, gpio_pha, 0)
 * @param node_id node identifier
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @return the pin cell value at index 0
 * @see DT_GPIO_PIN_BY_IDX()
 */



/**
 * @brief Get a GPIO specifier's flags cell at an index
 *
 * This macro expects GPIO specifiers with cells named "flags".
 * If there is no "flags" cell in the GPIO specifier, zero is returned.
 * Refer to the node's binding to check specifier cell names if necessary.
 *
 * Example devicetree fragment:
 *
 *     gpio1: gpio@... {
 *             compatible = "vnd,gpio";
 *             #gpio-cells = <2>;
 *     };
 *
 *     gpio2: gpio@... {
 *             compatible = "vnd,gpio";
 *             #gpio-cells = <2>;
 *     };
 *
 *     n: node {
 *             gpios = <&gpio1 10 GPIO_ACTIVE_LOW>,
 *                     <&gpio2 30 GPIO_ACTIVE_HIGH>;
 *     };
 *
 * Bindings fragment for the vnd,gpio compatible:
 *
 *     gpio-cells:
 *       - pin
 *       - flags
 *
 * Example usage:
 *
 *     DT_GPIO_FLAGS_BY_IDX(DT_NODELABEL(n), gpios, 0) // GPIO_ACTIVE_LOW
 *     DT_GPIO_FLAGS_BY_IDX(DT_NODELABEL(n), gpios, 1) // GPIO_ACTIVE_HIGH
 *
 * @param node_id node identifier
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @param idx logical index into "gpio_pha"
 * @return the flags cell value at index "idx", or zero if there is none
 * @see DT_PHA_BY_IDX()
 */



/**
 * @brief Equivalent to DT_GPIO_FLAGS_BY_IDX(node_id, gpio_pha, 0)
 * @param node_id node identifier
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @return the flags cell value at index 0, or zero if there is none
 * @see DT_GPIO_FLAGS_BY_IDX()
 */



/**
 * @brief Get the number of GPIO hogs in a node
 *
 * This expands to the number of hogged GPIOs, or zero if there are none.
 *
 * Example devicetree fragment:
 *
 *     gpio1: gpio@... {
 *       compatible = "vnd,gpio";
 *       #gpio-cells = <2>;
 *
 *       n1: node-1 {
 *               gpio-hog;
 *               gpios = <0 GPIO_ACTIVE_HIGH>, <1 GPIO_ACTIVE_LOW>;
 *               output-high;
 *       };
 *
 *       n2: node-2 {
 *               gpio-hog;
 *               gpios = <3 GPIO_ACTIVE_HIGH>;
 *               output-low;
 *       };
 *     };
 *
 * Bindings fragment for the vnd,gpio compatible:
 *
 *     gpio-cells:
 *       - pin
 *       - flags
 *
 * Example usage:
 *
 *     DT_NUM_GPIO_HOGS(DT_NODELABEL(n1)) // 2
 *     DT_NUM_GPIO_HOGS(DT_NODELABEL(n2)) // 1
 *
 * @param node_id node identifier; may or may not be a GPIO hog node.
 * @return number of hogged GPIOs in the node
 */




/**
 * @brief Get a GPIO hog specifier's pin cell at an index
 *
 * This macro only works for GPIO specifiers with cells named "pin".
 * Refer to the node's binding to check if necessary.
 *
 * Example devicetree fragment:
 *
 *     gpio1: gpio@... {
 *       compatible = "vnd,gpio";
 *       #gpio-cells = <2>;
 *
 *       n1: node-1 {
 *               gpio-hog;
 *               gpios = <0 GPIO_ACTIVE_HIGH>, <1 GPIO_ACTIVE_LOW>;
 *               output-high;
 *       };
 *
 *       n2: node-2 {
 *               gpio-hog;
 *               gpios = <3 GPIO_ACTIVE_HIGH>;
 *               output-low;
 *       };
 *     };
 *
 * Bindings fragment for the vnd,gpio compatible:
 *
 *     gpio-cells:
 *       - pin
 *       - flags
 *
 * Example usage:
 *
 *     DT_GPIO_HOG_PIN_BY_IDX(DT_NODELABEL(n1), 0) // 0
 *     DT_GPIO_HOG_PIN_BY_IDX(DT_NODELABEL(n1), 1) // 1
 *     DT_GPIO_HOG_PIN_BY_IDX(DT_NODELABEL(n2), 0) // 3
 *
 * @param node_id node identifier
 * @param idx logical index into "gpios"
 * @return the pin cell value at index "idx"
 */



/**
 * @brief Get a GPIO hog specifier's flags cell at an index
 *
 * This macro expects GPIO specifiers with cells named "flags".
 * If there is no "flags" cell in the GPIO specifier, zero is returned.
 * Refer to the node's binding to check specifier cell names if necessary.
 *
 * Example devicetree fragment:
 *
 *     gpio1: gpio@... {
 *       compatible = "vnd,gpio";
 *       #gpio-cells = <2>;
 *
 *       n1: node-1 {
 *               gpio-hog;
 *               gpios = <0 GPIO_ACTIVE_HIGH>, <1 GPIO_ACTIVE_LOW>;
 *               output-high;
 *       };
 *
 *       n2: node-2 {
 *               gpio-hog;
 *               gpios = <3 GPIO_ACTIVE_HIGH>;
 *               output-low;
 *       };
 *     };
 *
 * Bindings fragment for the vnd,gpio compatible:
 *
 *     gpio-cells:
 *       - pin
 *       - flags
 *
 * Example usage:
 *
 *     DT_GPIO_HOG_FLAGS_BY_IDX(DT_NODELABEL(n1), 0) // GPIO_ACTIVE_HIGH
 *     DT_GPIO_HOG_FLAGS_BY_IDX(DT_NODELABEL(n1), 1) // GPIO_ACTIVE_LOW
 *     DT_GPIO_HOG_FLAGS_BY_IDX(DT_NODELABEL(n2), 0) // GPIO_ACTIVE_HIGH
 *
 * @param node_id node identifier
 * @param idx logical index into "gpios"
 * @return the flags cell value at index "idx", or zero if there is none
 */




/**
 * @brief Get a DT_DRV_COMPAT instance's GPIO specifier's pin cell value
 *        at an index
 * @param inst DT_DRV_COMPAT instance number
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @param idx logical index into "gpio_pha"
 * @return the pin cell value at index "idx"
 * @see DT_GPIO_PIN_BY_IDX()
 */



/**
 * @brief Equivalent to DT_INST_GPIO_PIN_BY_IDX(inst, gpio_pha, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @return the pin cell value at index 0
 * @see DT_INST_GPIO_PIN_BY_IDX()
 */



/**
 * @brief Get a DT_DRV_COMPAT instance's GPIO specifier's flags cell
 *        at an index
 * @param inst DT_DRV_COMPAT instance number
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @param idx logical index into "gpio_pha"
 * @return the flags cell value at index "idx", or zero if there is none
 * @see DT_GPIO_FLAGS_BY_IDX()
 */



/**
 * @brief Equivalent to DT_INST_GPIO_FLAGS_BY_IDX(inst, gpio_pha, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @param gpio_pha lowercase-and-underscores GPIO property with
 *        type "phandle-array"
 * @return the flags cell value at index 0, or zero if there is none
 * @see DT_INST_GPIO_FLAGS_BY_IDX()
 */



/**
 * @}
 */


}
# 5336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/spi.h" 1
/**
 * @file
 * @brief SPI Devicetree macro public API header file.
 */

/*
 * Copyright (c) 2020 Nordic Semiconductor
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-spi Devicetree SPI API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Does a SPI controller node have chip select GPIOs configured?
 *
 * SPI bus controllers use the "cs-gpios" property for configuring
 * chip select GPIOs. Its value is a phandle-array which specifies the
 * chip select lines.
 *
 * Example devicetree fragment:
 *
 *     spi1: spi@... {
 *             compatible = "vnd,spi";
 *             cs-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>,
 *                        <&gpio2 20 GPIO_ACTIVE_LOW>;
 *     };
 *
 *     spi2: spi@... {
 *             compatible = "vnd,spi";
 *     };
 *
 * Example usage:
 *
 *     DT_SPI_HAS_CS_GPIOS(DT_NODELABEL(spi1)) // 1
 *     DT_SPI_HAS_CS_GPIOS(DT_NODELABEL(spi2)) // 0
 *
 * @param spi a SPI bus controller node identifier
 * @return 1 if "spi" has a cs-gpios property, 0 otherwise
 */


/**
 * @brief Number of chip select GPIOs in a SPI controller's cs-gpios property
 *
 * Example devicetree fragment:
 *
 *     spi1: spi@... {
 *             compatible = "vnd,spi";
 *             cs-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>,
 *                        <&gpio2 20 GPIO_ACTIVE_LOW>;
 *     };
 *
 *     spi2: spi@... {
 *             compatible = "vnd,spi";
 *     };
 *
 * Example usage:
 *
 *     DT_SPI_NUM_CS_GPIOS(DT_NODELABEL(spi1)) // 2
 *     DT_SPI_NUM_CS_GPIOS(DT_NODELABEL(spi2)) // 0
 *
 * @param spi a SPI bus controller node identifier
 * @return Logical length of spi's cs-gpios property, or 0 if "spi" doesn't
 *         have a cs-gpios property
 */




/**
 * @brief Does a SPI device have a chip select line configured?
 * Example devicetree fragment:
 *
 *     spi1: spi@... {
 *             compatible = "vnd,spi";
 *             cs-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>,
 *                        <&gpio2 20 GPIO_ACTIVE_LOW>;
 *
 *             a: spi-dev-a@0 {
 *                     reg = <0>;
 *             };
 *
 *             b: spi-dev-b@1 {
 *                     reg = <1>;
 *             };
 *     };
 *
 *     spi2: spi@... {
 *             compatible = "vnd,spi";
 *             c: spi-dev-c@0 {
 *                     reg = <0>;
 *             };
 *     };
 *
 * Example usage:
 *
 *     DT_SPI_DEV_HAS_CS_GPIOS(DT_NODELABEL(a)) // 1
 *     DT_SPI_DEV_HAS_CS_GPIOS(DT_NODELABEL(b)) // 1
 *     DT_SPI_DEV_HAS_CS_GPIOS(DT_NODELABEL(c)) // 0
 *
 * @param spi_dev a SPI device node identifier
 * @return 1 if spi_dev's bus node DT_BUS(spi_dev) has a chip select
 *         pin at index DT_REG_ADDR(spi_dev), 0 otherwise
 */


/**
 * @brief Get a SPI device's chip select GPIO controller's node identifier
 *
 * Example devicetree fragment:
 *
 *     gpio1: gpio@... { ... };
 *
 *     gpio2: gpio@... { ... };
 *
 *     spi@... {
 *             compatible = "vnd,spi";
 *             cs-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>,
 *                        <&gpio2 20 GPIO_ACTIVE_LOW>;
 *
 *             a: spi-dev-a@0 {
 *                     reg = <0>;
 *             };
 *
 *             b: spi-dev-b@1 {
 *                     reg = <1>;
 *             };
 *     };
 *
 * Example usage:
 *
 *     DT_SPI_DEV_CS_GPIOS_CTLR(DT_NODELABEL(a)) // DT_NODELABEL(gpio1)
 *     DT_SPI_DEV_CS_GPIOS_CTLR(DT_NODELABEL(b)) // DT_NODELABEL(gpio2)
 *
 * @param spi_dev a SPI device node identifier
 * @return node identifier for spi_dev's chip select GPIO controller
 */



/**
 * @brief Get a SPI device's chip select GPIO pin number
 *
 * It's an error if the GPIO specifier for spi_dev's entry in its
 * bus node's cs-gpios property has no pin cell.
 *
 * Example devicetree fragment:
 *
 *     spi1: spi@... {
 *             compatible = "vnd,spi";
 *             cs-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>,
 *                        <&gpio2 20 GPIO_ACTIVE_LOW>;
 *
 *             a: spi-dev-a@0 {
 *                     reg = <0>;
 *             };
 *
 *             b: spi-dev-b@1 {
 *                     reg = <1>;
 *             };
 *     };
 *
 * Example usage:
 *
 *     DT_SPI_DEV_CS_GPIOS_PIN(DT_NODELABEL(a)) // 10
 *     DT_SPI_DEV_CS_GPIOS_PIN(DT_NODELABEL(b)) // 20
 *
 * @param spi_dev a SPI device node identifier
 * @return pin number of spi_dev's chip select GPIO
 */



/**
 * @brief Get a SPI device's chip select GPIO flags
 *
 * Example devicetree fragment:
 *
 *     spi1: spi@... {
 *             compatible = "vnd,spi";
 *             cs-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
 *
 *             a: spi-dev-a@0 {
 *                     reg = <0>;
 *             };
 *     };
 *
 * Example usage:
 *
 *     DT_SPI_DEV_CS_GPIOS_FLAGS(DT_NODELABEL(a)) // GPIO_ACTIVE_LOW
 *
 * If the GPIO specifier for spi_dev's entry in its bus node's
 * cs-gpios property has no flags cell, this expands to zero.
 *
 * @param spi_dev a SPI device node identifier
 * @return flags value of spi_dev's chip select GPIO specifier, or
 *         zero if there is none
 */



/**
 * @brief Equivalent to DT_SPI_DEV_HAS_CS_GPIOS(DT_DRV_INST(inst)).
 * @param inst DT_DRV_COMPAT instance number
 * @return 1 if the instance's bus has a CS pin at index
 *         DT_INST_REG_ADDR(inst), 0 otherwise
 * @see DT_SPI_DEV_HAS_CS_GPIOS()
 */



/**
 * @brief Get GPIO controller node identifier for a SPI device instance
 * This is equivalent to DT_SPI_DEV_CS_GPIOS_CTLR(DT_DRV_INST(inst)).
 * @param inst DT_DRV_COMPAT instance number
 * @return node identifier for instance's chip select GPIO controller
 * @see DT_SPI_DEV_CS_GPIOS_CTLR()
 */



/**
 * @brief Equivalent to DT_SPI_DEV_CS_GPIOS_PIN(DT_DRV_INST(inst)).
 * @param inst DT_DRV_COMPAT instance number
 * @return pin number of the instance's chip select GPIO
 * @see DT_SPI_DEV_CS_GPIOS_PIN()
 */



/**
 * @brief DT_SPI_DEV_CS_GPIOS_FLAGS(DT_DRV_INST(inst)).
 * @param inst DT_DRV_COMPAT instance number
 * @return flags value of the instance's chip select GPIO specifier,
 *         or zero if there is none
 * @see DT_SPI_DEV_CS_GPIOS_FLAGS()
 */



/**
 * @}
 */


}
# 5337 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/dma.h" 1
/**
 * @file
 * @brief DMA Devicetree macro public API header file.
 */

/*
 * Copyright (c) 2020, Linaro Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-dmas Devicetree DMA API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the node identifier for the DMA controller from a
 *        dmas property at an index
 *
 * Example devicetree fragment:
 *
 *     dma1: dma@... { ... };
 *
 *     dma2: dma@... { ... };
 *
 *     n: node {
 *		dmas = <&dma1 1 2 0x400 0x3>,
 *			<&dma2 6 3 0x404 0x5>;
 *     };
 *
 * Example usage:
 *
 *     DT_DMAS_CTLR_BY_IDX(DT_NODELABEL(n), 0) // DT_NODELABEL(dma1)
 *     DT_DMAS_CTLR_BY_IDX(DT_NODELABEL(n), 1) // DT_NODELABEL(dma2)
 *
 * @param node_id node identifier for a node with a dmas property
 * @param idx logical index into dmas property
 * @return the node identifier for the DMA controller referenced at
 *         index "idx"
 * @see DT_PROP_BY_PHANDLE_IDX()
 */


/**
 * @brief Get the node identifier for the DMA controller from a
 *        dmas property by name
 *
 * Example devicetree fragment:
 *
 *     dma1: dma@... { ... };
 *
 *     dma2: dma@... { ... };
 *
 *     n: node {
 *		dmas = <&dma1 1 2 0x400 0x3>,
 *			<&dma2 6 3 0x404 0x5>;
 *		dma-names = "tx", "rx";
 *     };
 *
 * Example usage:
 *
 *     DT_DMAS_CTLR_BY_NAME(DT_NODELABEL(n), tx) // DT_NODELABEL(dma1)
 *     DT_DMAS_CTLR_BY_NAME(DT_NODELABEL(n), rx) // DT_NODELABEL(dma2)
 *
 * @param node_id node identifier for a node with a dmas property
 * @param name lowercase-and-underscores name of a dmas element
 *             as defined by the node's dma-names property
 * @return the node identifier for the DMA controller in the named element
 * @see DT_PHANDLE_BY_NAME()
 */



/**
 * @brief Equivalent to DT_DMAS_CTLR_BY_IDX(node_id, 0)
 * @param node_id node identifier for a node with a dmas property
 * @return the node identifier for the DMA controller at index 0
 *         in the node's "dmas" property
 * @see DT_DMAS_CTLR_BY_IDX()
 */


/**
 * @brief Get the node identifier for the DMA controller from a
 *        DT_DRV_COMPAT instance's dmas property at an index
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into dmas property
 * @return the node identifier for the DMA controller referenced at
 *         index "idx"
 * @see DT_DMAS_CTLR_BY_IDX()
 */



/**
 * @brief Get the node identifier for the DMA controller from a
 *        DT_DRV_COMPAT instance's dmas property by name
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a dmas element
 *             as defined by the node's dma-names property
 * @return the node identifier for the DMA controller in the named element
 * @see DT_DMAS_CTLR_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_DMAS_CTLR_BY_IDX(inst, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @return the node identifier for the DMA controller at index 0
 *         in the instance's "dmas" property
 * @see DT_DMAS_CTLR_BY_IDX()
 */


/**
 * @brief Get a DMA specifier's cell value at an index
 *
 * Example devicetree fragment:
 *
 *     dma1: dma@... {
 *             compatible = "vnd,dma";
 *             #dma-cells = <2>;
 *     };
 *
 *     dma2: dma@... {
 *             compatible = "vnd,dma";
 *             #dma-cells = <2>;
 *     };
 *
 *     n: node {
 *		dmas = <&dma1 1 0x400>,
 *		       <&dma2 6 0x404>;
 *     };
 *
 * Bindings fragment for the vnd,dma compatible:
 *
 *     dma-cells:
 *       - channel
 *       - config
 *
 * Example usage:
 *
 *     DT_DMAS_CELL_BY_IDX(DT_NODELABEL(n), 0, channel) // 1
 *     DT_DMAS_CELL_BY_IDX(DT_NODELABEL(n), 1, channel) // 6
 *     DT_DMAS_CELL_BY_IDX(DT_NODELABEL(n), 0, config) // 0x400
 *     DT_DMAS_CELL_BY_IDX(DT_NODELABEL(n), 1, config) // 0x404
 *
 * @param node_id node identifier for a node with a dmas property
 * @param idx logical index into dmas property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index "idx"
 * @see DT_PHA_BY_IDX()
 */



/**
 * @brief Get a DT_DRV_COMPAT instance's DMA specifier's cell value at an index
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into dmas property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index "idx"
 * @see DT_DMAS_CELL_BY_IDX()
 */



/**
 * @brief Get a DMA specifier's cell value by name
 *
 * Example devicetree fragment:
 *
 *     dma1: dma@... {
 *             compatible = "vnd,dma";
 *             #dma-cells = <2>;
 *     };
 *
 *     dma2: dma@... {
 *             compatible = "vnd,dma";
 *             #dma-cells = <2>;
 *     };
 *
 *     n: node {
 *		dmas = <&dma1 1 0x400>,
 *		       <&dma2 6 0x404>;
 *		dma-names = "tx", "rx";
 *     };
 *
 * Bindings fragment for the vnd,dma compatible:
 *
 *     dma-cells:
 *       - channel
 *       - config
 *
 * Example usage:
 *
 *     DT_DMAS_CELL_BY_NAME(DT_NODELABEL(n), tx, channel) // 1
 *     DT_DMAS_CELL_BY_NAME(DT_NODELABEL(n), rx, channel) // 6
 *     DT_DMAS_CELL_BY_NAME(DT_NODELABEL(n), tx, config) // 0x400
 *     DT_DMAS_CELL_BY_NAME(DT_NODELABEL(n), rx, config) // 0x404
 *
 * @param node_id node identifier for a node with a dmas property
 * @param name lowercase-and-underscores name of a dmas element
 *             as defined by the node's dma-names property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value in the specifier at the named element
 * @see DT_PHA_BY_NAME()
 */



/**
 * @brief Like DT_DMAS_CELL_BY_NAME(), but with a fallback to @p default_value
 *
 * If the value exists, this expands to DT_DMAS_CELL_BY_NAME(node_id,
 * name, cell). The @p default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @param node_id node identifier for a node with a dmas property
 * @param name lowercase-and-underscores name of a dmas element
 *             as defined by the node's dma-names property
 * @param cell lowercase-and-underscores cell name
 * @param default_value a fallback value to expand to
 * @return the cell's value or @p default_value
 * @see DT_PHA_BY_NAME_OR()
 */



/**
 * @brief Get a DT_DRV_COMPAT instance's DMA specifier's cell value by name
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a dmas element
 *             as defined by the node's dma-names property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value in the specifier at the named element
 * @see DT_DMAS_CELL_BY_NAME()
 */



/**
 * @brief Is index "idx" valid for a dmas property?
 * @param node_id node identifier for a node with a dmas property
 * @param idx logical index into dmas property
 * @return 1 if the "dmas" property has index "idx", 0 otherwise
 */



/**
 * @brief Is index "idx" valid for a DT_DRV_COMPAT instance's dmas property?
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into dmas property
 * @return 1 if the "dmas" property has a specifier at index "idx", 0 otherwise
 */



/**
 * @brief Does a dmas property have a named element?
 * @param node_id node identifier for a node with a dmas property
 * @param name lowercase-and-underscores name of a dmas element
 *             as defined by the node's dma-names property
 * @return 1 if the dmas property has the named element, 0 otherwise
 */



/**
 * @brief Does a DT_DRV_COMPAT instance's dmas property have a named element?
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a dmas element
 *             as defined by the node's dma-names property
 * @return 1 if the dmas property has the named element, 0 otherwise
 */



/**
 * @}
 */


}
# 5338 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/pwms.h" 1
/**
 * @file
 * @brief PWMs Devicetree macro public API header file.
 */

/*
 * Copyright (c) 2020, Linaro Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-pwms Devicetree PWMs API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the node identifier for the PWM controller from a
 *        pwms property at an index
 *
 * Example devicetree fragment:
 *
 *     pwm1: pwm-controller@... { ... };
 *
 *     pwm2: pwm-controller@... { ... };
 *
 *     n: node {
 *             pwms = <&pwm1 1 PWM_POLARITY_NORMAL>,
 *                    <&pwm2 3 PWM_POLARITY_INVERTED>;
 *     };
 *
 * Example usage:
 *
 *     DT_PWMS_CTLR_BY_IDX(DT_NODELABEL(n), 0) // DT_NODELABEL(pwm1)
 *     DT_PWMS_CTLR_BY_IDX(DT_NODELABEL(n), 1) // DT_NODELABEL(pwm2)
 *
 * @param node_id node identifier for a node with a pwms property
 * @param idx logical index into pwms property
 * @return the node identifier for the PWM controller referenced at
 *         index "idx"
 * @see DT_PROP_BY_PHANDLE_IDX()
 */



/**
 * @brief Get the node identifier for the PWM controller from a
 *        pwms property by name
 *
 * Example devicetree fragment:
 *
 *     pwm1: pwm-controller@... { ... };
 *
 *    pwm2: pwm-controller@... { ... };
 *
 *     n: node {
 *             pwms = <&pwm1 1 PWM_POLARITY_NORMAL>,
 *                    <&pwm2 3 PWM_POLARITY_INVERTED>;
 *             pwm-names = "alpha", "beta";
 *     };
 *
 * Example usage:
 *
 *     DT_PWMS_CTLR_BY_NAME(DT_NODELABEL(n), alpha) // DT_NODELABEL(pwm1)
 *     DT_PWMS_CTLR_BY_NAME(DT_NODELABEL(n), beta)  // DT_NODELABEL(pwm2)
 *
 * @param node_id node identifier for a node with a pwms property
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @return the node identifier for the PWM controller in the named element
 * @see DT_PHANDLE_BY_NAME()
 */



/**
 * @brief Equivalent to DT_PWMS_CTLR_BY_IDX(node_id, 0)
 * @param node_id node identifier for a node with a pwms property
 * @return the node identifier for the PWM controller at index 0
 *         in the node's "pwms" property
 * @see DT_PWMS_CTLR_BY_IDX()
 */


/**
 * @brief Get PWM specifier's cell value at an index
 *
 * Example devicetree fragment:
 *
 *     pwm1: pwm-controller@... {
 *             compatible = "vnd,pwm";
 *             #pwm-cells = <2>;
 *     };
 *
 *     pwm2: pwm-controller@... {
 *             compatible = "vnd,pwm";
 *             #pwm-cells = <2>;
 *     };
 *
 *     n: node {
 *             pwms = <&pwm1 1 200000 PWM_POLARITY_NORMAL>,
 *                    <&pwm2 3 100000 PWM_POLARITY_INVERTED>;
 *     };
 *
 * Bindings fragment for the "vnd,pwm" compatible:
 *
 *     pwm-cells:
 *       - channel
 *       - period
 *       - flags
 *
 * Example usage:
 *
 *     DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 0, channel) // 1
 *     DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 1, channel) // 3
 *     DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 0, period)  // 200000
 *     DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 1, period)  // 100000
 *     DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 0, flags)   // PWM_POLARITY_NORMAL
 *     DT_PWMS_CELL_BY_IDX(DT_NODELABEL(n), 1, flags)   // PWM_POLARITY_INVERTED
 *
 * @param node_id node identifier for a node with a pwms property
 * @param idx logical index into pwms property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index "idx"
 * @see DT_PHA_BY_IDX()
 */



/**
 * @brief Get a PWM specifier's cell value by name
 *
 * Example devicetree fragment:
 *
 *     pwm1: pwm-controller@... {
 *             compatible = "vnd,pwm";
 *             #pwm-cells = <2>;
 *     };
 *
 *     pwm2: pwm-controller@... {
 *             compatible = "vnd,pwm";
 *             #pwm-cells = <2>;
 *     };
 *
 *     n: node {
 *             pwms = <&pwm1 1 200000 PWM_POLARITY_NORMAL>,
 *                    <&pwm2 3 100000 PWM_POLARITY_INVERTED>;
 *             pwm-names = "alpha", "beta";
 *     };
 *
 * Bindings fragment for the "vnd,pwm" compatible:
 *
 *     pwm-cells:
 *       - channel
 *       - period
 *       - flags
 *
 * Example usage:
 *
 *     DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), alpha, channel) // 1
 *     DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), beta, channel)  // 3
 *     DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), alpha, period)  // 200000
 *     DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), beta, period)   // 100000
 *     DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), alpha, flags)   // PWM_POLARITY_NORMAL
 *     DT_PWMS_CELL_BY_NAME(DT_NODELABEL(n), beta, flags)    // PWM_POLARITY_INVERTED
 *
 * @param node_id node identifier for a node with a pwms property
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value in the specifier at the named element
 * @see DT_PHA_BY_NAME()
 */



/**
 * @brief Equivalent to DT_PWMS_CELL_BY_IDX(node_id, 0, cell)
 * @param node_id node identifier for a node with a pwms property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index 0
 * @see DT_PWMS_CELL_BY_IDX()
 */


/**
 * @brief Get a PWM specifier's channel cell value at an index
 *
 * This macro only works for PWM specifiers with cells named "channel".
 * Refer to the node's binding to check if necessary.
 *
 * This is equivalent to DT_PWMS_CELL_BY_IDX(node_id, idx, channel).
 *
 * @param node_id node identifier for a node with a pwms property
 * @param idx logical index into pwms property
 * @return the channel cell value at index "idx"
 * @see DT_PWMS_CELL_BY_IDX()
 */



/**
 * @brief Get a PWM specifier's channel cell value by name
 *
 * This macro only works for PWM specifiers with cells named "channel".
 * Refer to the node's binding to check if necessary.
 *
 * This is equivalent to DT_PWMS_CELL_BY_NAME(node_id, name, channel).
 *
 * @param node_id node identifier for a node with a pwms property
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @return the channel cell value in the specifier at the named element
 * @see DT_PWMS_CELL_BY_NAME()
 */



/**
 * @brief Equivalent to DT_PWMS_CHANNEL_BY_IDX(node_id, 0)
 * @param node_id node identifier for a node with a pwms property
 * @return the channel cell value at index 0
 * @see DT_PWMS_CHANNEL_BY_IDX()
 */


/**
 * @brief Get PWM specifier's period cell value at an index
 *
 * This macro only works for PWM specifiers with cells named "period".
 * Refer to the node's binding to check if necessary.
 *
 * This is equivalent to DT_PWMS_CELL_BY_IDX(node_id, idx, period).
 *
 * @param node_id node identifier for a node with a pwms property
 * @param idx logical index into pwms property
 * @return the period cell value at index "idx"
 * @see DT_PWMS_CELL_BY_IDX()
 */



/**
 * @brief Get a PWM specifier's period cell value by name
 *
 * This macro only works for PWM specifiers with cells named "period".
 * Refer to the node's binding to check if necessary.
 *
 * This is equivalent to DT_PWMS_CELL_BY_NAME(node_id, name, period).
 *
 * @param node_id node identifier for a node with a pwms property
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @return the period cell value in the specifier at the named element
 * @see DT_PWMS_CELL_BY_NAME()
 */



/**
 * @brief Equivalent to DT_PWMS_PERIOD_BY_IDX(node_id, 0)
 * @param node_id node identifier for a node with a pwms property
 * @return the period cell value at index 0
 * @see DT_PWMS_PERIOD_BY_IDX()
 */


/**
 * @brief Get a PWM specifier's flags cell value at an index
 *
 * This macro expects PWM specifiers with cells named "flags".
 * If there is no "flags" cell in the PWM specifier, zero is returned.
 * Refer to the node's binding to check specifier cell names if necessary.
 *
 * This is equivalent to DT_PWMS_CELL_BY_IDX(node_id, idx, flags).
 *
 * @param node_id node identifier for a node with a pwms property
 * @param idx logical index into pwms property
 * @return the flags cell value at index "idx", or zero if there is none
 * @see DT_PWMS_CELL_BY_IDX()
 */



/**
 * @brief Get a PWM specifier's flags cell value by name
 *
 * This macro expects PWM specifiers with cells named "flags".
 * If there is no "flags" cell in the PWM specifier, zero is returned.
 * Refer to the node's binding to check specifier cell names if necessary.
 *
 * This is equivalent to DT_PWMS_CELL_BY_NAME(node_id, name, flags) if
 * there is a flags cell, but expands to zero if there is none.
 *
 * @param node_id node identifier for a node with a pwms property
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @return the flags cell value in the specifier at the named element,
 *         or zero if there is none
 * @see DT_PWMS_CELL_BY_NAME()
 */



/**
 * @brief Equivalent to DT_PWMS_FLAGS_BY_IDX(node_id, 0)
 * @param node_id node identifier for a node with a pwms property
 * @return the flags cell value at index 0, or zero if there is none
 * @see DT_PWMS_FLAGS_BY_IDX()
 */


/**
 * @brief Get the node identifier for the PWM controller from a
 *        DT_DRV_COMPAT instance's pwms property at an index
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into pwms property
 * @return the node identifier for the PWM controller referenced at
 *         index "idx"
 * @see DT_PWMS_CTLR_BY_IDX()
 */



/**
 * @brief Get the node identifier for the PWM controller from a
 *        DT_DRV_COMPAT instance's pwms property by name
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @return the node identifier for the PWM controller in the named element
 * @see DT_PWMS_CTLR_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_PWMS_CTLR_BY_IDX(inst, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @return the node identifier for the PWM controller at index 0
 *         in the instance's "pwms" property
 * @see DT_PWMS_CTLR_BY_IDX()
 */


/**
 * @brief Get a DT_DRV_COMPAT instance's PWM specifier's cell value
 *        at an index
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into pwms property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index "idx"
 */



/**
 * @brief Get a DT_DRV_COMPAT instance's PWM specifier's cell value by name
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value in the specifier at the named element
 * @see DT_PWMS_CELL_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, 0, cell)
 * @param inst DT_DRV_COMPAT instance number
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index 0
 */



/**
 * @brief Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, idx, channel)
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into pwms property
 * @return the channel cell value at index "idx"
 * @see DT_INST_PWMS_CELL_BY_IDX()
 */



/**
 * @brief Equivalent to DT_INST_PWMS_CELL_BY_NAME(inst, name, channel)
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @return the channel cell value in the specifier at the named element
 * @see DT_INST_PWMS_CELL_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_PWMS_CHANNEL_BY_IDX(inst, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @return the channel cell value at index 0
 * @see DT_INST_PWMS_CHANNEL_BY_IDX()
 */


/**
 * @brief Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, idx, period)
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into pwms property
 * @return the period cell value at index "idx"
 * @see DT_INST_PWMS_CELL_BY_IDX()
 */



/**
 * @brief Equivalent to DT_INST_PWMS_CELL_BY_NAME(inst, name, period)
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @return the period cell value in the specifier at the named element
 * @see DT_INST_PWMS_CELL_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_PWMS_PERIOD_BY_IDX(inst, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @return the period cell value at index 0
 * @see DT_INST_PWMS_PERIOD_BY_IDX()
 */


/**
 * @brief Equivalent to DT_INST_PWMS_CELL_BY_IDX(inst, idx, flags)
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into pwms property
 * @return the flags cell value at index "idx", or zero if there is none
 * @see DT_INST_PWMS_CELL_BY_IDX()
 */



/**
 * @brief Equivalent to DT_INST_PWMS_CELL_BY_NAME(inst, name, flags)
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a pwms element
 *             as defined by the node's pwm-names property
 * @return the flags cell value in the specifier at the named element,
 *         or zero if there is none
 * @see DT_INST_PWMS_CELL_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_PWMS_FLAGS_BY_IDX(inst, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @return the flags cell value at index 0, or zero if there is none
 * @see DT_INST_PWMS_FLAGS_BY_IDX()
 */


/**
 * @}
 */


}
# 5339 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/fixed-partitions.h" 1
/**
 * @file
 * @brief Flash Devicetree macro public API header file.
 */

/*
 * Copyright (c) 2020, Linaro Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-fixed-partition Devicetree Fixed Partition API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get a node identifier for a fixed partition with
 *        a given label property
 *
 * Example devicetree fragment:
 *
 *     flash@... {
 *              partitions {
 *                      compatible = "fixed-partitions";
 *                      boot_partition: partition@0 {
 *                              label = "mcuboot";
 *                      };
 *                      slot0_partition: partition@c000 {
 *                              label = "image-0";
 *                      };
 *                      ...
 *              };
 *     };
 *
 * Example usage:
 *
 *     DT_NODE_BY_FIXED_PARTITION_LABEL(mcuboot) // node identifier for boot_partition
 *     DT_NODE_BY_FIXED_PARTITION_LABEL(image_0) // node identifier for slot0_partition
 *
 * @param label lowercase-and-underscores label property value
 * @return a node identifier for the partition with that label property
 */



/**
 * @brief Test if a fixed partition with a given label property exists
 * @param label lowercase-and-underscores label property value
 * @return 1 if any "fixed-partitions" child node has the given label,
 *         0 otherwise.
 */



/**
 * @brief Test if fixed-partition compatible node exists
 *
 * @param node_id DTS node to test
 * @return 1 if node exists and is fixed-partition compatible, 0 otherwise.
 */



/**
 * @brief Get a numeric identifier for a fixed partition
 * @param node_id node identifier for a fixed-partitions child node
 * @return the partition's ID, a unique zero-based index number
 */


/**
 * @brief Get the node identifier of the flash memory for a partition
 * @param node_id node identifier for a fixed-partitions child node
 * @return the node identifier of the internal memory that contains the
 * fixed-partitions node, or @ref DT_INVALID_NODE if it doesn't exist.
 */




/**
 * @brief Get the node identifier of the flash controller for a partition
 * @param node_id node identifier for a fixed-partitions child node
 * @return the node identifier of the memory technology device that
 * contains the fixed-partitions node.
 */




/**
 * @brief Get the absolute address of a fixed partition
 *
 * Example devicetree fragment:
 *
 *     &flash_controller {
 *             flash@1000000 {
 *                     compatible = "soc-nv-flash";
 *                     partitions {
 *                             compatible = "fixed-partitions";
 *                             storage_partition: partition@3a000 {
 *                                     label = "storage";
 *                             };
 *                     };
 *             };
 *     };
 *
 * Here, the "storage" partition is seen to belong to flash memory
 * starting at address 0x1000000. The partition's unit address of
 * 0x3a000 represents an offset inside that flash memory.
 *
 * Example usage:
 *
 *     DT_FIXED_PARTITION_ADDR(DT_NODELABEL(storage_partition)) // 0x103a000
 *
 * This macro can only be used with partitions of internal memory
 * addressable by the CPU. Otherwise, it may produce a compile-time
 * error, such as: `'__REG_IDX_0_VAL_ADDRESS' undeclared`.
 *
 * @param node_id node identifier for a fixed-partitions child node
 * @return the partition's offset plus the base address of the flash
 * node containing it.
 */



/**
 * @}
 */


}
# 5340 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/ordinals.h" 1
/*
 * Copyright (c) 2020 Nordic Semiconductor ASA
 * SPDX-License-Identifier: Apache-2.0
 */




/**
 * @file
 * @brief Devicetree node dependency ordinals
 */

/**
 * @defgroup devicetree-dep-ord Dependency tracking
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get a node's dependency ordinal
 * @param node_id Node identifier
 * @return the node's dependency ordinal as an integer literal
 */


/**
 * @brief Get a node's dependency ordinal in string sortable form
 * @param node_id Node identifier
 * @return the node's dependency ordinal as a zero-padded integer literal
 */


/**
 * @brief Get a list of dependency ordinals of a node's direct dependencies
 *
 * There is a comma after each ordinal in the expansion, **including**
 * the last one:
 *
 *     DT_REQUIRES_DEP_ORDS(my_node) // required_ord_1, ..., required_ord_n,
 *
 * The one case DT_REQUIRES_DEP_ORDS() expands to nothing is when
 * given the root node identifier @p DT_ROOT as argument. The root has
 * no direct dependencies; every other node at least depends on its
 * parent.
 *
 * @param node_id Node identifier
 * @return a list of dependency ordinals, with each ordinal followed
 *         by a comma (<tt>,</tt>), or an empty expansion
 */


/**
 * @brief Get a list of dependency ordinals of what depends directly on a node
 *
 * There is a comma after each ordinal in the expansion, **including**
 * the last one:
 *
 *     DT_SUPPORTS_DEP_ORDS(my_node) // supported_ord_1, ..., supported_ord_n,
 *
 * DT_SUPPORTS_DEP_ORDS() may expand to nothing. This happens when @p node_id
 * refers to a leaf node that nothing else depends on.
 *
 * @param node_id Node identifier
 * @return a list of dependency ordinals, with each ordinal followed
 *         by a comma (<tt>,</tt>), or an empty expansion
 */


/**
 * @brief Get a DT_DRV_COMPAT instance's dependency ordinal
 *
 * Equivalent to DT_DEP_ORD(DT_DRV_INST(inst)).
 *
 * @param inst instance number
 * @return The instance's dependency ordinal
 */


/**
 * @brief Get a list of dependency ordinals of a DT_DRV_COMPAT instance's
 *        direct dependencies
 *
 * Equivalent to DT_REQUIRES_DEP_ORDS(DT_DRV_INST(inst)).
 *
 * @param inst instance number
 * @return a list of dependency ordinals for the nodes the instance depends
 *         on directly
 */


/**
 * @brief Get a list of dependency ordinals of what depends directly on a
 *        DT_DRV_COMPAT instance
 *
 * Equivalent to DT_SUPPORTS_DEP_ORDS(DT_DRV_INST(inst)).
 *
 * @param inst instance number
 * @return a list of node identifiers for the nodes that depend directly
 *         on the instance
 */


/**
 * @}
 */
# 5341 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/pinctrl.h" 1
/*
 * Copyright (c) 2021 Nordic Semiconductor ASA
 * SPDX-License-Identifier: Apache-2.0
 */




/**
 * @file
 * @brief Devicetree pin control helpers
 */

/**
 * @defgroup devicetree-pinctrl Pin control
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get a node identifier for a phandle in a pinctrl property by index
 *
 * Example devicetree fragment:
 *
 *     n: node {
 *             pinctrl-0 = <&foo &bar>;
 *             pinctrl-1 = <&baz &blub>;
 *     }
 *
 * Example usage:
 *
 *     DT_PINCTRL_BY_IDX(DT_NODELABEL(n), 0, 1) // DT_NODELABEL(bar)
 *     DT_PINCTRL_BY_IDX(DT_NODELABEL(n), 1, 0) // DT_NODELABEL(baz)
 *
 * @param node_id node with a pinctrl-'pc_idx' property
 * @param pc_idx index of the pinctrl property itself
 * @param idx index into the value of the pinctrl property
 * @return node identifier for the phandle at index 'idx' in 'pinctrl-'pc_idx''
 */



/**
 * @brief Get a node identifier from a pinctrl-0 property
 *
 * This is equivalent to:
 *
 *     DT_PINCTRL_BY_IDX(node_id, 0, idx)
 *
 * It is provided for convenience since pinctrl-0 is commonly used.
 *
 * @param node_id node with a pinctrl-0 property
 * @param idx index into the pinctrl-0 property
 * @return node identifier for the phandle at index idx in the pinctrl-0
 *         property of that node
 */


/**
 * @brief Get a node identifier for a phandle inside a pinctrl node by name
 *
 * Example devicetree fragment:
 *
 *     n: node {
 *             pinctrl-0 = <&foo &bar>;
 *             pinctrl-1 = <&baz &blub>;
 *             pinctrl-names = "default", "sleep";
 *     };
 *
 * Example usage:
 *
 *     DT_PINCTRL_BY_NAME(DT_NODELABEL(n), default, 1) // DT_NODELABEL(bar)
 *     DT_PINCTRL_BY_NAME(DT_NODELABEL(n), sleep, 0) // DT_NODELABEL(baz)
 *
 * @param node_id node with a named pinctrl property
 * @param name lowercase-and-underscores pinctrl property name
 * @param idx index into the value of the named pinctrl property
 * @return node identifier for the phandle at that index in the pinctrl
 *         property
 */



/**
 * @brief Convert a pinctrl name to its corresponding index
 *
 * Example devicetree fragment:
 *
 *     n: node {
 *             pinctrl-0 = <&foo &bar>;
 *             pinctrl-1 = <&baz &blub>;
 *             pinctrl-names = "default", "sleep";
 *     };
 *
 * Example usage:
 *
 *     DT_PINCTRL_NAME_TO_IDX(DT_NODELABEL(n), default) // 0
 *     DT_PINCTRL_NAME_TO_IDX(DT_NODELABEL(n), sleep)   // 1
 *
 * @param node_id node identifier with a named pinctrl property
 * @param name lowercase-and-underscores name name of the pinctrl whose index to get
 * @return integer literal for the index of the pinctrl property with that name
 */



/**
 * @brief Convert a pinctrl property index to its name as a token
 *
 * This allows you to get a pinctrl property's name, and "remove the
 * quotes" from it.
 *
 * DT_PINCTRL_IDX_TO_NAME_TOKEN() can only be used if the node has a
 * pinctrl-'pc_idx' property and a pinctrl-names property element for
 * that index. It is an error to use it in other circumstances.
 *
 * Example devicetree fragment:
 *
 *     n: node {
 *             pinctrl-0 = <...>;
 *             pinctrl-1 = <...>;
 *             pinctrl-names = "default", "f.o.o2";
 *     };
 *
 * Example usage:
 *
 *     DT_PINCTRL_IDX_TO_NAME_TOKEN(DT_NODELABEL(n), 0) // default
 *     DT_PINCTRL_IDX_TO_NAME_TOKEN(DT_NODELABEL(n), 1) // f_o_o2
 *
 * The same caveats and restrictions that apply to DT_STRING_TOKEN()'s
 * return value also apply here.
 *
 * @param node_id node identifier
 * @param pc_idx index of a pinctrl property in that node
 * @return name of the pinctrl property, as a token, without any quotes
 *         and with non-alphanumeric characters converted to underscores
 */



/**
 * @brief Like DT_PINCTRL_IDX_TO_NAME_TOKEN(), but with an uppercased result
 *
 * This does the a similar conversion as
 * DT_PINCTRL_IDX_TO_NAME_TOKEN(node_id, pc_idx). The only difference
 * is that alphabetical characters in the result are uppercased.
 *
 * Example devicetree fragment:
 *
 *     n: node {
 *             pinctrl-0 = <...>;
 *             pinctrl-1 = <...>;
 *             pinctrl-names = "default", "f.o.o2";
 *     };
 *
 * Example usage:
 *
 *     DT_PINCTRL_IDX_TO_NAME_TOKEN(DT_NODELABEL(n), 0) // DEFAULT
 *     DT_PINCTRL_IDX_TO_NAME_TOKEN(DT_NODELABEL(n), 1) // F_O_O2
 *
 * The same caveats and restrictions that apply to
 * DT_STRING_UPPER_TOKEN()'s return value also apply here.
 */



/**
 * @brief Get the number of phandles in a pinctrl property
 *
 * Example devicetree fragment:
 *
 *     n1: node-1 {
 *             pinctrl-0 = <&foo &bar>;
 *     };
 *
 *     n2: node-2 {
 *             pinctrl-0 = <&baz>;
 *     };
 *
 * Example usage:
 *
 *     DT_NUM_PINCTRLS_BY_IDX(DT_NODELABEL(n1), 0) // 2
 *     DT_NUM_PINCTRLS_BY_IDX(DT_NODELABEL(n2), 0) // 1
 *
 * @param node_id node identifier with a pinctrl property
 * @param pc_idx index of the pinctrl property itself
 * @return number of phandles in the property with that index
 */



/**
 * @brief Like DT_NUM_PINCTRLS_BY_IDX(), but by name instead
 *
 * Example devicetree fragment:
 *
 *     n: node {
 *             pinctrl-0 = <&foo &bar>;
 *             pinctrl-1 = <&baz>
 *             pinctrl-names = "default", "sleep";
 *     };
 *
 * Example usage:
 *
 *     DT_NUM_PINCTRLS_BY_NAME(DT_NODELABEL(n), default) // 2
 *     DT_NUM_PINCTRLS_BY_NAME(DT_NODELABEL(n), sleep)   // 1
 *
 * @param node_id node identifier with a pinctrl property
 * @param name lowercase-and-underscores name name of the pinctrl property
 * @return number of phandles in the property with that name
 */



/**
 * @brief Get the number of pinctrl properties in a node
 *
 * This expands to 0 if there are no pinctrl-i properties.
 * Otherwise, it expands to the number of such properties.
 *
 * Example devicetree fragment:
 *
 *     n1: node-1 {
 *             pinctrl-0 = <...>;
 *             pinctrl-1 = <...>;
 *     };
 *
 *     n2: node-2 {
 *     };
 *
 * Example usage:
 *
 *     DT_NUM_PINCTRL_STATES(DT_NODELABEL(n1)) // 2
 *     DT_NUM_PINCTRL_STATES(DT_NODELABEL(n2)) // 0
 *
 * @param node_id node identifier; may or may not have any pinctrl properties
 * @return number of pinctrl properties in the node
 */


/**
 * @brief Test if a node has a pinctrl property with an index
 *
 * This expands to 1 if the pinctrl-'idx' property exists.
 * Otherwise, it expands to 0.
 *
 * Example devicetree fragment:
 *
 *     n1: node-1 {
 *             pinctrl-0 = <...>;
 *             pinctrl-1 = <...>;
 *     };
 *
 *     n2: node-2 {
 *     };
 *
 * Example usage:
 *
 *     DT_PINCTRL_HAS_IDX(DT_NODELABEL(n1), 0) // 1
 *     DT_PINCTRL_HAS_IDX(DT_NODELABEL(n1), 1) // 1
 *     DT_PINCTRL_HAS_IDX(DT_NODELABEL(n1), 2) // 0
 *     DT_PINCTRL_HAS_IDX(DT_NODELABEL(n2), 0) // 0
 *
 * @param node_id node identifier; may or may not have any pinctrl properties
 * @param pc_idx index of a pinctrl property whose existence to check
 * @return 1 if the property exists, 0 otherwise
 */



/**
 * @brief Test if a node has a pinctrl property with a name
 *
 * This expands to 1 if the named pinctrl property exists.
 * Otherwise, it expands to 0.
 *
 * Example devicetree fragment:
 *
 *     n1: node-1 {
 *             pinctrl-0 = <...>;
 *             pinctrl-names = "default";
 *     };
 *
 *     n2: node-2 {
 *     };
 *
 * Example usage:
 *
 *     DT_PINCTRL_HAS_NAME(DT_NODELABEL(n1), default) // 1
 *     DT_PINCTRL_HAS_NAME(DT_NODELABEL(n1), sleep)   // 0
 *     DT_PINCTRL_HAS_NAME(DT_NODELABEL(n2), default) // 0
 *
 * @param node_id node identifier; may or may not have any pinctrl properties
 * @param name lowercase-and-underscores pinctrl property name to check
 * @return 1 if the property exists, 0 otherwise
 */



/**
 * @brief Get a node identifier for a phandle in a pinctrl property by index
 *        for a DT_DRV_COMPAT instance
 *
 * This is equivalent to DT_PINCTRL_BY_IDX(DT_DRV_INST(inst), pc_idx, idx).
 *
 * @param inst instance number
 * @param pc_idx index of the pinctrl property itself
 * @param idx index into the value of the pinctrl property
 * @return node identifier for the phandle at index 'idx' in 'pinctrl-'pc_idx''
 */



/**
 * @brief Get a node identifier from a pinctrl-0 property for a
 *        DT_DRV_COMPAT instance
 *
 * This is equivalent to:
 *
 *     DT_PINCTRL_BY_IDX(DT_DRV_INST(inst), 0, idx)
 *
 * It is provided for convenience since pinctrl-0 is commonly used.
 *
 * @param inst instance number
 * @param idx index into the pinctrl-0 property
 * @return node identifier for the phandle at index idx in the pinctrl-0
 *         property of that instance
 */



/**
 * @brief Get a node identifier for a phandle inside a pinctrl node
 *        for a DT_DRV_COMPAT instance
 *
 * This is equivalent to DT_PINCTRL_BY_NAME(DT_DRV_INST(inst), name, idx).
 *
 * @param inst instance number
 * @param name lowercase-and-underscores pinctrl property name
 * @param idx index into the value of the named pinctrl property
 * @return node identifier for the phandle at that index in the pinctrl
 *         property
 */



/**
 * @brief Convert a pinctrl name to its corresponding index
 *        for a DT_DRV_COMPAT instance
 *
 * This is equivalent to DT_PINCTRL_NAME_TO_IDX(DT_DRV_INST(inst),
 * name).
 *
 * @param inst instance number
 * @param name lowercase-and-underscores name of the pinctrl whose index to get
 * @return integer literal for the index of the pinctrl property with that name
 */



/**
 * @brief Convert a pinctrl index to its name as an uppercased token
 *
 * This is equivalent to
 * DT_PINCTRL_IDX_TO_NAME_TOKEN(DT_DRV_INST(inst), pc_idx).
 *
 * @param inst instance number
 * @param pc_idx index of the pinctrl property itself
 * @return name of the pin control property as a token
 */



/**
 * @brief Convert a pinctrl index to its name as an uppercased token
 *
 * This is equivalent to
 * DT_PINCTRL_IDX_TO_NAME_UPPER_TOKEN(DT_DRV_INST(inst), idx).
 *
 * @param inst instance number
 * @param pc_idx index of the pinctrl property itself
 * @return name of the pin control property as an uppercase token
 */



/**
 * @brief Get the number of phandles in a pinctrl property
 *        for a DT_DRV_COMPAT instance
 *
 * This is equivalent to DT_NUM_PINCTRLS_BY_IDX(DT_DRV_INST(inst),
 * pc_idx).
 *
 * @param inst instance number
 * @param pc_idx index of the pinctrl property itself
 * @return number of phandles in the property with that index
 */



/**
 * @brief Like DT_INST_NUM_PINCTRLS_BY_IDX(), but by name instead
 *
 * This is equivalent to DT_NUM_PINCTRLS_BY_NAME(DT_DRV_INST(inst),
 * name).
 *
 * @param inst instance number
 * @param name lowercase-and-underscores name of the pinctrl property
 * @return number of phandles in the property with that name
 */



/**
 * @brief Get the number of pinctrl properties in a DT_DRV_COMPAT instance
 *
 * This is equivalent to DT_NUM_PINCTRL_STATES(DT_DRV_INST(inst)).
 *
 * @param inst instance number
 * @return number of pinctrl properties in the instance
 */



/**
 * @brief Test if a DT_DRV_COMPAT instance has a pinctrl property
 *        with an index
 *
 * This is equivalent to DT_PINCTRL_HAS_IDX(DT_DRV_INST(inst), pc_idx).
 *
 * @param inst instance number
 * @param pc_idx index of a pinctrl property whose existence to check
 * @return 1 if the property exists, 0 otherwise
 */



/**
 * @brief Test if a DT_DRV_COMPAT instance has a pinctrl property with a name
 *
 * This is equivalent to DT_PINCTRL_HAS_NAME(DT_DRV_INST(inst), name).
 *
 * @param inst instance number
 * @param name lowercase-and-underscores pinctrl property name to check
 * @return 1 if the property exists, 0 otherwise
 */




/**
 * @}
 */
# 5342 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/can.h" 1
/**
 * @file
 * @brief CAN devicetree macro public API header file.
 */

/*
 * Copyright (c) 2022 Vestas Wind Systems A/S
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-can Devicetree CAN API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the minimum transceiver bitrate for a CAN controller
 *
 * The bitrate will be limited to the minimum bitrate supported by the CAN
 * controller. If no CAN transceiver is present in the devicetree, the minimum
 * bitrate will be that of the CAN controller.
 *
 * Example devicetree fragment:
 *
 *     transceiver0: can-phy0 {
 *             compatible = "vnd,can-transceiver";
 *             min-bitrate = <15000>;
 *             max-bitrate = <1000000>;
 *             #phy-cells = <0>;
 *     };
 *
 *     can0: can@... {
 *             compatible = "vnd,can-controller";
 *             phys = <&transceiver0>;
 *     };
 *
 *     can1: can@... {
 *             compatible = "vnd,can-controller";
 *
 *             can-transceiver {
 *                     min-bitrate = <25000>;
 *                     max-bitrate = <2000000>;
 *             };
 *     };
 *
 *     can2: can@... {
 *             compatible = "vnd,can-controller";
 *
 *             can-transceiver {
 *                     max-bitrate = <2000000>;
 *             };
 *     };
 *
 * Example usage:
 *
 *     DT_CAN_TRANSCEIVER_MIN_BITRATE(DT_NODELABEL(can0), 10000) // 15000
 *     DT_CAN_TRANSCEIVER_MIN_BITRATE(DT_NODELABEL(can1), 0)     // 250000
 *     DT_CAN_TRANSCEIVER_MIN_BITRATE(DT_NODELABEL(can1), 50000) // 500000
 *     DT_CAN_TRANSCEIVER_MIN_BITRATE(DT_NODELABEL(can2), 0)     // 0
 *
 * @param node_id node identifier
 * @param min minimum bitrate supported by the CAN controller
 * @return the minimum bitrate supported by the CAN controller/transceiver combination
 */





/**
 * @brief Get the maximum transceiver bitrate for a CAN controller
 *
 * The bitrate will be limited to the maximum bitrate supported by the CAN
 * controller. If no CAN transceiver is present in the devicetree, the maximum
 * bitrate will be that of the CAN controller.
 *
 * Example devicetree fragment:
 *
 *     transceiver0: can-phy0 {
 *             compatible = "vnd,can-transceiver";
 *             max-bitrate = <1000000>;
 *             #phy-cells = <0>;
 *     };
 *
 *     can0: can@... {
 *             compatible = "vnd,can-controller";
 *             phys = <&transceiver0>;
 *     };
 *
 *     can1: can@... {
 *             compatible = "vnd,can-controller";
 *
 *             can-transceiver {
 *                     max-bitrate = <2000000>;
 *             };
 *     };
 *
 * Example usage:
 *
 *     DT_CAN_TRANSCEIVER_MAX_BITRATE(DT_NODELABEL(can0), 5000000) // 1000000
 *     DT_CAN_TRANSCEIVER_MAX_BITRATE(DT_NODELABEL(can1), 5000000) // 2000000
 *     DT_CAN_TRANSCEIVER_MAX_BITRATE(DT_NODELABEL(can1), 1000000) // 1000000
 *
 * @param node_id node identifier
 * @param max maximum bitrate supported by the CAN controller
 * @return the maximum bitrate supported by the CAN controller/transceiver combination
 */





/**
 * @brief Get the minimum transceiver bitrate for a DT_DRV_COMPAT CAN controller
 * @param inst DT_DRV_COMPAT instance number
 * @param min minimum bitrate supported by the CAN controller
 * @return the minimum bitrate supported by the CAN controller/transceiver combination
 * @see DT_CAN_TRANSCEIVER_MIN_BITRATE()
 */



/**
 * @brief Get the maximum transceiver bitrate for a DT_DRV_COMPAT CAN controller
 * @param inst DT_DRV_COMPAT instance number
 * @param max maximum bitrate supported by the CAN controller
 * @return the maximum bitrate supported by the CAN controller/transceiver combination
 * @see DT_CAN_TRANSCEIVER_MAX_BITRATE()
 */



/**
 * @}
 */


}
# 5343 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/reset.h" 1
/**
 * @file
 * @brief Reset Controller Devicetree macro public API header file.
 */

/*
 * Copyright (c) 2022, Andrei-Edward Popa
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-reset-controller Devicetree Reset Controller API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the node identifier for the controller phandle from a
 *        "resets" phandle-array property at an index
 *
 * Example devicetree fragment:
 *
 *     reset1: reset-controller@... { ... };
 *
 *     reset2: reset-controller@... { ... };
 *
 *     n: node {
 *             resets = <&reset1 10>, <&reset2 20>;
 *     };
 *
 * Example usage:
 *
 *     DT_RESET_CTLR_BY_IDX(DT_NODELABEL(n), 0)) // DT_NODELABEL(reset1)
 *     DT_RESET_CTLR_BY_IDX(DT_NODELABEL(n), 1)) // DT_NODELABEL(reset2)
 *
 * @param node_id node identifier
 * @param idx logical index into "resets"
 * @return the node identifier for the reset controller referenced at
 *         index "idx"
 * @see DT_PHANDLE_BY_IDX()
 */



/**
 * @brief Equivalent to DT_RESET_CTLR_BY_IDX(node_id, 0)
 * @param node_id node identifier
 * @return a node identifier for the reset controller at index 0
 *         in "resets"
 * @see DT_RESET_CTLR_BY_IDX()
 */



/**
 * @brief Get the node identifier for the controller phandle from a
 *        resets phandle-array property by name
 *
 * Example devicetree fragment:
 *
 *     reset1: reset-controller@... { ... };
 *
 *     reset2: reset-controller@... { ... };
 *
 *     n: node {
 *             resets = <&reset1 10>, <&reset2 20>;
 *             reset-names = "alpha", "beta";
 *     };
 *
 * Example usage:
 *
 *     DT_RESET_CTLR_BY_NAME(DT_NODELABEL(n), alpha) // DT_NODELABEL(reset1)
 *     DT_RESET_CTLR_BY_NAME(DT_NODELABEL(n), beta) // DT_NODELABEL(reset2)
 *
 * @param node_id node identifier
 * @param name lowercase-and-underscores name of a resets element
 *             as defined by the node's reset-names property
 * @return the node identifier for the reset controller referenced by name
 * @see DT_PHANDLE_BY_NAME()
 */



/**
 * @brief Get a reset specifier's cell value at an index
 *
 * Example devicetree fragment:
 *
 *     reset: reset-controller@... {
 *             compatible = "vnd,reset";
 *             #reset-cells = <1>;
 *     };
 *
 *     n: node {
 *             resets = <&reset 10>;
 *     };
 *
 * Bindings fragment for the vnd,reset compatible:
 *
 *     reset-cells:
 *       - id
 *
 * Example usage:
 *
 *     DT_RESET_CELL_BY_IDX(DT_NODELABEL(n), 0, id) // 10
 *
 * @param node_id node identifier for a node with a resets property
 * @param idx logical index into resets property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index "idx"
 * @see DT_PHA_BY_IDX()
 */



/**
 * @brief Get a reset specifier's cell value by name
 *
 * Example devicetree fragment:
 *
 *     reset: reset-controller@... {
 *             compatible = "vnd,reset";
 *             #reset-cells = <1>;
 *     };
 *
 *     n: node {
 *             resets = <&reset 10>;
 *             reset-names = "alpha";
 *     };
 *
 * Bindings fragment for the vnd,reset compatible:
 *
 *     reset-cells:
 *       - id
 *
 * Example usage:
 *
 *     DT_RESET_CELL_BY_NAME(DT_NODELABEL(n), alpha, id) // 10
 *
 * @param node_id node identifier for a node with a resets property
 * @param name lowercase-and-underscores name of a resets element
 *             as defined by the node's reset-names property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value in the specifier at the named element
 * @see DT_PHA_BY_NAME()
 */



/**
 * @brief Equivalent to DT_RESET_CELL_BY_IDX(node_id, 0, cell)
 * @param node_id node identifier for a node with a resets property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index 0
 * @see DT_RESET_CELL_BY_IDX()
 */



/**
 * @brief Get the node identifier for the controller phandle from a
 *        "resets" phandle-array property at an index
 *
 * @param inst instance number
 * @param idx logical index into "resets"
 * @return the node identifier for the reset controller referenced at
 *         index "idx"
 * @see DT_RESET_CTLR_BY_IDX()
 */



/**
 * @brief Equivalent to DT_INST_RESET_CTLR_BY_IDX(inst, 0)
 * @param inst instance number
 * @return a node identifier for the reset controller at index 0
 *         in "resets"
 * @see DT_RESET_CTLR()
 */



/**
 * @brief Get the node identifier for the controller phandle from a
 *        resets phandle-array property by name
 *
 * @param inst instance number
 * @param name lowercase-and-underscores name of a resets element
 *             as defined by the node's reset-names property
 * @return the node identifier for the reset controller referenced by
 *         the named element
 * @see DT_RESET_CTLR_BY_NAME()
 */



/**
 * @brief Get a DT_DRV_COMPAT instance's reset specifier's cell value
 *        at an index
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into resets property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value at index "idx"
 * @see DT_RESET_CELL_BY_IDX()
 */



/**
 * @brief Get a DT_DRV_COMPAT instance's reset specifier's cell value by name
 * @param inst DT_DRV_COMPAT instance number
 * @param name lowercase-and-underscores name of a resets element
 *             as defined by the node's reset-names property
 * @param cell lowercase-and-underscores cell name
 * @return the cell value in the specifier at the named element
 * @see DT_RESET_CELL_BY_NAME()
 */



/**
 * @brief Equivalent to DT_INST_RESET_CELL_BY_IDX(inst, 0, cell)
 * @param inst DT_DRV_COMPAT instance number
 * @param cell lowercase-and-underscores cell name
 * @return the value of the cell inside the specifier at index 0
 */



/**
 * @brief Get a Reset Controller specifier's id cell at an index
 *
 * This macro only works for Reset Controller specifiers with cells named "id".
 * Refer to the node's binding to check if necessary.
 *
 * Example devicetree fragment:
 *
 *     reset: reset-controller@... {
 *             compatible = "vnd,reset";
 *             #reset-cells = <1>;
 *     };
 *
 *     n: node {
 *             resets = <&reset 10>;
 *     };
 *
 * Bindings fragment for the vnd,reset compatible:
 *
 *     reset-cells:
 *       - id
 *
 * Example usage:
 *
 *     DT_RESET_ID_BY_IDX(DT_NODELABEL(n), 0) // 10
 *
 * @param node_id node identifier
 * @param idx logical index into "resets"
 * @return the id cell value at index "idx"
 * @see DT_PHA_BY_IDX()
 */



/**
 * @brief Equivalent to DT_RESET_ID_BY_IDX(node_id, 0)
 * @param node_id node identifier
 * @return the id cell value at index 0
 * @see DT_RESET_ID_BY_IDX()
 */



/**
 * @brief Get a DT_DRV_COMPAT instance's Reset Controller specifier's id cell value
 *        at an index
 * @param inst DT_DRV_COMPAT instance number
 * @param idx logical index into "resets"
 * @return the id cell value at index "idx"
 * @see DT_RESET_ID_BY_IDX()
 */



/**
 * @brief Equivalent to DT_INST_RESET_ID_BY_IDX(inst, 0)
 * @param inst DT_DRV_COMPAT instance number
 * @return the id cell value at index 0
 * @see DT_INST_RESET_ID_BY_IDX()
 */



/**
 * @}
 */


}
# 5344 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/mbox.h" 1
/**
 * @file
 * @brief MBOX Devicetree macro public API header file.
 */

/*
 * Copyright (c) 2022 Carlo Caione <ccaione@baylibre.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-mbox Devicetree MBOX API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Get the node identifier for the MBOX controller from a mboxes
 *	  property by name
 *
 * Example devicetree fragment:
 *
 *     mbox1: mbox-controller@... { ... };
 *
 *     n: node {
 *             mboxes = <&mbox1 8>,
 *                      <&mbox1 9>;
 *             mbox-names = "tx", "rx";
 *     };
 *
 * Example usage:
 *
 *     DT_MBOX_CTLR_BY_NAME(DT_NODELABEL(n), tx) // DT_NODELABEL(mbox1)
 *     DT_MBOX_CTLR_BY_NAME(DT_NODELABEL(n), rx) // DT_NODELABEL(mbox1)
 *
 * @param node_id node identifier for a node with a mboxes property
 * @param name lowercase-and-underscores name of a mboxes element
 *             as defined by the node's mbox-names property
 *
 * @return the node identifier for the MBOX controller in the named element
 *
 * @see DT_PHANDLE_BY_NAME()
 */



/**
 * @brief Get a MBOX channel value by name
 *
 * Example devicetree fragment:
 *
 *     mbox1: mbox@... {
 *             #mbox-cells = <1>;
 *     };
 *
 *     n: node {
 *		mboxes = <&mbox1 1>,
 *		         <&mbox1 6>;
 *		mbox-names = "tx", "rx";
 *     };
 *
 * Bindings fragment for the mbox compatible:
 *
 *     mbox-cells:
 *       - channel
 *
 * Example usage:
 *
 *     DT_MBOX_CHANNEL_BY_NAME(DT_NODELABEL(n), tx) // 1
 *     DT_MBOX_CHANNEL_BY_NAME(DT_NODELABEL(n), rx) // 6
 *
 * @param node_id node identifier for a node with a mboxes property
 * @param name lowercase-and-underscores name of a mboxes element
 *             as defined by the node's mbox-names property
 *
 * @return the channel value in the specifier at the named element or 0 if no
 *         channels are supported
 *
 * @see DT_PHA_BY_NAME_OR()
 */



/**
 * @}
 */


}
# 5345 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree/port-endpoint.h" 1
/**
 * @file
 * @brief Port / Endpoint Devicetree macro public API header file.
 */

/*
 * Copyright 2024 NXP
 * Copyright (c) 2024 tinyVision.ai Inc
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


/**
 * @defgroup devicetree-port-endpoint Devicetree Port Endpoint API
 * @ingroup devicetree
 * @{
 */

/**
 * @brief Helper for @ref DT_INST_PORT_BY_ID
 *
 * This behaves the same way as @ref DT_INST_PORT_BY_ID but does not work if there is only
 * a single port without address.
 *
 * @param inst instance number
 * @param pid port ID
 * @return port node associated with @p pid
 */




/**
 * @brief Get a port node from its id
 *
 * Given a device instance number, return a port node specified by its ID.
 * It handles various ways of how a port could be defined.
 *
 * Example usage with DT_INST_PORT_BY_ID() to get the @c port@0 or @c port node:
 *
 * @code{.c}
 *	DT_INST_PORT_BY_ID(inst, 0)
 * @endcode
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	&device {
 *		ports {
 *			#address-cells = <1>;
 *			#size-cells = <0>;
 *			port@0 {
 *				reg = <0x0>;
 *			};
 *		};
 *	};
 * @endcode
 *
 * @code{.dts}
 *	&device {
 *		#address-cells = <1>;
 *		#size-cells = <0>;
 *		port@0 {
 *			reg = <0x0>;
 *		};
 *	};
 * @endcode
 *
 * @code{.dts}
 *	&device {
 *		port {
 *		};
 *	};
 * @endcode
 *
 * @param inst instance number
 * @param pid port ID
 * @return port node associated with @p pid
 */




/**
 * @brief Helper for @ref DT_INST_ENDPOINT_BY_ID
 *
 * This behaves the same way as @ref DT_INST_PORT_BY_ID but does not work if there is only
 * a single endpoint without address.
 *
 * @param inst instance number
 * @param pid port ID
 * @param eid endpoint ID
 * @return endpoint node associated with @p eid and @p pid
 */



/**
 * @brief Get an endpoint node from its id and its parent port id
 *
 * Given a device instance number, a port ID and an endpoint ID, return the endpoint node.
 * It handles various ways of how a port and an endpoint could be defined as described in
 * @ref DT_INST_PORT_BY_ID and below.
 *
 * Example usage with DT_INST_ENDPOINT_BY_ID() to get the @c endpoint or @c endpoint@0 node:
 *
 * @code{.c}
 *	DT_INST_ENDPOINT_BY_ID(inst, 0, 0)
 * @endcode
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	&device {
 *		port {
 *			endpoint {
 *			};
 *		};
 *	};
 * @endcode
 *
 * @code{.dts}
 *	&device {
 *		port {
 *			#address-cells = <1>;
 *			#size-cells = <0>;
 *			endpoint@0 {
 *				reg = <0x0>;
 *			};
 *		};
 *	};
 * @endcode
 *
 * @code{.dts}
 *	&device {
 *		ports {
 *			#address-cells = <1>;
 *			#size-cells = <0>;
 *			port@0 {
 *				reg = <0x0>;
 *				#address-cells = <1>;
 *				#size-cells = <0>;
 *				endpoint@0 {
 *					reg = <0x0>;
 *				};
 *			};
 *		};
 *	};
 * @endcode
 *
 * @param inst instance number
 * @param pid port ID
 * @param eid endpoint ID
 * @return endpoint node associated with @p eid and @p pid
 */





/**
 * @brief Get the device node from its endpoint node.
 *
 * Given an endpoint node id, return its device node id.
 * This handles various ways of how a port and an endpoint could be defined as described in
 * @ref DT_NODE_BY_ENDPOINT.
 *
 * Example usage with DT_NODE_BY_ENDPOINT() to get the @c &device node from its @c ep0 node:
 *
 * @code{.c}
 *	DT_NODE_BY_ENDPOINT(DT_NODELABEL(ep0))
 * @endcode
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	&device {
 *		port {
 *			#address-cells = <1>;
 *			#size-cells = <0>;
 *			ep0: endpoint@0 {
 *				reg = <0x0>;
 *			};
 *		};
 *	};
 * @endcode
 *
 * @code{.dts}
 *	&device {
 *		ports {
 *			#address-cells = <1>;
 *			#size-cells = <0>;
 *			port@0 {
 *				reg = <0x0>;
 *				#address-cells = <1>;
 *				#size-cells = <0>;
 *				ep0: endpoint@0 {
 *					reg = <0x0>;
 *				};
 *			};
 *		};
 *	};
 * @endcode
 *
 * @param ep endpoint node
 * @return device node associated with @p ep
 */




/**
 * @brief Get the remote device node from a local endpoint node.
 *
 * Given an endpoint node id, return the remote device node that connects to this device via this
 * local endpoint. This handles various ways of how a port and an endpoint could be defined as
 * described in @ref DT_INST_PORT_BY_ID and @ref DT_INST_ENDPOINT_BY_ID.
 *
 * Example usage with DT_NODE_REMOTE_DEVICE() to get the remote device node @c &device1 from the
 * local endpoint @c endpoint@0 node of the device @c &device0 node:
 *
 * @code{.c}
 *	DT_NODE_REMOTE_DEVICE(DT_NODELABEL(device0_ep_out))
 * @endcode
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	&device0 {
 *		port {
 *			#address-cells = <1>;
 *			#size-cells = <0>;
 *			device0_ep_out: endpoint@0 {
 *				reg = <0x0>;
 *				remote-endpoint-label = "device1_ep_in";
 *			};
 *		};
 *	};
 *
 *	&device1 {
 *		ports {
 *			#address-cells = <1>;
 *			#size-cells = <0>;
 *			port@0 {
 *				reg = <0x0>;
 *				device1_ep_in: endpoint {
 *					remote-endpoint-label = "device0_ep_out";
 *				};
 *			};
 *		};
 *	};
 * @endcode
 *
 * @param ep endpoint node
 * @return remote device node that connects to this device via @p ep
 */



/**
 * @}
 */


}
# 5346 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 2
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/thread.h" 1
/*
 * Copyright (c) 2017 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Per-arch thread definition
 *
 * This file contains definitions for
 *
 *  struct _thread_arch
 *  struct _callee_saved
  *
 * necessary to instantiate instances of struct k_thread.
 */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/thread.h" 2

struct _callee_saved {
 uint32_t v1;
 uint32_t v2;
 uint32_t v3;
 uint32_t v4;
 uint32_t v5;
 uint32_t v6;
 uint32_t v7;
 uint32_t v8;
 uint32_t psp;



};

typedef struct _callee_saved _callee_saved_t;


struct _preempt_float {
 float s16;
 float s17;
 float s18;
 float s19;
 float s20;
 float s21;
 float s22;
 float s23;
 float s24;
 float s25;
 float s26;
 float s27;
 float s28;
 float s29;
 float s30;
 float s31;
};


struct _thread_arch {

 /* interrupt locking key */
 uint32_t basepri;

 /* r0 in stack frame cannot be written to reliably */
 uint32_t swap_return_value;


 /*
	 * No cooperative floating point register set structure exists for
	 * the Cortex-M as it automatically saves the necessary registers
	 * in its exception stack frame.
	 */
 struct _preempt_float preempt_float;







 /*
	 * Status variable holding several thread status flags
	 * as follows:
	 *
	 * byte 0
	 * +-bits 4-7-----bit-3----------bit-2--------bit-1---+----bit-0------+
	 * :          |             |              |          |               |
	 * : reserved |<Guard FLOAT>|   reserved   | reserved |  <priv mode>  |
	 * :   bits   |             |              |          | CONTROL.nPRIV |
	 * +------------------------------------------------------------------+
	 *
	 * byte 1
	 * +----------------------------bits 8-15-----------------------------+
	 * :              Least significant byte of EXC_RETURN                |
	 * : bit 15| bit 14| bit 13 | bit 12| bit 11 | bit 10 | bit 9 | bit 8 |
	 * :  Res  |   S   |  DCRS  | FType |  Mode  | SPSel  |  Res  |  ES   |
	 * +------------------------------------------------------------------+
	 *
	 * Bit 0: thread's current privileged mode (Supervisor or User mode)
	 *        Mirrors CONTROL.nPRIV flag.
	 * Bit 2: Deprecated in favor of FType. Note: FType = !CONTROL.FPCA.
	 *        indicating whether the thread has an active FP context.
	 *        Mirrors CONTROL.FPCA flag.
	 * Bit 3: indicating whether the thread is applying the long (FLOAT)
	 *        or the default MPU stack guard size.
	 *
	 * Bits 8-15: Least significant octet of the EXC_RETURN value when a
	 *            thread is switched-out. The value is copied from LR when
	 *            entering the PendSV handler. When the thread is
	 *            switched in again, the value is restored to LR before
	 *            exiting the PendSV handler.
	 */
 union {
  uint32_t mode;


  struct {
   uint8_t mode_bits;
   uint8_t mode_exc_return;
   uint16_t mode_reserved2;
  };

 };
# 137 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/thread.h"
};




typedef struct _thread_arch _thread_arch_t;
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/exception.h" 1
/*
 * Copyright (c) 2013-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 public exception handling
 *
 * ARM AArch32-specific kernel exception handling interface. Included by
 * arm/arch.h.
 */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/exception.h" 1
/*
 * Copyright (c) 2013-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 Cortex-M public exception handling
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 1
/*
 * SPDX-License-Identifier: Apache-2.0
 * Copyright (c) 2020 Nordic Semiconductor
 * Copyright (c) 2020, Linaro Ltd.
 *
 * Not a generated file. Feel free to modify.
 */

/**
 * @file
 * @brief Devicetree main header
 *
 * API for accessing the current application's devicetree macros.
 */
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/exception.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/nvic.h" 1
/*
 * Copyright (c) 2020, Linaro Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 1
/*
 * SPDX-License-Identifier: Apache-2.0
 * Copyright (c) 2020 Nordic Semiconductor
 * Copyright (c) 2020, Linaro Ltd.
 *
 * Not a generated file. Feel free to modify.
 */

/**
 * @file
 * @brief Devicetree main header
 *
 * API for accessing the current application's devicetree macros.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/nvic.h" 2
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/exception.h" 2

/* for assembler, only works with constants */


/*
 * In architecture variants with non-programmable fault exceptions
 * (e.g. Cortex-M Baseline variants), hardware ensures processor faults
 * are given the highest interrupt priority level. SVCalls are assigned
 * the highest configurable priority level (level 0); note, however, that
 * this interrupt level may be shared with HW interrupts.
 *
 * In Cortex variants with programmable fault exception priorities we
 * assign the highest interrupt priority level (level 0) to processor faults
 * with configurable priority.
 * The highest priority level may be shared with either Zero-Latency IRQs (if
 * support for the feature is enabled) or with SVCall priority level.
 * Regular HW IRQs are always assigned priority levels lower than the priority
 * levels for SVCalls, Zero-Latency IRQs and processor faults.
 *
 * PendSV IRQ (which is used in Cortex-M variants to implement thread
 * context-switching) is assigned the lowest IRQ priority level.
 */
# 55 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/exception.h"
/* Use lowest possible priority level for PendSV */






# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 63 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/exception.h" 2


extern "C" {




/* Registers s16-s31 (d8-d15, q4-q7) must be preserved across subroutine calls.
 *
 * Registers s0-s15 (d0-d7, q0-q3) do not have to be preserved (and can be used
 * for passing arguments or returning results in standard procedure-call variants).
 *
 * Registers d16-d31 (q8-q15), do not have to be preserved.
 */
struct __fpu_sf {
 uint32_t s[16];



 uint32_t fpscr;
 uint32_t undefined;
};


/* Additional register state that is not stacked by hardware on exception
 * entry.
 *
 * These fields are ONLY valid in the ESF copy passed into z_arm_fatal_error().
 * When information for a member is unavailable, the field is set to zero.
 */
# 101 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/exception.h"
/* ARM GPRs are often designated by two different names */





struct arch_esf {
 struct __basic_sf {
  union { uint32_t a1, r0; };
  union { uint32_t a2, r1; };
  union { uint32_t a3, r2; };
  union { uint32_t a4, r3; };
  union { uint32_t ip, r12; };
  union { uint32_t lr, r14; };
  union { uint32_t pc, r15; };
  uint32_t xpsr;
 } basic;

 struct __fpu_sf fpu;




};

extern uint32_t z_arm_coredump_fault_sp;

extern void z_arm_exc_exit(void);


}
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/exception.h" 2
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/irq.h" 1
/*
 * Copyright (c) 2013-2014 Wind River Systems, Inc.
 * Copyright (c) 2019 Nordic Semiconductor ASA.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 public interrupt handling
 *
 * ARM AArch32-specific kernel interrupt handling interface. Included by
 * arm/arch.h.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h" 1
/*
 * Copyright (c) 2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Software-managed ISR table
 *
 * Data types for a software-managed ISR table, with a parameter per-ISR.
 */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 1
/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h"
/*
 * SPDX-License-Identifier: Apache-2.0
 * Copyright (c) 2020 Nordic Semiconductor
 * Copyright (c) 2020, Linaro Ltd.
 *
 * Not a generated file. Feel free to modify.
 */

/**
 * @file
 * @brief Devicetree main header
 *
 * API for accessing the current application's devicetree macros.
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/init.h" 1
/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/init.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/init.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h"
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/init.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/init.h" 2


extern "C" {


/**
 * @defgroup sys_init System Initialization
 * @ingroup os_services
 *
 * Zephyr offers an infrastructure to call initialization code before `main`.
 * Such initialization calls can be registered using SYS_INIT() or
 * SYS_INIT_NAMED() macros. By using a combination of initialization levels and
 * priorities init sequence can be adjusted as needed. The available
 * initialization levels are described, in order, below:
 *
 * - `EARLY`: Used very early in the boot process, right after entering the C
 *   domain (``z_cstart()``). This can be used in architectures and SoCs that
 *   extend or implement architecture code and use drivers or system services
 *   that have to be initialized before the Kernel calls any architecture
 *   specific initialization code.
 * - `PRE_KERNEL_1`: Executed in Kernel's initialization context, which uses
 *   the interrupt stack. At this point Kernel services are not yet available.
 * - `PRE_KERNEL_2`: Same as `PRE_KERNEL_1`.
 * - `POST_KERNEL`: Executed after Kernel is alive. From this point on, Kernel
 *   primitives can be used.
 * - `APPLICATION`: Executed just before application code (`main`).
 * - `SMP`: Only available if @kconfig{CONFIG_SMP} is enabled, specific for
 *   SMP.
 *
 * Initialization priority can take a value in the range of 0 to 99.
 *
 * @note The same infrastructure is used by devices.
 * @{
 */

struct device;

/**
 * @brief Structure to store initialization entry information.
 *
 * @internal
 * Init entries need to be defined following these rules:
 *
 * - Their name must be set using Z_INIT_ENTRY_NAME().
 * - They must be placed in a special init section, given by
 *   Z_INIT_ENTRY_SECTION().
 * - They must be aligned, e.g. using Z_DECL_ALIGN().
 *
 * See SYS_INIT_NAMED() for an example.
 * @endinternal
 */
struct init_entry {
 /**
	 * If the init function belongs to a SYS_INIT, this field stored the
	 * initialization function, otherwise it is set to NULL.
	 */
 int (*init_fn)(void);
 /**
	 * If the init entry belongs to a device, this fields stores a
	 * reference to it, otherwise it is set to NULL.
	 */
 const struct device *dev;
};

/** @cond INTERNAL_HIDDEN */

/* Helper definitions to evaluate level equality */







/* Init level ordinals */







/**
 * @brief Obtain init entry name.
 *
 * @param init_id Init entry unique identifier.
 */


/**
 * @brief Init entry section.
 *
 * Each init entry is placed in a section with a name crafted so that it allows
 * linker scripts to sort them according to the specified
 * level/priority/sub-priority.
 */




/** @endcond */

/**
 * @brief Obtain the ordinal for an init level.
 *
 * @param level Init level (EARLY, PRE_KERNEL_1, PRE_KERNEL_2, POST_KERNEL,
 * APPLICATION, SMP).
 *
 * @return Init level ordinal.
 */
# 134 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/init.h"
/**
 * @brief Register an initialization function.
 *
 * The function will be called during system initialization according to the
 * given level and priority.
 *
 * @param init_fn Initialization function.
 * @param level Initialization level. Allowed tokens: `EARLY`, `PRE_KERNEL_1`,
 * `PRE_KERNEL_2`, `POST_KERNEL`, `APPLICATION` and `SMP` if
 * @kconfig{CONFIG_SMP} is enabled.
 * @param prio Initialization priority within @p _level. Note that it must be a
 * decimal integer literal without leading zeroes or sign (e.g. `32`), or an
 * equivalent symbolic name (e.g. `#define MY_INIT_PRIO 32`); symbolic
 * expressions are **not** permitted (e.g.
 * `CONFIG_KERNEL_INIT_PRIORITY_DEFAULT + 5`).
 */



/**
 * @brief Register an initialization function (named).
 *
 * @note This macro can be used for cases where the multiple init calls use the
 * same init function.
 *
 * @param name Unique name for SYS_INIT entry.
 * @param init_fn_ See SYS_INIT().
 * @param level See SYS_INIT().
 * @param prio See SYS_INIT().
 *
 * @see SYS_INIT()
 */





/** @} */


}
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/pm/state.h" 1
/*
 * Copyright (c) 2020 Intel corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/pm/state.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 1
/*
 * SPDX-License-Identifier: Apache-2.0
 * Copyright (c) 2020 Nordic Semiconductor
 * Copyright (c) 2020, Linaro Ltd.
 *
 * Not a generated file. Feel free to modify.
 */

/**
 * @file
 * @brief Devicetree main header
 *
 * API for accessing the current application's devicetree macros.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/pm/state.h" 2


extern "C" {


/**
 * @brief System Power Management States
 * @defgroup subsys_pm_states States
 * @ingroup subsys_pm
 * @{
 */

/**
 * @enum pm_state Power management state
 */
enum pm_state {
 /**
	 * @brief Runtime active state
	 *
	 * The system is fully powered and active.
	 *
	 * @note This state is correlated with ACPI G0/S0 state
	 */
 PM_STATE_ACTIVE,
 /**
	 * @brief Runtime idle state
	 *
	 * Runtime idle is a system sleep state in which all of the cores
	 * enter deepest possible idle state and wait for interrupts, no
	 * requirements for the devices, leaving them at the states where
	 * they are.
	 *
	 * @note This state is correlated with ACPI S0ix state
	 */
 PM_STATE_RUNTIME_IDLE,
 /**
	 * @brief Suspend to idle state
	 *
	 * The system goes through a normal platform suspend where it puts
	 * all of the cores in deepest possible idle state and *may* puts
	 * peripherals into low-power states. No operating state is lost (ie.
	 * the cpu core does not lose execution context), so the system can go
	 * back to where it left off easily enough.
	 *
	 * @note This state is correlated with ACPI S1 state
	 */
 PM_STATE_SUSPEND_TO_IDLE,
 /**
	 * @brief Standby state
	 *
	 * In addition to putting peripherals into low-power states all
	 * non-boot CPUs are powered off. It should allow more energy to be
	 * saved relative to suspend to idle, but the resume latency will
	 * generally be greater than for that state. But it should be the same
	 * state with suspend to idle state on uniprocessor system.
	 *
	 * @note This state is correlated with ACPI S2 state
	 */
 PM_STATE_STANDBY,
 /**
	 * @brief Suspend to ram state
	 *
	 * This state offers significant energy savings by powering off as much
	 * of the system as possible, where memory should be placed into the
	 * self-refresh mode to retain its contents. The state of devices and
	 * CPUs is saved and held in memory, and it may require some boot-
	 * strapping code in ROM to resume the system from it.
	 *
	 * @note This state is correlated with ACPI S3 state
	 */
 PM_STATE_SUSPEND_TO_RAM,
 /**
	 * @brief Suspend to disk state
	 *
	 * This state offers significant energy savings by powering off as much
	 * of the system as possible, including the memory. The contents of
	 * memory are written to disk or other non-volatile storage, and on
	 * resume it's read back into memory with the help of boot-strapping
	 * code, restores the system to the same point of execution where it
	 * went to suspend to disk.
	 *
	 * @note This state is correlated with ACPI S4 state
	 */
 PM_STATE_SUSPEND_TO_DISK,
 /**
	 * @brief Soft off state
	 *
	 * This state consumes a minimal amount of power and requires a large
	 * latency in order to return to runtime active state. The contents of
	 * system(CPU and memory) will not be preserved, so the system will be
	 * restarted as if from initial power-up and kernel boot.
	 *
	 * @note This state is correlated with ACPI G2/S5 state
	 */
 PM_STATE_SOFT_OFF,
 /** Number of power management states (internal use) */
 PM_STATE_COUNT,
};

/**
 * Information about a power management state
 */
struct pm_state_info {
 enum pm_state state;

 /**
	 * Some platforms have multiple states that map to
	 * one Zephyr power state. This property allows the platform
	 * distinguish them. e.g:
	 *
	 * @code{.dts}
	 *	power-states {
	 *		state0: state0 {
	 *			compatible = "zephyr,power-state";
	 *			power-state-name = "suspend-to-idle";
	 *			substate-id = <1>;
	 *			min-residency-us = <10000>;
	 *			exit-latency-us = <100>;
	 *		};
	 *		state1: state1 {
	 *			compatible = "zephyr,power-state";
	 *			power-state-name = "suspend-to-idle";
	 *			substate-id = <2>;
	 *			min-residency-us = <20000>;
	 *			exit-latency-us = <200>;
	 *			zephyr,pm-device-disabled;
	 *		};
	 *	};
	 * @endcode
	 */
 uint8_t substate_id;

 /**
	 * Whether or not this state triggers device power management.
	 *
	 * When this property is false the power management subsystem
	 * will suspend devices before entering this state and will
	 * properly resume them when leaving it.
	 */
 bool pm_device_disabled;

 /**
	 * Minimum residency duration in microseconds. It is the minimum
	 * time for a given idle state to be worthwhile energywise.
	 *
	 * @note 0 means that this property is not available for this state.
	 */
 uint32_t min_residency_us;

 /**
	 * Worst case latency in microseconds required to exit the idle state.
	 *
	 * @note 0 means that this property is not available for this state.
	 */
 uint32_t exit_latency_us;
};

/**
 * Power state information needed to lock a power state.
 */
struct pm_state_constraint {
  /**
	  * Power management state
	  *
	  * @see pm_state
	  **/
 enum pm_state state;
  /**
	  * Power management sub-state
	  *
	  * @see pm_state
	  **/
 uint8_t substate_id;
};

/** @cond INTERNAL_HIDDEN */

/**
 * @brief Helper macro that expands to 1 if a phandle node is enabled, 0 otherwise.
 *
 * @param node_id Node identifier.
 * @param prop Property holding phandle-array.
 * @param idx Index within the array.
 */




/**
 * @brief Helper macro to initialize an entry of a struct pm_state_info array
 * when using UTIL_LISTIFY in PM_STATE_INFO_LIST_FROM_DT_CPU.
 *
 * @note Only enabled states are initialized.
 *
 * @param i UTIL_LISTIFY entry index.
 * @param node_id A node identifier with compatible zephyr,power-state
 */




/**
 * @brief Helper macro to initialize an entry of a struct pm_state array when
 * using UTIL_LISTIFY in PM_STATE_LIST_FROM_DT_CPU.
 *
 * @note Only enabled states are initialized.
 *
 * @param i UTIL_LISTIFY entry index.
 * @param node_id A node identifier with compatible zephyr,power-state
 */




/** @endcond */

/**
 * @brief Initializer for struct pm_state_info given a DT node identifier with
 * zephyr,power-state compatible.
 *
 * @param node_id A node identifier with compatible zephyr,power-state
 */
# 243 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/pm/state.h"
/**
 * @brief Initializer for enum pm_state given a DT node identifier with
 * zephyr,power-state compatible.
 *
 * @param node_id A node identifier with compatible zephyr,power-state
 */



/**
 * @brief Obtain number of CPU power states supported and enabled by the given
 * CPU node identifier.
 *
 * @param node_id A CPU node identifier.
 * @return Number of supported and enabled CPU power states.
 */





/**
 * @brief Initialize an array of struct pm_state_info with information from all
 * the states present and enabled in the given CPU node identifier.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	cpus {
 *		...
 *		cpu0: cpu@0 {
 *			device_type = "cpu";
 *			...
 *			cpu-power-states = <&state0 &state1>;
 *		};
 *
 *		power-states {
 *			state0: state0 {
 *				compatible = "zephyr,power-state";
 *				power-state-name = "suspend-to-idle";
 *				min-residency-us = <10000>;
 *				exit-latency-us = <100>;
 *			};
 *
 *			state1: state1 {
 *				compatible = "zephyr,power-state";
 *				power-state-name = "suspend-to-ram";
 *				min-residency-us = <50000>;
 *				exit-latency-us = <500>;
 *				zephyr,pm-device-disabled;
 *			};
 *		};
 *	};

 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 * const struct pm_state_info states[] =
 *	PM_STATE_INFO_LIST_FROM_DT_CPU(DT_NODELABEL(cpu0));
 * @endcode
 *
 * @param node_id A CPU node identifier.
 */






/**
 * @brief Initialize an array of struct pm_state with information from all the
 * states present and enabled in the given CPU node identifier.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	cpus {
 *		...
 *		cpu0: cpu@0 {
 *			device_type = "cpu";
 *			...
 *			cpu-power-states = <&state0 &state1>;
 *		};
 *
 *		power-states {
 *			state0: state0 {
 *				compatible = "zephyr,power-state";
 *				power-state-name = "suspend-to-idle";
 *				min-residency-us = <10000>;
 *				exit-latency-us = <100>;
 *			};
 *
 *			state1: state1 {
 *				compatible = "zephyr,power-state";
 *				power-state-name = "suspend-to-ram";
 *				min-residency-us = <50000>;
 *				exit-latency-us = <500>;
 *			};
 *		};
 *	};
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 * const enum pm_state states[] = PM_STATE_LIST_FROM_DT_CPU(DT_NODELABEL(cpu0));
 * @endcode
 *
 * @param node_id A CPU node identifier.
 */
# 379 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/pm/state.h"
static inline uint8_t pm_state_cpu_get_all(uint8_t cpu, const struct pm_state_info **states)
{
 (void)(cpu);
 (void)(states);

 return 0;
}




}
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h" 1
/*
 * Copyright (c) 2020 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h" 2

/**
 * @defgroup device-mmio Device memory-mapped IO management
 * @ingroup device_model
 *
 * Definitions and helper macros for managing driver memory-mapped
 * input/output (MMIO) regions appropriately in either RAM or ROM.
 *
 * In most cases drivers will just want to include device.h, but
 * including this separately may be needed for arch-level driver code
 * which uses the DEVICE_MMIO_TOPLEVEL variants and including the
 * main device.h would introduce header dependency loops due to that
 * header's reliance on kernel.h.
 *
 * @{
 */

/* Storing MMIO addresses in RAM is a system-wide decision based on
 * configuration. This is just used to simplify some other definitions.
 *
 * If we have an MMU enabled, all physical MMIO regions must be mapped into
 * the kernel's virtual address space at runtime, this is a hard requirement.
 *
 * If we have PCIE enabled, this does mean that non-PCIE drivers may waste
 * a bit of RAM, but systems with PCI express are not RAM constrained.
 */
# 46 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 47 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 48 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h"
/*
 * Copyright (c) 2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h" 2




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h" 1
/*
 * Copyright (c) 2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h" 2

/**
 * @defgroup kernel_mm_internal_apis Kernel Memory Management Internal APIs
 * @ingroup internal_api
 * @{
 */

/**
 * @def K_MEM_VIRT_OFFSET
 * @brief Address offset of permanent virtual mapping from physical address.
 *
 * This is the offset to subtract from a virtual address mapped in the
 * kernel's permanent mapping of RAM, to obtain its physical address.
 *
 *     virt_addr = phys_addr + K_MEM_VIRT_OFFSET
 *
 * This only works for virtual addresses within the interval
 * [CONFIG_KERNEL_VM_BASE, CONFIG_KERNEL_VM_BASE + (CONFIG_SRAM_SIZE * 1024)).
 *
 * These macros are intended for assembly, linker code, and static initializers.
 * Use with care.
 *
 * Note that when demand paging is active, these will only work with page
 * frames that are pinned to their virtual mapping at boot.
 *
 * TODO: This will likely need to move to an arch API or need additional
 * constraints defined.
 */







/**
 * @brief Get physical address from virtual address.
 *
 * This only works in the kernel's permanent mapping of RAM.
 *
 * @param virt Virtual address
 *
 * @return Physical address.
 */


/**
 * @brief Get virtual address from physical address.
 *
 * This only works in the kernel's permanent mapping of RAM.
 *
 * @param phys Physical address
 *
 * @return Virtual address.
 */
# 80 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h"
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 81 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 82 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */

/**
 *  @file  inttypes.h
 */
# 83 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h"
/*
 * Copyright (c) 2011-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 84 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_manage.h" 1
/*
 * Copyright (c) 2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




/**
 * @brief Memory Management
 * @defgroup memory_management Memory Management
 * @ingroup os_services
 * @{
 */


# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_manage.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_manage.h" 2


# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_manage.h"
/**
 * @brief Check if a physical address is within range of physical memory.
 *
 * This checks if the physical address (@p virt) is within
 * permissible range, e.g. between
 * :kconfig:option:`CONFIG_SRAM_BASE_ADDRESS` and
 * (:kconfig:option:`CONFIG_SRAM_BASE_ADDRESS` +
 *  :kconfig:option:`CONFIG_SRAM_SIZE`).
 *
 * @note Only used if
 * :kconfig:option:`CONFIG_KERNEL_VM_USE_CUSTOM_MEM_RANGE_CHECK`
 * is enabled.
 *
 * @param phys Physical address to be checked.
 *
 * @return True if physical address is within range, false if not.
 */
bool sys_mm_is_phys_addr_in_range(uintptr_t phys);

/**
 * @brief Check if a virtual address is within range of virtual memory.
 *
 * This checks if the virtual address (@p virt) is within
 * permissible range, e.g. between
 * :kconfig:option:`CONFIG_KERNEL_VM_BASE` and
 * (:kconfig:option:`CONFIG_KERNEL_VM_BASE` +
 *  :kconfig:option:`CONFIG_KERNEL_VM_SIZE`).
 *
 * @note Only used if
 * :kconfig:option:`CONFIG_KERNEL_VM_USE_CUSTOM_MEM_RANGE_CHECK`
 * is enabled.
 *
 * @param virt Virtual address to be checked.
 *
 * @return True if virtual address is within range, false if not.
 */
bool sys_mm_is_virt_addr_in_range(void *virt);

/** @} */
# 85 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h" 2

/**
 * @brief Get physical address from virtual address.
 *
 * This only works in the kernel's permanent mapping of RAM.
 *
 * Just like K_MEM_PHYS_ADDR() but with type safety and assertions.
 *
 * @param virt Virtual address
 *
 * @return Physical address.
 */
static inline uintptr_t k_mem_phys_addr(void *virt)
{
 uintptr_t addr = (uintptr_t)virt;
# 117 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h"
 /* Should be identity-mapped */
 { }
# 129 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h"
                       ;


 /* TODO add assertion that this page is pinned to boot mapping,
	 * the above checks won't be sufficient with demand paging
	 */

 return ((addr) - 0);
}

/**
 * @brief Get virtual address from physical address.
 *
 * This only works in the kernel's permanent mapping of RAM.
 *
 * Just like K_MEM_VIRT_ADDR() but with type safety and assertions.
 *
 * @param phys Physical address
 *
 * @return Virtual address.
 */
static inline void *k_mem_virt_addr(uintptr_t phys)
{




 { }
# 166 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/mm.h"
                                                            ;


 /* TODO add assertion that this page frame is pinned to boot mapping,
	 * the above check won't be sufficient with demand paging
	 */

 return (void *)((phys) + 0);
}


extern "C" {


/**
 * Map a physical memory region into the kernel's virtual address space
 *
 * This function is intended for mapping memory-mapped I/O regions into
 * the virtual address space. Given a physical address and a size, return a
 * linear address representing the base of where the physical region is mapped
 * in the virtual address space for the Zephyr kernel.
 *
 * The memory mapped via this function must be unmapped using
 * k_mem_unmap_phys_bare().
 *
 * This function alters the active page tables in the area reserved
 * for the kernel. This function will choose the virtual address
 * and return it to the caller.
 *
 * Portable code should never assume that phys_addr and linear_addr will
 * be equal.
 *
 * Caching and access properties are controlled by the 'flags' parameter.
 * Unused bits in 'flags' are reserved for future expansion.
 * A caching mode must be selected. By default, the region is read-only
 * with user access and code execution forbidden. This policy is changed
 * by passing K_MEM_CACHE_* and K_MEM_PERM_* macros into the 'flags' parameter.
 *
 * If there is insufficient virtual address space for the mapping this will
 * generate a kernel panic.
 *
 * This API is only available if CONFIG_MMU is enabled.
 *
 * It is highly discouraged to use this function to map system RAM page
 * frames. It may conflict with anonymous memory mappings and demand paging
 * and produce undefined behavior.  Do not use this for RAM unless you know
 * exactly what you are doing. If you need a chunk of memory, use k_mem_map().
 * If you need a contiguous buffer of physical memory, statically declare it
 * and pin it at build time, it will be mapped when the system boots.
 *
 * This API is part of infrastructure still under development and may
 * change.
 *
 * @param[out] virt_ptr Output virtual address storage location
 * @param[in]  phys Physical address base of the memory region
 * @param[in]  size Size of the memory region
 * @param[in]  flags Caching mode and access flags, see K_MAP_* macros
 */
void k_mem_map_phys_bare(uint8_t **virt_ptr, uintptr_t phys, size_t size,
    uint32_t flags);

/**
 * Unmap a virtual memory region from kernel's virtual address space.
 *
 * This function is intended to be used by drivers and early boot routines
 * where temporary memory mappings need to be made. This allows these
 * memory mappings to be discarded once they are no longer needed.
 *
 * This function alters the active page tables in the area reserved
 * for the kernel.
 *
 * This will align the input parameters to page boundaries so that
 * this can be used with the virtual address as returned by
 * k_mem_map_phys_bare().
 *
 * This API is only available if CONFIG_MMU is enabled.
 *
 * It is highly discouraged to use this function to unmap memory mappings.
 * It may conflict with anonymous memory mappings and demand paging and
 * produce undefined behavior. Do not use this unless you know exactly
 * what you are doing.
 *
 * This API is part of infrastructure still under development and may
 * change.
 *
 * @param virt Starting address of the virtual address region to be unmapped.
 * @param size Size of the virtual address region
 */
void k_mem_unmap_phys_bare(uint8_t *virt, size_t size);

/**
 * Map memory into virtual address space with guard pages.
 *
 * This maps memory into virtual address space with a preceding and
 * a succeeding guard pages. The memory mapped via this function must be
 * unmapped using k_mem_unmap_phys_guard().
 *
 * This function maps a contiguous physical memory region into kernel's
 * virtual address space with a preceding and a succeeding guard pages.
 * Given a physical address and a size, return a linear address representing
 * the base of where the physical region is mapped in the virtual address
 * space for the Zephyr kernel.
 *
 * This function alters the active page tables in the area reserved
 * for the kernel. This function will choose the virtual address
 * and return it to the caller.
 *
 * If user thread access control needs to be managed in any way, do not enable
 * K_MEM_PERM_USER flags here; instead manage the region's permissions
 * with memory domain APIs after the mapping has been established. Setting
 * K_MEM_PERM_USER here will allow all user threads to access this memory
 * which is usually undesirable.
 *
 * Unless K_MEM_MAP_UNINIT is used, the returned memory will be zeroed.
 *
 * The returned virtual memory pointer will be page-aligned. The size
 * parameter, and any base address for re-mapping purposes must be page-
 * aligned.
 *
 * Note that the allocation includes two guard pages immediately before
 * and after the requested region. The total size of the allocation will be
 * the requested size plus the size of these two guard pages.
 *
 * Many K_MEM_MAP_* flags have been implemented to alter the behavior of this
 * function, with details in the documentation for these flags.
 *
 * @see k_mem_map() for additional information if called via that.
 *
 * @param phys Physical address base of the memory region if not requesting
 *             anonymous memory. Must be page-aligned.
 * @param size Size of the memory mapping. This must be page-aligned.
 * @param flags K_MEM_PERM_*, K_MEM_MAP_* control flags.
 * @param is_anon True is requesting mapping with anonymous memory.
 *
 * @return The mapped memory location, or NULL if insufficient virtual address
 *         space, insufficient physical memory to establish the mapping,
 *         or insufficient memory for paging structures.
 */
void *k_mem_map_phys_guard(uintptr_t phys, size_t size, uint32_t flags, bool is_anon);

/**
 * Un-map memory mapped via k_mem_map_phys_guard().
 *
 * This removes the memory mappings for the provided page-aligned region,
 * and the two guard pages surrounding the region.
 *
 * This function alters the active page tables in the area reserved
 * for the kernel.
 *
 * @see k_mem_unmap() for additional information if called via that.
 *
 * @note Calling this function on a region which was not mapped via
 *       k_mem_map_phys_guard() to begin with is undefined behavior.
 *
 * @param addr Page-aligned memory region base virtual address
 * @param size Page-aligned memory region size
 * @param is_anon True if the mapped memory is from anonymous memory.
 */
void k_mem_unmap_phys_guard(void *addr, size_t size, bool is_anon);


}


/** @} */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h" 2

/**
 * @brief Kernel Memory Management
 * @defgroup kernel_memory_management Kernel Memory Management
 * @ingroup kernel_apis
 * @{
 */

/**
 * @name Caching mode definitions.
 *
 * These are mutually exclusive.
 *
 * @{
 */

/** No caching. Most drivers want this. */


/** Write-through caching. Used by certain drivers. */


/** Full write-back caching. Any RAM mapped wants this. */


/*
 * ARM64 Specific flags are defined in arch/arm64/arm_mem.h,
 * pay attention to be not conflicted when updating these flags.
 */

/** Reserved bits for cache modes in k_map() flags argument */


/** @} */

/**
 * @name Region permission attributes.
 *
 * Default is read-only, no user, no exec
 *
 * @{
 */

/** Region will have read/write access (and not read-only) */


/** Region will be executable (normally forbidden) */


/** Region will be accessible to user mode (normally supervisor-only) */


/** @} */

/**
 * @name Region mapping behaviour attributes
 *
 * @{
 */

/** Region will be mapped to 1:1 virtual and physical address */


/** @} */


# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 84 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 85 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */

/**
 *  @file  inttypes.h
 */
# 86 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h" 2



# 88 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h"
extern "C" {


/**
 * @name k_mem_map() control flags
 *
 * @{
 */

/**
 * @brief The mapped region is not guaranteed to be zeroed.
 *
 * This may improve performance. The associated page frames may contain
 * indeterminate data, zeroes, or even sensitive information.
 *
 * This may not be used with K_MEM_PERM_USER as there are no circumstances
 * where this is safe.
 */


/**
 * Region will be pinned in memory and never paged
 *
 * Such memory is guaranteed to never produce a page fault due to page-outs
 * or copy-on-write once the mapping call has returned. Physical page frames
 * will be pre-fetched as necessary and pinned.
 */


/**
 * Region will be unpaged i.e. not mapped into memory
 *
 * This is meant to be used by kernel code and not by application code.
 *
 * Corresponding memory address range will be set so no actual memory will
 * be allocated initially. Allocation will happen through demand paging when
 * addresses in that range are accessed. This is incompatible with
 * K_MEM_MAP_LOCK.
 *
 * When this flag is specified, the phys argument to arch_mem_map()
 * is interpreted as a backing store location value not a physical address.
 * This is very similar to arch_mem_page_out() in that regard.
 * Two special location values are defined: ARCH_UNPAGED_ANON_ZERO and
 * ARCH_UNPAGED_ANON_UNINIT. Those are to be used with anonymous memory
 * mappings for zeroed and uninitialized pages respectively.
 */


/** @} */

/**
 * Return the amount of free memory available
 *
 * The returned value will reflect how many free RAM page frames are available.
 * If demand paging is enabled, it may still be possible to allocate more.
 *
 * The information reported by this function may go stale immediately if
 * concurrent memory mappings or page-ins take place.
 *
 * @return Free physical RAM, in bytes
 */
size_t k_mem_free_get(void);

/**
 * Map anonymous memory into Zephyr's address space
 *
 * This function effectively increases the data space available to Zephyr.
 * The kernel will choose a base virtual address and return it to the caller.
 * The memory will have access permissions for all contexts set per the
 * provided flags argument.
 *
 * If user thread access control needs to be managed in any way, do not enable
 * K_MEM_PERM_USER flags here; instead manage the region's permissions
 * with memory domain APIs after the mapping has been established. Setting
 * K_MEM_PERM_USER here will allow all user threads to access this memory
 * which is usually undesirable.
 *
 * Unless K_MEM_MAP_UNINIT is used, the returned memory will be zeroed.
 *
 * The mapped region is not guaranteed to be physically contiguous in memory.
 * Physically contiguous buffers should be allocated statically and pinned
 * at build time.
 *
 * Pages mapped in this way have write-back cache settings.
 *
 * The returned virtual memory pointer will be page-aligned. The size
 * parameter, and any base address for re-mapping purposes must be page-
 * aligned.
 *
 * Note that the allocation includes two guard pages immediately before
 * and after the requested region. The total size of the allocation will be
 * the requested size plus the size of these two guard pages.
 *
 * Many K_MEM_MAP_* flags have been implemented to alter the behavior of this
 * function, with details in the documentation for these flags.
 *
 * @param size Size of the memory mapping. This must be page-aligned.
 * @param flags K_MEM_PERM_*, K_MEM_MAP_* control flags.
 * @return The mapped memory location, or NULL if insufficient virtual address
 *         space, insufficient physical memory to establish the mapping,
 *         or insufficient memory for paging structures.
 */
static inline void *k_mem_map(size_t size, uint32_t flags)
{
 return k_mem_map_phys_guard((uintptr_t)
# 192 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h" 3 4
                                       __null
# 192 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h"
                                           , size, flags, true);
}
# 243 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/mm.h"
/**
 * Un-map mapped memory
 *
 * This removes a memory mapping for the provided page-aligned region.
 * Associated page frames will be free and the kernel may re-use the associated
 * virtual address region. Any paged out data pages may be discarded.
 *
 * Calling this function on a region which was not mapped to begin with is
 * undefined behavior.
 *
 * @param addr Page-aligned memory region base virtual address
 * @param size Page-aligned memory region size
 */
static inline void k_mem_unmap(void *addr, size_t size)
{
 k_mem_unmap_phys_guard(addr, size, true);
}

/**
 * Modify memory mapping attribute flags
 *
 * This updates caching, access and control flags for the provided
 * page-aligned memory region.
 *
 * Calling this function on a region which was not mapped to begin with is
 * undefined behavior. However system memory implicitly mapped at boot time
 * is supported.
 *
 * @param addr Page-aligned memory region base virtual address
 * @param size Page-aligned memory region size
 * @param flags K_MEM_PERM_*, K_MEM_MAP_* control flags.
 * @return 0 for success, negative error code otherwise.
 */
int k_mem_update_flags(void *addr, size_t size, uint32_t flags);

/**
 * Given an arbitrary region, provide a aligned region that covers it
 *
 * The returned region will have both its base address and size aligned
 * to the provided alignment value.
 *
 * @param[out] aligned_addr Aligned address
 * @param[out] aligned_size Aligned region size
 * @param[in]  addr Region base address
 * @param[in]  size Region size
 * @param[in]  align What to align the address and size to
 * @retval offset between aligned_addr and addr
 */
size_t k_mem_region_align(uintptr_t *aligned_addr, size_t *aligned_size,
     uintptr_t addr, size_t size, size_t align);


}


/** @} */
# 49 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_io.h" 1
/* Port and memory mapped registers I/O operations */

/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_io.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_io.h" 2



# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_io.h"
extern "C" {


typedef uint32_t io_port_t;
typedef uintptr_t mm_reg_t;
typedef uintptr_t mem_addr_t;

/* Port I/O functions */

/**
 * @fn static inline void sys_out8(uint8_t data, io_port_t port);
 * @brief Output a byte to an I/O port
 *
 * This function writes a byte to the given port.
 *
 * @param data the byte to write
 * @param port the port address where to write the byte
 */

/**
 * @fn static inline uint8_t sys_in8(io_port_t port);
 * @brief Input a byte from an I/O port
 *
 * This function reads a byte from the port.
 *
 * @param port the port address from where to read the byte
 *
 * @return the byte read
 */

/**
 * @fn static inline void sys_out16(uint16_t data, io_port_t port);
 * @brief Output a 16 bits to an I/O port
 *
 * This function writes a 16 bits to the given port.
 *
 * @param data the 16 bits to write
 * @param port the port address where to write the 16 bits
 */

/**
 * @fn static inline uint16_t sys_in16(io_port_t port);
 * @brief Input 16 bits from an I/O port
 *
 * This function reads 16 bits from the port.
 *
 * @param port the port address from where to read the 16 bits
 *
 * @return the 16 bits read
 */

/**
 * @fn static inline void sys_out32(uint32_t data, io_port_t port);
 * @brief Output 32 bits to an I/O port
 *
 * This function writes 32 bits to the given port.
 *
 * @param data the 32 bits to write
 * @param port the port address where to write the 32 bits
 */

/**
 * @fn static inline uint32_t sys_in32(io_port_t port);
 * @brief Input 32 bits from an I/O port
 *
 * This function reads 32 bits from the port.
 *
 * @param port the port address from where to read the 32 bits
 *
 * @return the 32 bits read
 */

/**
 * @fn static inline void sys_io_set_bit(io_port_t port, unsigned int bit)
 * @brief Set the designated bit from port to 1
 *
 * This functions takes the designated bit starting from port and sets it to 1.
 *
 * @param port the port address from where to look for the bit
 * @param bit the designated bit to set (from 0 to n)
 */

/**
 * @fn static inline void sys_io_clear_bit(io_port_t port, unsigned int bit)
 * @brief Clear the designated bit from port to 0
 *
 * This functions takes the designated bit starting from port and sets it to 0.
 *
 * @param port the port address from where to look for the bit
 * @param bit the designated bit to clear (from 0 to n)
 */

/**
 * @fn static inline int sys_io_test_bit(io_port_t port, unsigned int bit)
 * @brief Test the bit from port if it is set or not
 *
 * This functions takes the designated bit starting from port and tests its
 * current setting. It will return the current setting.
 *
 * @param port the port address from where to look for the bit
 * @param bit the designated bit to test (from 0 to n)
 *
 * @return 1 if it is set, 0 otherwise
 */

/**
 * @fn static inline int sys_io_test_and_set_bit(io_port_t port, unsigned int bit)
 * @brief Test the bit from port and set it
 *
 * This functions takes the designated bit starting from port, tests its
 * current setting and sets it. It will return the previous setting.
 *
 * @param port the port address from where to look for the bit
 * @param bit the designated bit to test and set (from 0 to n)
 *
 * @return 1 if it was set, 0 otherwise
 */

/**
 * @fn static inline int sys_io_test_and_clear_bit(io_port_t port, unsigned int bit)
 * @brief Test the bit from port and clear it
 *
 * This functions takes the designated bit starting from port, tests its
 * current setting and clears it. It will return the previous setting.
 *
 * @param port the port address from where to look for the bit
 * @param bit the designated bit to test and clear (from 0 to n)
 *
 * @return 0 if it was clear, 1 otherwise
 */

/* Memory mapped registers I/O functions */

/**
 * @fn static inline void sys_write8(uint8_t data, mm_reg_t addr);
 * @brief Write a byte to a memory mapped register
 *
 * This function writes a byte to the given memory mapped register.
 *
 * @param data the byte to write
 * @param addr the memory mapped register address where to write the byte
 */

/**
 * @fn static inline uint8_t sys_read8(mm_reg_t addr);
 * @brief Read a byte from a memory mapped register
 *
 * This function reads a byte from the given memory mapped register.
 *
 * @param addr the memory mapped register address from where to read the byte
 *
 * @return the byte read
 */

/**
 * @fn static inline void sys_write16(uint16_t data, mm_reg_t addr);
 * @brief Write 16 bits to a memory mapped register
 *
 * This function writes 16 bits to the given memory mapped register.
 *
 * @param data the 16 bits to write
 * @param addr the memory mapped register address where to write the 16 bits
 */

/**
 * @fn static inline uint16_t sys_read16(mm_reg_t addr);
 * @brief Read 16 bits from a memory mapped register
 *
 * This function reads 16 bits from the given memory mapped register.
 *
 * @param addr the memory mapped register address from where to read
 *        the 16 bits
 *
 * @return the 16 bits read
 */

/**
 * @fn static inline void sys_write32(uint32_t data, mm_reg_t addr);
 * @brief Write 32 bits to a memory mapped register
 *
 * This function writes 32 bits to the given memory mapped register.
 *
 * @param data the 32 bits to write
 * @param addr the memory mapped register address where to write the 32 bits
 */

/**
 * @fn static inline uint32_t sys_read32(mm_reg_t addr);
 * @brief Read 32 bits from a memory mapped register
 *
 * This function reads 32 bits from the given memory mapped register.
 *
 * @param addr the memory mapped register address from where to read
 *        the 32 bits
 *
 * @return the 32 bits read
 */

/**
 * @fn static inline void sys_write64(uint64_t data, mm_reg_t addr);
 * @brief Write 64 bits to a memory mapped register
 *
 * This function writes 64 bits to the given memory mapped register.
 *
 * @param data the 64 bits to write
 * @param addr the memory mapped register address where to write the 64 bits
 */

/**
 * @fn static inline uint64_t sys_read64(mm_reg_t addr);
 * @brief Read 64 bits from a memory mapped register
 *
 * This function reads 64 bits from the given memory mapped register.
 *
 * @param addr the memory mapped register address from where to read
 *        the 64 bits
 *
 * @return the 64 bits read
 */

/* Memory bits manipulation functions */

/**
 * @fn static inline void sys_set_bit(mem_addr_t addr, unsigned int bit)
 * @brief Set the designated bit from addr to 1
 *
 * This functions takes the designated bit starting from addr and sets it to 1.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to set (from 0 to 31)
 */

/**
 * @fn static inline void sys_set_bits(mem_addr_t addr, unsigned int mask)
 * @brief Masking the designated bits from addr to 1
 *
 * This functions masking designated bits from addr to 1.
 *
 * @param addr the memory address from where to look for the bits
 * @param mask the bit mask of a 32 bits data to set
 */

/**
 * @fn static inline void sys_clear_bits(mem_addr_t addr, unsigned int mask)
 * @brief Masking the designated bits from addr to 0
 *
 * This functions masking designated bits from addr to 0.
 *
 * @param addr the memory address from where to look for the bits
 * @param mask the bit mask of a 32 bits data to set
 */

/**
 * @fn static inline void sys_clear_bit(mem_addr_t addr, unsigned int bit)
 * @brief Clear the designated bit from addr to 0
 *
 * This functions takes the designated bit starting from addr and sets it to 0.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to clear (from 0 to 31)
 */

/**
 * @fn static inline int sys_test_bit(mem_addr_t addr, unsigned int bit)
 * @brief Test the bit if it is set or not
 *
 * This functions takes the designated bit starting from addr and tests its
 * current setting. It will return the current setting.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to test (from 0 to 31)
 *
 * @return 1 if it is set, 0 otherwise
 */

/**
 * @fn static inline int sys_test_and_set_bit(mem_addr_t addr, unsigned int bit)
 * @brief Test the bit and set it
 *
 * This functions takes the designated bit starting from addr, tests its
 * current setting and sets it. It will return the previous setting.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to test and set (from 0 to 31)
 *
 * @return 1 if it was set, 0 otherwise
 */

/**
 * @fn static inline int sys_test_and_clear_bit(mem_addr_t addr, unsigned int bit)
 * @brief Test the bit and clear it
 *
 * This functions takes the designated bit starting from addr, test its
 * current setting and clears it. It will return the previous setting.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to test and clear (from 0 to 31)
 *
 * @return 0 if it was clear, 1 otherwise
 */

/**
 * @fn static inline void sys_bitfield_set_bit(mem_addr_t addr, unsigned int bit)
 * @brief Set the designated bit from addr to 1
 *
 * This functions takes the designated bit starting from addr and sets it to 1.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to set (arbitrary)
 */

/**
 * @fn static inline void sys_bitfield_clear_bit(mem_addr_t addr, unsigned int bit)
 * @brief Clear the designated bit from addr to 0
 *
 * This functions takes the designated bit starting from addr and sets it to 0.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to clear (arbitrary)
 */

/**
 * @fn static inline int sys_bitfield_test_bit(mem_addr_t addr, unsigned int bit)
 * @brief Test the bit if it is set or not
 *
 * This functions takes the designated bit starting from addr and tests its
 * current setting. It will return the current setting.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to test (arbitrary
 *
 * @return 1 if it is set, 0 otherwise
 */

/**
 * @fn static inline int sys_bitfield_test_and_set_bit(mem_addr_t addr, unsigned int bit)
 * @brief Test the bit and set it
 *
 * This functions takes the designated bit starting from addr, tests its
 * current setting and sets it. It will return the previous setting.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to test and set (arbitrary)
 *
 * @return 1 if it was set, 0 otherwise
 */

/**
 * @fn static inline int sys_bitfield_test_and_clear_bit(mem_addr_t addr, unsigned int bit)
 * @brief Test the bit and clear it
 *
 * This functions takes the designated bit starting from addr, test its
 * current setting and clears it. It will return the previous setting.
 *
 * @param addr the memory address from where to look for the bit
 * @param bit the designated bit to test and clear (arbitrary)
 *
 * @return 0 if it was clear, 1 otherwise
 */



}
# 50 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h" 2
# 117 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/* No MMU or PCIe. Just store the address from DTS and treat as a linear
 * address
 */
struct z_device_mmio_rom {
 /** MMIO linear address */
 mm_reg_t addr;
};
# 137 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/** @} */

/**
 * @defgroup device-mmio-single Single MMIO region macros
 * @ingroup device-mmio
 *
 * For drivers which need to manage just one MMIO region, the most common
 * case.
 *
 * @{
 */

/**
 * @def DEVICE_MMIO_RAM
 *
 * Declare storage for MMIO information within a device's dev_data struct.
 *
 * This gets accessed by the DEVICE_MMIO_MAP() and DEVICE_MMIO_GET() macros.
 *
 * Depending on configuration, no memory may be reserved at all.
 * This must be the first member of the data struct.
 *
 * There must be a corresponding DEVICE_MMIO_ROM in config_info if the
 * physical address is known at build time, but may be omitted if not (such
 * as with PCIe)
 *
 * Example for a driver named "foo":
 *
 * @code{.c}
 *
 * struct foo_driver_data {
 *	DEVICE_MMIO_RAM;
 *	int wibble;
 *	...
 * }
 *
 * @endcode
 *
 * No build-time initialization of this memory is necessary; it
 * will be set up in the init function by DEVICE_MMIO_MAP().
 *
 * A pointer to this memory may be obtained with DEVICE_MMIO_RAM_PTR().
 */
# 200 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/**
 * @brief Declare storage for MMIO data within a device's config struct
 *
 * This gets accessed by DEVICE_MMIO_MAP() and DEVICE_MMIO_GET() macros.
 *
 * What gets stored here varies considerably by configuration.
 * This must be the first member of the config struct. There must be
 * a corresponding DEVICE_MMIO_RAM in data.
 *
 * This storage is not used if the device is PCIe and may be omitted.
 *
 * This should be initialized at build time with information from DTS
 * using DEVICE_MMIO_ROM_INIT().
 *
 * A pointer to this memory may be obtained with DEVICE_MMIO_ROM_PTR().
 *
 * Example for a driver named "foo":
 *
 * @code{.c}
 *
 * struct foo_config {
 *	DEVICE_MMIO_ROM;
 *	int baz;
 *	...
 * }
 *
 * @endcode
 *
 * @see DEVICE_MMIO_ROM_INIT()
 */


/**
 * Return a pointer to the ROM-based storage area for a device's MMIO
 * information. This macro will not work properly if the ROM storage
 * was omitted from the config struct declaration, and should not
 * be used in this case.
 *
 * @param dev device instance object
 * @retval struct device_mmio_rom * pointer to storage location
 */



/**
 * @brief Initialize a DEVICE_MMIO_ROM member
 *
 * Initialize MMIO-related information within a specific instance of
 * a device config struct, using information from DTS.
 *
 * Example for a driver belonging to the "foo" subsystem:
 *
 * @code{.c}
 *
 * struct foo_config my_config = {
 *	DEVICE_MMIO_ROM_INIT(DT_DRV_INST(...)),
 *	.baz = 2;
 *	...
 * }
 *
 * @endcode
 *
 * @see DEVICE_MMIO_ROM()
 *
 * @param node_id DTS node_id
 */



/**
 * @def DEVICE_MMIO_MAP(device, flags)
 *
 * @brief Map MMIO memory into the address space
 *
 * This is not intended for PCIe devices; these must be probed at runtime
 * and you will want to make a device_map() call directly, using
 * DEVICE_MMIO_RAM_PTR() as the target virtual address location.
 *
 * The flags argument is currently used for caching mode, which should be
 * one of the DEVICE_CACHE_* macros. Unused bits are reserved for future
 * expansion.
 *
 * @param dev Device object instance
 * @param flags cache mode flags
 */
# 295 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/**
 * @def DEVICE_MMIO_GET(dev)
 *
 * @brief Obtain the MMIO address for a device
 *
 * For most microcontrollers MMIO addresses can be fixed values known at
 * build time, and we can store this in device->config, residing in ROM.
 *
 * However, some devices can only know their MMIO addresses at runtime,
 * because they need to be memory-mapped into the address space, enumerated
 * from PCI, or both.
 *
 * This macro returns the linear address of the driver's MMIO region.
 * This is for drivers which have exactly one MMIO region.
 * A call must have been made to device_map() in the driver init function.
 *
 * @param dev Device object
 * @return mm_reg_t  linear address of the MMIO region
 */





/** @} */

/**
 * @defgroup device-mmio-named Named MMIO region macros
 * @ingroup device-mmio
 *
 * For drivers which need to manage multiple MMIO regions, which will
 * be referenced by name.
 *
 * @{
 */

/**
 * @def DEVICE_MMIO_NAMED_RAM(name)
 *
 * @brief Declare storage for MMIO data within a device's dev_data struct
 *
 * This gets accessed by the DEVICE_MMIO_NAMED_MAP() and
 * DEVICE_MMIO_NAMED_GET() macros.
 *
 * Depending on configuration, no memory may be reserved at all.
 * Multiple named regions may be declared.
 *
 * There must be a corresponding DEVICE_MMIO_ROM in config if the
 * physical address is known at build time, but may be omitted if not (such
 * as with PCIe.
 *
 * Example for a driver named "foo":
 *
 * @code{.c}
 *
 * struct foo_driver_data {
 *      int blarg;
 *      DEVICE_MMIO_NAMED_RAM(corge);
 *      DEVICE_MMIO_NAMED_RAM(grault);
 *      int wibble;
 *      ...
 * }
 *
 * @endcode
 *
 * No build-time initialization of this memory is necessary; it
 * will be set up in the init function by DEVICE_MMIO_NAMED_MAP().
 *
 * @param name Member name to use to store within dev_data.
 */
# 386 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/**
 * @brief Declare storage for MMIO data within a device's config struct.
 *
 * This gets accessed by DEVICE_MMIO_NAMED_MAP() and
 * DEVICE_MMIO_NAMED_GET() macros.
 *
 * What gets stored here varies considerably by configuration. Multiple named
 * regions may be declared. There must be corresponding entries in the dev_data
 * struct.
 *
 * This storage is not used if the device is PCIe and may be omitted.
 *
 * If used, this must be initialized at build time with information from DTS
 * using DEVICE_MMIO_NAMED_ROM_INIT()
 *
 * A pointer to this memory may be obtained with DEVICE_MMIO_NAMED_ROM_PTR().
 *
 * Example for a driver named "foo":
 *
 * @code{.c}
 *
 * struct foo_config {
 *      int bar;
 *      DEVICE_MMIO_NAMED_ROM(corge);
 *      DEVICE_MMIO_NAMED_ROM(grault);
 *      int baz;
 *      ...
 * }
 *
 * @endcode
 *
 * @see DEVICE_MMIO_NAMED_ROM_INIT()
 *
 * @param name Member name to store within config
 */


/**
 * Return a pointer to the ROM-based storage area for a device's MMIO
 * information.
 *
 * This macro requires that the macro DEV_CFG is locally defined and returns
 * a properly typed pointer to the particular config struct for this
 * driver.
 *
 * @param dev device instance object
 * @param name Member name within config
 * @retval struct device_mmio_rom * pointer to storage location
 */


/**
 * @brief Initialize a named DEVICE_MMIO_NAMED_ROM member
 *
 * Initialize MMIO-related information within a specific instance of
 * a device config struct, using information from DTS.
 *
 * Example for an instance of a driver belonging to the "foo" subsystem
 * that will have two regions named 'corge' and 'grault':
 *
 * @code{.c}
 *
 * struct foo_config my_config = {
 *	bar = 7;
 *	DEVICE_MMIO_NAMED_ROM_INIT(corge, DT_DRV_INST(...));
 *	DEVICE_MMIO_NAMED_ROM_INIT(grault, DT_DRV_INST(...));
 *	baz = 2;
 *	...
 * }
 *
 * @endcode
 *
 * @see DEVICE_MMIO_NAMED_ROM()
 *
 * @param name Member name within config for the MMIO region
 * @param node_id DTS node identifier
 */



/**
 * @brief Initialize a named DEVICE_MMIO_NAMED_ROM member using a named DT
 *        reg property.
 *
 * Same as @ref DEVICE_MMIO_NAMED_ROM_INIT but the size and address are taken
 * from a named DT reg property.
 *
 * Example for an instance of a driver belonging to the "foo" subsystem
 * that will have two DT-defined regions named 'chip' and 'dale':
 *
 * @code{.dts}
 *
 *    foo@E5000000 {
 *         reg = <0xE5000000 0x1000>, <0xE6000000 0x1000>;
 *         reg-names = "chip", "dale";
 *         ...
 *    };
 *
 * @endcode
 *
 * @code{.c}
 *
 * struct foo_config my_config = {
 *	bar = 7;
 *	DEVICE_MMIO_NAMED_ROM_INIT_BY_NAME(chip, DT_DRV_INST(...));
 *	DEVICE_MMIO_NAMED_ROM_INIT_BY_NAME(dale, DT_DRV_INST(...));
 *	baz = 2;
 *	...
 * }
 *
 * @endcode
 *
 * @see DEVICE_MMIO_NAMED_ROM_INIT()
 *
 * @param name Member name within config for the MMIO region and name of the
 *             reg property in the DT
 * @param node_id DTS node identifier
 */



/**
 * @brief Set up memory for a named MMIO region
 *
 * This performs the necessary PCI probing and/or MMU virtual memory mapping
 * such that DEVICE_MMIO_GET(name) returns a suitable linear memory address
 * for the MMIO region.
 *
 * If such operations are not required by the target hardware, this expands
 * to nothing.
 *
 * This should be called from the driver's init function, once for each
 * MMIO region that needs to be mapped.
 *
 * This macro requires that the macros DEV_DATA and DEV_CFG are locally
 * defined and return properly typed pointers to the particular dev_data
 * and config structs for this driver.
 *
 * The flags argument is currently used for caching mode, which should be
 * one of the DEVICE_CACHE_* macros. Unused bits are reserved for future
 * expansion.
 *
 * @param dev Device object
 * @param name Member name for MMIO information, as declared with
 *             DEVICE_MMIO_NAMED_RAM/DEVICE_MMIO_NAMED_ROM
 * @param flags One of the DEVICE_CACHE_* caching modes
 */
# 543 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/**
 * @def DEVICE_MMIO_NAMED_GET(dev, name)
 *
 * @brief Obtain a named MMIO address for a device
 *
 * This macro returns the MMIO base address for a named region from the
 * appropriate place within the device object's linked  data structures.
 *
 * This is for drivers which have multiple MMIO regions.
 *
 * This macro requires that the macros DEV_DATA and DEV_CFG are locally
 * defined and return properly typed pointers to the particular dev_data
 * and config structs for this driver.
 *
 * @see DEVICE_MMIO_GET
 *
 * @param dev Device object
 * @param name Member name for MMIO information, as declared with
 *             DEVICE_MMIO_NAMED_RAM/DEVICE_MMIO_NAMED_ROM
 * @return mm_reg_t  linear address of the MMIO region
 */
# 572 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/** @} */

/**
 * @defgroup device-mmio-toplevel Top-level MMIO region macros
 * @ingroup device-mmio
 *
 * For drivers which do not use Zephyr's driver model and do not
 * associate struct device with a driver instance. Top-level storage
 * is used instead, with either global or static scope.
 *
 * This is often useful for interrupt controller and timer drivers.
 *
 * Currently PCIe devices are not well-supported with this set of macros.
 * Either use Zephyr's driver model for these kinds of devices, or
 * manage memory manually with calls to device_map().
 *
 * @{
 */




/**
 * @def DEVICE_MMIO_TOPLEVEL(name, node_id)
 *
 * @brief Declare top-level storage for MMIO information, global scope
 *
 * This is intended for drivers which do not use Zephyr's driver model
 * of config/dev_data linked to a struct device.
 *
 * Instead, this is a top-level declaration for the driver's C file.
 * The scope of this declaration is global and may be referenced by
 * other C files, using DEVICE_MMIO_TOPLEVEL_DECLARE.
 *
 * @param name Base symbol name
 * @param node_id Device-tree node identifier for this region
 */
# 623 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/**
 * @def DEVICE_MMIO_TOPLEVEL_DECLARE(name)
 *
 * Provide an extern reference to a top-level MMIO region
 *
 * If a top-level MMIO region defined with DEVICE_MMIO_DEFINE needs to be
 * referenced from other C files, this macro provides the necessary extern
 * definitions.
 *
 * @see DEVICE_MMIO_TOPLEVEL
 *
 * @param name Name of the top-level MMIO region
 */
# 646 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/**
 * @def  DEVICE_MMIO_TOPLEVEL_STATIC(name, node_id)
 *
 * @brief Declare top-level storage for MMIO information, static scope
 *
 * This is intended for drivers which do not use Zephyr's driver model
 * of config/dev_data linked to a struct device.
 *
 * Instead, this is a top-level declaration for the driver's C file.
 * The scope of this declaration is static.
 *
 * @param name Name of the top-level MMIO region
 * @param node_id Device-tree node identifier for this region
 */
# 685 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/**
 * Return a pointer to the ROM-based storage area for a toplevel MMIO region.
 *
 * @param name MMIO region name
 * @retval struct device_mmio_rom * pointer to storage location
 */


/**
 * @def DEVICE_MMIO_TOPLEVEL_MAP(name, flags)
 *
 * @brief Set up memory for a driver'sMMIO region
 *
 * This performs the necessary MMU virtual memory mapping
 * such that DEVICE_MMIO_GET() returns a suitable linear memory address
 * for the MMIO region.
 *
 * If such operations are not required by the target hardware, this expands
 * to nothing.
 *
 * This should be called once from the driver's init function.
 *
 * The flags argument is currently used for caching mode, which should be
 * one of the DEVICE_CACHE_* macros. Unused bits are reserved for future
 * expansion.
 *
 * @param name Name of the top-level MMIO region
 * @param flags One of the DEVICE_CACHE_* caching modes
 */
# 723 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/device_mmio.h"
/**
 * @def DEVICE_MMIO_TOPLEVEL_GET(name)
 *
 * @brief Obtain the MMIO address for a device declared top-level
 *
 * @see DEVICE_MMIO_GET
 *
 * @param name Name of the top-level MMIO region
 * @return mm_reg_t  linear address of the MMIO region
 */







/** @} */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h" 1
/*
 * Copyright (C) 2020, Intel Corporation
 * Copyright (C) 2023, Nordic Semiconductor ASA
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 1
/*
 * Copyright (c) 2011-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h" 2


extern "C" {


/**
 * @brief Iterable Sections APIs
 * @defgroup iterable_section_apis Iterable Sections APIs
 * @ingroup os_services
 * @{
 */

/**
 * @brief Defines a new element for an iterable section for a generic type.
 *
 * @details
 * Convenience helper combining __in_section() and Z_DECL_ALIGN().
 * The section name will be '.[SECNAME].static.[SECTION_POSTFIX]'
 *
 * In the linker script, create output sections for these using
 * ITERABLE_SECTION_ROM() or ITERABLE_SECTION_RAM().
 *
 * @note In order to store the element in ROM, a const specifier has to
 * be added to the declaration: const TYPE_SECTION_ITERABLE(...);
 *
 * @param[in]  type data type of variable
 * @param[in]  varname name of variable to place in section
 * @param[in]  secname type name of iterable section.
 * @param[in]  section_postfix postfix to use in section name
 */




/**
 * @brief iterable section start symbol for a generic type
 *
 * will return '_[OUT_TYPE]_list_start'.
 *
 * @param[in]  secname type name of iterable section.  For 'struct foobar' this
 * would be TYPE_SECTION_START(foobar)
 *
 */


/**
 * @brief iterable section end symbol for a generic type
 *
 * will return '_<SECNAME>_list_end'.
 *
 * @param[in]  secname type name of iterable section.  For 'struct foobar' this
 * would be TYPE_SECTION_START(foobar)
 */


/**
 * @brief iterable section extern for start symbol for a generic type
 *
 * Helper macro to give extern for start of iterable section.  The macro
 * typically will be called TYPE_SECTION_START_EXTERN(struct foobar, foobar).
 * This allows the macro to hand different types as well as cases where the
 * type and section name may differ.
 *
 * @param[in]  type data type of section
 * @param[in]  secname name of output section
 */



/**
 * @brief iterable section extern for end symbol for a generic type
 *
 * Helper macro to give extern for end of iterable section.  The macro
 * typically will be called TYPE_SECTION_END_EXTERN(struct foobar, foobar).
 * This allows the macro to hand different types as well as cases where the
 * type and section name may differ.
 *
 * @param[in]  type data type of section
 * @param[in]  secname name of output section
 */



/**
 * @brief Iterate over a specified iterable section for a generic type
 *
 * @details
 * Iterator for structure instances gathered by TYPE_SECTION_ITERABLE().
 * The linker must provide a _<SECNAME>_list_start symbol and a
 * _<SECNAME>_list_end symbol to mark the start and the end of the
 * list of struct objects to iterate over. This is normally done using
 * ITERABLE_SECTION_ROM() or ITERABLE_SECTION_RAM() in the linker script.
 */
# 115 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h"
/**
 * @brief Get element from section for a generic type.
 *
 * @note There is no protection against reading beyond the section.
 *
 * @param[in]  type type of element
 * @param[in]  secname name of output section
 * @param[in]  i Index.
 * @param[out] dst Pointer to location where pointer to element is written.
 */





/**
 * @brief Count elements in a section for a generic type.
 *
 * @param[in]  type type of element
 * @param[in]  secname name of output section
 * @param[out] dst Pointer to location where result is written.
 */







/**
 * @brief iterable section start symbol for a struct type
 *
 * @param[in]  struct_type data type of section
 */



/**
 * @brief iterable section extern for start symbol for a struct
 *
 * Helper macro to give extern for start of iterable section.
 *
 * @param[in]  struct_type data type of section
 */



/**
 * @brief iterable section end symbol for a struct type
 *
 * @param[in]  struct_type data type of section
 */



/**
 * @brief iterable section extern for end symbol for a struct
 *
 * Helper macro to give extern for end of iterable section.
 *
 * @param[in]  struct_type data type of section
 */



/**
 * @brief Defines a new element of alternate data type for an iterable section.
 *
 * @details
 * Special variant of STRUCT_SECTION_ITERABLE(), for placing alternate
 * data types within the iterable section of a specific data type. The
 * data type sizes and semantics must be equivalent!
 */



/**
 * @brief Defines an array of elements of alternate data type for an iterable
 * section.
 *
 * @see STRUCT_SECTION_ITERABLE_ALTERNATE
 */





/**
 * @brief Defines a new element for an iterable section.
 *
 * @details
 * Convenience helper combining __in_section() and Z_DECL_ALIGN().
 * The section name is the struct type prepended with an underscore.
 * The subsection is "static" and the subsubsection is the variable name.
 *
 * In the linker script, create output sections for these using
 * ITERABLE_SECTION_ROM() or ITERABLE_SECTION_RAM().
 *
 * @note In order to store the element in ROM, a const specifier has to
 * be added to the declaration: const STRUCT_SECTION_ITERABLE(...);
 */



/**
 * @brief Defines an array of elements for an iterable section.
 *
 * @see STRUCT_SECTION_ITERABLE
 */




/**
 * @brief Defines a new element for an iterable section with a custom name.
 *
 * The name can be used to customize how iterable section entries are sorted.
 * @see STRUCT_SECTION_ITERABLE()
 */



/**
 * @brief Defines a new element for an iterable section with a custom name,
 * placed in a custom section.
 *
 * The name can be used to customize how iterable section entries are sorted.
 * @see STRUCT_SECTION_ITERABLE_NAMED()
 */



/**
 * @brief Iterate over a specified iterable section (alternate).
 *
 * @details
 * Iterator for structure instances gathered by STRUCT_SECTION_ITERABLE().
 * The linker must provide a _<SECNAME>_list_start symbol and a
 * _<SECNAME>_list_end symbol to mark the start and the end of the
 * list of struct objects to iterate over. This is normally done using
 * ITERABLE_SECTION_ROM() or ITERABLE_SECTION_RAM() in the linker script.
 */



/**
 * @brief Iterate over a specified iterable section.
 *
 * @details
 * Iterator for structure instances gathered by STRUCT_SECTION_ITERABLE().
 * The linker must provide a _<struct_type>_list_start symbol and a
 * _<struct_type>_list_end symbol to mark the start and the end of the
 * list of struct objects to iterate over. This is normally done using
 * ITERABLE_SECTION_ROM() or ITERABLE_SECTION_RAM() in the linker script.
 */



/**
 * @brief Get element from section.
 *
 * @note There is no protection against reading beyond the section.
 *
 * @param[in]  struct_type Struct type.
 * @param[in]  i Index.
 * @param[out] dst Pointer to location where pointer to element is written.
 */



/**
 * @brief Count elements in a section.
 *
 * @param[in]  struct_type Struct type
 * @param[out] dst Pointer to location where result is written.
 */



/**
 * @}
 */


}
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/llext/symbol.h" 1
/*
 * Copyright (c) 2023 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h" 1
/*
 * Copyright (C) 2020, Intel Corporation
 * Copyright (C) 2023, Nordic Semiconductor ASA
 * SPDX-License-Identifier: Apache-2.0
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/llext/symbol.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/llext/symbol.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/llext/symbol.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/llext/symbol.h" 2



# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/llext/symbol.h"
extern "C" {


/**
 * @file
 * @brief Linkable loadable extension symbol definitions
 *
 * This file provides a set of macros and structures for defining and exporting
 * symbols from the base image to extensions and vice versa, so that proper
 * linking can be done between the two entities.
 *
 * @defgroup llext_symbols Exported symbol definitions
 * @ingroup llext_apis
 * @{
 */

/**
 * @brief Constant symbols are unchangeable named memory addresses
 *
 * Symbols may be named function or global objects that have been exported
 * for linking. These constant symbols are useful in the base image
 * as they may be placed in ROM.
 *
 * @note When updating this structure, make sure to also update the
 * 'scripts/build/llext_prepare_exptab.py' build script.
 */
struct llext_const_symbol {
 /** At build time, we always write to 'name'.
	 *  At runtime, which field is used depends
	 *  on CONFIG_LLEXT_EXPORT_BUILTINS_BY_SLID.
	 */
 union {
  /** Name of symbol */
  const char *const name;

  /** Symbol Link Identifier */
  const uintptr_t slid;
 };

 /** Address of symbol */
 const void *const addr;
};
static_assert(sizeof(struct llext_const_symbol) == 2 * sizeof(uintptr_t), "" );

/**
 * @brief Symbols are named memory addresses
 *
 * Symbols may be named function or global objects that have been exported
 * for linking. These are mutable and should come from extensions where
 * the location may need updating depending on where memory is placed.
 */
struct llext_symbol {
 /** Name of symbol */
 const char *name;

 /** Address of symbol */
 void *addr;
};


/**
 * @brief A symbol table
 *
 * An array of symbols
 */
struct llext_symtable {
 /** Number of symbols in the table */
 size_t sym_cnt;

 /** Array of symbols */
 struct llext_symbol *syms;
};


/** @cond ignore */

/* Extension build: add exported symbols to llext table */
# 103 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/llext/symbol.h"
/** @endcond */

/**
 * @brief Exports a symbol from an extension to the base image with a custom name
 *
 * Version of @ref LL_EXTENSION_SYMBOL that allows the user to specify a custom
 * name for the exported symbol.
 *
 * @param sym_ident Extension symbol to export to the base image
 * @param sym_name Name associated with the symbol
 */



/**
 * @brief Exports a symbol from an extension to the base image
 *
 * This macro can be used in extensions to add a symbol (function or object)
 * to the extension's exported symbol table, so that it may be referenced by
 * the base image.
 *
 * When not building an extension, this macro is a no-op.
 *
 * @param x Extension symbol to export to the base image
 */


/** @cond ignore */

/* Extension build: EXPORT_SYMBOL maps to LL_EXTENSION_SYMBOL */
# 156 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/llext/symbol.h"
/** @endcond */

/**
 * @brief Export a constant symbol from the current build with a custom name
 *
 * Version of @ref EXPORT_SYMBOL that allows the user to specify a custom name
 * for the exported symbol.
 *
 * When @c CONFIG_LLEXT is not enabled, this macro is a no-op.
 *
 * @param sym_ident Symbol to export
 * @param sym_name Name associated with the symbol
 */



/**
 * @brief Export a constant symbol from the current build
 *
 * Takes a symbol (function or object) by symbolic name and adds the name
 * and address of the symbol to a table of symbols that may be referenced
 * by extensions or by the base image, depending on the current build type.
 *
 * When @c CONFIG_LLEXT is not enabled, this macro is a no-op.
 *
 * @param x Symbol to export
 */


/**
 * @}
 */


}
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2



extern "C" {


/**
 * @brief Device Model
 * @defgroup device_model Device Model
 * @since 1.0
 * @version 1.1.0
 * @{
 */

/** @cond INTERNAL_HIDDEN */

/**
 * @brief Flag value used in lists of device dependencies to separate distinct
 * groups.
 */


/**
 * @brief Flag value used in lists of device dependencies to indicate the end of
 * the list.
 */


/** @brief Determine if a DT node is mutable */



/** @endcond */

/**
 * @brief Type used to represent a "handle" for a device.
 *
 * Every @ref device has an associated handle. You can get a pointer to a
 * @ref device from its handle and vice versa, but the handle uses less space
 * than a pointer. The device.h API mainly uses handles to store lists of
 * multiple devices in a compact way.
 *
 * The extreme values and zero have special significance. Negative values
 * identify functionality that does not correspond to a Zephyr device, such as
 * the system clock or a SYS_INIT() function.
 *
 * @see device_handle_get()
 * @see device_from_handle()
 */
typedef int16_t device_handle_t;

/** @brief Flag value used to identify an unknown device. */


/**
 * @brief Expands to the name of a global device object.
 *
 * Return the full name of a device object symbol created by DEVICE_DEFINE(),
 * using the `dev_id` provided to DEVICE_DEFINE(). This is the name of the
 * global variable storing the device structure, not a pointer to the string in
 * the @ref device.name field.
 *
 * It is meant to be used for declaring extern symbols pointing to device
 * objects before using the DEVICE_GET macro to get the device object.
 *
 * This macro is normally only useful within device driver source code. In other
 * situations, you are probably looking for device_get_binding().
 *
 * @param dev_id Device identifier.
 *
 * @return The full name of the device object defined by device definition
 * macros.
 */


/* This macro synthesizes a unique dev_id from a devicetree node by using
 * the node's dependency ordinal.
 *
 * The ordinal used in this name can be mapped to the path by
 * examining zephyr/include/generated/zephyr/devicetree_generated.h.
 */


/* Same as above, but uses the hash of the node path instead of the ordinal.
 *
 * The hash used in this name can be mapped to the path by
 * examining zephyr/include/generated/zephyr/devicetree_generated.h.
 */


/* By default, device identifiers are obtained using the dependency ordinal.
 * When LLEXT_EXPORT_DEV_IDS_BY_HASH is defined, the main Zephyr binary exports
 * DT identifiers via EXPORT_SYMBOL_NAMED as hashed versions of their paths.
 * When matching extensions are built, that is what they need to look for.
 *
 * The ordinal or hash used in this name can be mapped to the path by
 * examining zephyr/include/generated/zephyr/devicetree_generated.h.
 */
# 133 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/* Export device identifiers using the builtin name */



/**
 * @brief Create a device object and set it up for boot time initialization,
 * with de-init capabilities.
 *
 * This macro defines a @ref device that is automatically configured by the
 * kernel during system initialization. This macro should only be used when the
 * device is not being allocated from a devicetree node. If you are allocating a
 * device from a devicetree node, use DEVICE_DT_DEINIT_DEFINE() or
 * DEVICE_DT_INST_DEINIT_DEFINE() instead.
 *
 * @param dev_id A unique token which is used in the name of the global device
 * structure as a C identifier.
 * @param name A string name for the device, which will be stored in
 * @ref device.name. This name can be used to look up the device with
 * device_get_binding(). This must be less than Z_DEVICE_MAX_NAME_LEN characters
 * (including terminating `NULL`) in order to be looked up from user mode.
 * @param init_fn Pointer to the device's initialization function, which will be
 * run by the kernel during system initialization. Can be `NULL`.
 * @param deinit_fn Pointer to the device's de-initialization function. Can be
 * `NULL`. It must release any acquired resources (e.g. pins, bus, clock...) and
 * leave the device in its reset state.
 * @param pm Pointer to the device's power management resources, a
 * @ref pm_device, which will be stored in @ref device.pm field. Use `NULL` if
 * the device does not use PM.
 * @param data Pointer to the device's private mutable data, which will be
 * stored in @ref device.data.
 * @param config Pointer to the device's private constant data, which will be
 * stored in @ref device.config.
 * @param level The device's initialization level (PRE_KERNEL_1, PRE_KERNEL_2 or
 * POST_KERNEL).
 * @param prio The device's priority within its initialization level. See
 * SYS_INIT() for details.
 * @param api Pointer to the device's API structure. Can be `NULL`.
 */







/**
 * @brief Create a device object and set it up for boot time initialization.
 *
 * @see DEVICE_DEINIT_DEFINE()
 */





/**
 * @brief Return a string name for a devicetree node.
 *
 * This macro returns a string literal usable as a device's name from a
 * devicetree node identifier.
 *
 * @param node_id The devicetree node identifier.
 *
 * @return The value of the node's `label` property, if it has one.
 * Otherwise, the node's full name in `node-name@unit-address` form.
 */



/**
 * @brief Create a device object from a devicetree node identifier and set it up
 * for boot time initialization.
 *
 * This macro defines a @ref device that is automatically configured by the
 * kernel during system initialization. The global device object's name as a C
 * identifier is derived from the node's dependency ordinal or hash.
 * @ref device.name is set to `DEVICE_DT_NAME(node_id)`.
 *
 * The device is declared with extern visibility, so a pointer to a global
 * device object can be obtained with `DEVICE_DT_GET(node_id)` from any source
 * file that includes `<zephyr/device.h>` (even from extensions, when
 * @kconfig{CONFIG_LLEXT_EXPORT_DEVICES} is enabled). Before using the
 * pointer, the referenced object should be checked using device_is_ready().
 *
 * @param node_id The devicetree node identifier.
 * @param init_fn Pointer to the device's initialization function, which will be
 * run by the kernel during system initialization. Can be `NULL`.
 * @param deinit_fn Pointer to the device's de-initialization function. Can be
 * `NULL`. It must release any acquired resources (e.g. pins, bus, clock...) and
 * leave the device in its reset state.
 * @param pm Pointer to the device's power management resources, a
 * @ref pm_device, which will be stored in @ref device.pm. Use `NULL` if the
 * device does not use PM.
 * @param data Pointer to the device's private mutable data, which will be
 * stored in @ref device.data.
 * @param config Pointer to the device's private constant data, which will be
 * stored in @ref device.config field.
 * @param level The device's initialization level (PRE_KERNEL_1, PRE_KERNEL_2 or
 * POST_KERNEL).
 * @param prio The device's priority within its initialization level. See
 * SYS_INIT() for details.
 * @param api Pointer to the device's API structure. Can be `NULL`.
 */
# 246 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/**
 * @brief Create a device object from a devicetree node identifier and set it up
 * for boot time initialization.
 *
 * @see DEVICE_DT_DEINIT_DEFINE()
 */





/**
 * @brief Like DEVICE_DT_DEINIT_DEFINE(), but uses an instance of a
 * `DT_DRV_COMPAT` compatible instead of a node identifier.
 *
 * @param inst Instance number. The `node_id` argument to DEVICE_DT_DEFINE() is
 * set to `DT_DRV_INST(inst)`.
 * @param ... Other parameters as expected by DEVICE_DT_DEFINE().
 */



/**
 * @brief Like DEVICE_DT_DEFINE(), but uses an instance of a `DT_DRV_COMPAT`
 * compatible instead of a node identifier.
 *
 * @param inst Instance number. The `node_id` argument to DEVICE_DT_DEFINE() is
 * set to `DT_DRV_INST(inst)`.
 * @param ... Other parameters as expected by DEVICE_DT_DEFINE().
 */



/**
 * @brief The name of the global device object for @p node_id
 *
 * Returns the name of the global device structure as a C identifier. The device
 * must be allocated using DEVICE_DT_DEFINE() or DEVICE_DT_INST_DEFINE() for
 * this to work.
 *
 * This macro is normally only useful within device driver source code. In other
 * situations, you are probably looking for DEVICE_DT_GET().
 *
 * @param node_id Devicetree node identifier
 *
 * @return The name of the device object as a C identifier
 */


/**
 * @brief Get a @ref device reference from a devicetree node identifier.
 *
 * Returns a pointer to a device object created from a devicetree node, if any
 * device was allocated by a driver.
 *
 * If no such device was allocated, this will fail at linker time. If you get an
 * error that looks like `undefined reference to __device_dts_ord_<N>`, that is
 * what happened. Check to make sure your device driver is being compiled,
 * usually by enabling the Kconfig options it requires.
 *
 * @param node_id A devicetree node identifier
 *
 * @return A pointer to the device object created for that node
 */


/**
 * @brief Get a @ref device reference for an instance of a `DT_DRV_COMPAT`
 * compatible.
 *
 * This is equivalent to `DEVICE_DT_GET(DT_DRV_INST(inst))`.
 *
 * @param inst `DT_DRV_COMPAT` instance number
 * @return A pointer to the device object created for that instance
 */


/**
 * @brief Get a @ref device reference from a devicetree compatible.
 *
 * If an enabled devicetree node has the given compatible and a device
 * object was created from it, this returns a pointer to that device.
 *
 * If there no such devices, this returns NULL.
 *
 * If there are multiple, this returns an arbitrary one.
 *
 * If this returns non-NULL, the device must be checked for readiness
 * before use, e.g. with device_is_ready().
 *
 * @param compat lowercase-and-underscores devicetree compatible
 * @return a pointer to a device, or NULL
 */





/**
 * @brief Get a @ref device reference from a devicetree compatible.
 *
 * If an enabled devicetree node has the given compatible and a device object
 * was created from it, this returns a pointer to that device.
 *
 * If there are no such devices, this will fail at compile time.
 *
 * If there are multiple, this returns an arbitrary one.
 *
 * If this returns non-NULL, the device must be checked for readiness before
 * use, e.g. with device_is_ready().
 *
 * @param compat lowercase-and-underscores devicetree compatible
 * @return a pointer to a device
 */





/**
 * @brief Utility macro to obtain an optional reference to a device.
 *
 * If the node identifier refers to a node with status `okay`, this returns
 * `DEVICE_DT_GET(node_id)`. Otherwise, it returns `NULL`.
 *
 * @param node_id devicetree node identifier
 *
 * @return a @ref device reference for the node identifier, which may be `NULL`.
 */




/**
 * @brief Get a @ref device reference from a devicetree phandles by idx.
 *
 * Returns a pointer to a device object referenced by a phandles property, by idx.
 *
 * @param node_id A devicetree node identifier
 * @param prop lowercase-and-underscores property with type `phandle`,
 *            `phandles`, or `phandle-array`
 * @param idx logical index into @p phs, which must be zero if @p phs
 *            has type `phandle`
 *
 * @return A pointer to the device object created for that node
 */



/**
 * @brief Obtain a pointer to a device object by name
 *
 * @details Return the address of a device object created by
 * DEVICE_DEFINE(), using the dev_id provided to DEVICE_DEFINE().
 *
 * @param dev_id Device identifier.
 *
 * @return A pointer to the device object created by DEVICE_DEFINE()
 */


/**
 * @brief Declare a static device object
 *
 * This macro can be used at the top-level to declare a device, such
 * that DEVICE_GET() may be used before the full declaration in
 * DEVICE_DEFINE().
 *
 * This is often useful when configuring interrupts statically in a
 * device's init or per-instance config function, as the init function
 * itself is required by DEVICE_DEFINE() and use of DEVICE_GET()
 * inside it creates a circular dependency.
 *
 * @param dev_id Device identifier.
 */



/**
 * @brief Get a @ref init_entry reference from a devicetree node.
 *
 * @param node_id A devicetree node identifier
 *
 * @return A pointer to the @ref init_entry object created for that node
 */



/**
 * @brief Get a @ref init_entry reference from a device identifier.
 *
 * @param dev_id Device identifier.
 *
 * @return A pointer to the init_entry object created for that device
 */


/**
 * @brief Runtime device dynamic structure (in RAM) per driver instance
 *
 * Fields in this are expected to be default-initialized to zero. The
 * kernel driver infrastructure and driver access functions are
 * responsible for ensuring that any non-zero initialization is done
 * before they are accessed.
 */
struct device_state {
 /**
	 * Device initialization return code (positive errno value).
	 *
	 * Device initialization functions return a negative errno code if they
	 * fail. In Zephyr, errno values do not exceed 255, so we can store the
	 * positive result value in a uint8_t type.
	 */
 uint8_t init_res;

 /** Indicates the device initialization function has been
	 * invoked.
	 */
 bool initialized : 1;
};

struct pm_device_base;
struct pm_device;
struct pm_device_isr;

struct device_dt_metadata;
# 480 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/** Device flags */
typedef uint8_t device_flags_t;

/**
 * @name Device flags
 * @{
 */

/** Device initialization is deferred */


/** @} */

/** Device operations */
struct device_ops {
 /** Initialization function */
 int (*init)(const struct device *dev);
 /** De-initialization function */
 int (*deinit)(const struct device *dev);
};

/**
 * @brief Runtime device structure (in ROM) per driver instance
 */
struct device {
 /** Name of the device instance */
 const char *name;
 /** Address of device instance config information */
 const void *config;
 /** Address of the API structure exposed by the device instance */
 const void *api;
 /** Address of the common device state */
 struct device_state *state;
 /** Address of the device instance private data */
 void *data;
 /** Device operations */
 struct device_ops ops;
 /** Device flags */
 device_flags_t flags;
# 542 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
 const struct device_dt_metadata *dt_meta;

};

/**
 * @brief Get the handle for a given device
 *
 * @param dev the device for which a handle is desired.
 *
 * @return the handle for the device, or DEVICE_HANDLE_NULL if the device does
 * not have an associated handle.
 */
static inline device_handle_t device_handle_get(const struct device *dev)
{
 device_handle_t ret = 0;
 extern struct device _device_list_start[];

 /* TODO: If/when devices can be constructed that are not part of the
	 * fixed sequence we'll need another solution.
	 */
 if (dev != 
# 562 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 3 4
           __null
# 562 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
               ) {
  ret = 1 + (device_handle_t)(dev - _device_list_start);
 }

 return ret;
}

/**
 * @brief Get the device corresponding to a handle.
 *
 * @param dev_handle the device handle
 *
 * @return the device that has that handle, or a null pointer if @p dev_handle
 * does not identify a device.
 */
static inline const struct device *
device_from_handle(device_handle_t dev_handle)
{
 extern struct device _device_list_start[];
 const struct device *dev = 
# 581 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 3 4
                           __null
# 581 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
                               ;
 size_t numdev;

 do { extern struct device _device_list_start[]; extern struct device _device_list_end[]; *(&numdev) = ((uintptr_t)_device_list_end - (uintptr_t)_device_list_start) / sizeof(struct device); } while (0);;

 if ((dev_handle > 0) && ((size_t)dev_handle <= numdev)) {
  dev = &_device_list_start[dev_handle - 1];
 }

 return dev;
}
# 812 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/**
 * @brief Get a @ref device reference from its @ref device.name field.
 *
 * This function iterates through the devices on the system. If a device with
 * the given @p name field is found, and that device initialized successfully at
 * boot time, this function returns a pointer to the device.
 *
 * If no device has the given @p name, this function returns `NULL`.
 *
 * This function also returns NULL when a device is found, but it failed to
 * initialize successfully at boot time. (To troubleshoot this case, set a
 * breakpoint on your device driver's initialization function.)
 *
 * @param name device name to search for. A null pointer, or a pointer to an
 * empty string, will cause NULL to be returned.
 *
 * @return pointer to device structure with the given name; `NULL` if the device
 * is not found or if the device with that name's initialization function
 * failed.
 */
static inline const struct device *device_get_binding(const char *name);

/**
 * @brief Get access to the static array of static devices.
 *
 * @param devices where to store the pointer to the array of statically
 * allocated devices. The array must not be mutated through this pointer.
 *
 * @return the number of statically allocated devices.
 */
size_t z_device_get_all_static(const struct device **devices);

/**
 * @brief Verify that a device is ready for use.
 *
 * Indicates whether the provided device pointer is for a device known to be
 * in a state where it can be used with its standard API.
 *
 * This can be used with device pointers captured from DEVICE_DT_GET(), which
 * does not include the readiness checks of device_get_binding(). At minimum
 * this means that the device has been successfully initialized.
 *
 * @param dev pointer to the device in question.
 *
 * @retval true If the device is ready for use.
 * @retval false If the device is not ready for use or if a NULL device pointer
 * is passed as argument.
 */
static inline bool device_is_ready(const struct device *dev);

/**
 * @brief Initialize a device.
 *
 * A device whose initialization was deferred (by marking it as
 * ``zephyr,deferred-init`` on devicetree) needs to be initialized manually via
 * this call. De-initialized devices can also be initialized again via this
 * call.
 *
 * @param dev device to be initialized.
 *
 * @retval -EALREADY Device is already initialized.
 * @retval -errno For other errors.
 */
static inline int device_init(const struct device *dev);

/**
 * @brief De-initialize a device.
 *
 * When a device is de-initialized, it will release any resources it has
 * acquired (e.g. pins, memory, clocks, DMA channels, etc.) and its status will
 * be left as in its reset state.
 *
 * @warning It is the responsability of the caller to ensure that the device is
 * ready to be de-initialized.
 *
 * @param dev device to be de-initialized.
 *
 * @retval 0 If successful
 * @retval -EPERM If device has not been initialized.
 * @retval -ENOTSUP If device does not support de-initialization.
 * @retval -errno For any other errors.
 */
static inline int device_deinit(const struct device *dev);

/**
 * @}
 */

/** @cond INTERNAL_HIDDEN */

/**
 * @brief Synthesize a unique name for the device state associated with
 * @p dev_id.
 */


/**
 * @brief Utility macro to define and initialize the device state.
 *
 * @param dev_id Device identifier.
 */




/**
 * @brief Device flags obtained from DT.
 *
 * @param node_id Devicetree node identifier.
 */
# 1007 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/**
 * @brief Devicetree node labels associated with a device
 */
struct device_dt_nodelabels {
 /* @brief number of elements in the nodelabels array */
 size_t num_nodelabels;
 /* @brief array of node labels as strings, exactly as they
	 *        appear in the final devicetree
	 */
 const char *nodelabels[];
};

/**
 * @brief Devicetree metadata associated with a device
 *
 * This is currently limited to node labels, but the structure is
 * generic enough to be extended later without requiring breaking
 * changes.
 */
struct device_dt_metadata {
 /**
	 * @brief Node labels associated with the device
	 * @see device_get_dt_nodelabels()
	 */
 const struct device_dt_nodelabels *nl;
};

/**
 * @brief Get a @ref device reference from a devicetree node label.
 *
 * If:
 *
 * 1. a device was defined from a devicetree node, for example
 *    with DEVICE_DT_DEFINE() or another similar macro, and
 * 2. that devicetree node has @p nodelabel as one of its node labels, and
 * 3. the device initialized successfully at boot time,
 *
 * then this function returns a pointer to the device. Otherwise, it
 * returns NULL.
 *
 * @param nodelabel a devicetree node label
 * @return a device reference for a device created from a node with that
 *         node label, or NULL if either no such device exists or the device
 *         failed to initialize
 */
static inline const struct device *device_get_by_dt_nodelabel(const char *nodelabel);

/**
 * @brief Get the devicetree node labels associated with a device
 * @param dev device whose metadata to look up
 * @return information about the devicetree node labels or NULL if not available
 */
static inline const struct device_dt_nodelabels *
device_get_dt_nodelabels(const struct device *dev)
{
 if (dev->dt_meta == 
# 1062 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 3 4
                    __null
# 1062 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
                        ) {
  return 
# 1063 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 3 4
        __null
# 1063 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
            ;
 }
 return dev->dt_meta->nl;
}

/**
 * @brief Maximum devicetree node label length.
 *
 * The maximum length is set so that device_get_by_dt_nodelabel() can
 * be used from userspace.
 */


/**
 * @brief Name of the identifier for a device's DT metadata structure
 * @param dev_id device identifier
 */


/**
 * @brief Name of the identifier for the array of node label strings
 *        saved for a device.
 */


/**
 * @brief Initialize an entry in the device DT node label lookup table
 *
 * Allocates and initializes a struct device_dt_metadata in the
 * appropriate iterable section for use finding devices.
 */
# 1107 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/**
 * @brief Init sub-priority of the device
 *
 * The sub-priority is defined by the devicetree ordinal, which ensures that
 * multiple drivers running at the same priority level run in an order that
 * respects the devicetree dependencies.
 */




/**
 * @brief Maximum device name length.
 *
 * The maximum length is set so that device_get_binding() can be used from
 * userspace.
 */


/**
 * @brief Compile time check for device name length
 *
 * @param name Device name.
 */




/**
 * @brief Initializer for @ref device.
 *
 * @param name_ Name of the device.
 * @param init_fn_ Init function (optional).
 * @param deinit_fn_ De-init function (optional).
 * @param flags_ Device flags.
 * @param pm_ Reference to @ref pm_device_base (optional).
 * @param data_ Reference to device data.
 * @param config_ Reference to device config.
 * @param api_ Reference to device API ops.
 * @param state_ Reference to device state.
 * @param deps_ Reference to device dependencies.
 * @param node_id_ Devicetree node identifier
 * @param dev_id_ Device identifier token, as passed to Z_DEVICE_BASE_DEFINE
 */
# 1169 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/*
 * Anonymous unions require C11. Some pre-C11 gcc versions have early support for anonymous
 * unions but they require these braces when combined with C99 designated initializers. For
 * more details see https://docs.zephyrproject.org/latest/develop/languages/cpp/
 */






/**
 * @brief Device section name (used for sorting purposes).
 *
 * @param level Initialization level
 * @param prio Initialization priority
 */



/**
 * @brief Define a @ref device
 *
 * @param node_id Devicetree node id for the device (DT_INVALID_NODE if a
 * software device).
 * @param dev_id Device identifier (used to name the defined @ref device).
 * @param name Name of the device.
 * @param init_fn Init function.
 * @param deinit_fn De-init function.
 * @param flags Device flags.
 * @param pm Reference to @ref pm_device_base associated with the device.
 * (optional).
 * @param data Reference to device data.
 * @param config Reference to device config.
 * @param level Initialization level.
 * @param prio Initialization priority.
 * @param api Reference to device API.
 * @param ... Optional dependencies, manually specified.
 */
# 1218 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/**
 * @brief Issue an error if the given init level is not supported.
 *
 * @param level Init level
 */






/**
 * @brief Define the init entry for a device.
 *
 * @param node_id Devicetree node id for the device (DT_INVALID_NODE if a
 * software device).
 * @param dev_id Device identifier.
 * @param level Initialization level.
 * @param prio Initialization priority.
 */
# 1248 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/**
 * @brief Define a @ref device and all other required objects.
 *
 * This is the common macro used to define @ref device objects. It can be used
 * to define both Devicetree and software devices.
 *
 * @param node_id Devicetree node id for the device (DT_INVALID_NODE if a
 * software device).
 * @param dev_id Device identifier (used to name the defined @ref device).
 * @param name Name of the device.
 * @param init_fn Device init function.
 * @param flags Device flags.
 * @param pm Reference to @ref pm_device_base associated with the device.
 * (optional).
 * @param data Reference to device data.
 * @param config Reference to device config.
 * @param level Initialization level.
 * @param prio Initialization priority.
 * @param api Reference to device API.
 * @param state Reference to device state.
 * @param ... Optional dependencies, manually specified.
 */
# 1291 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/**
 * @brief Declare a device for each status "okay" devicetree node.
 *
 * @note Disabled nodes should not result in devices, so not predeclaring these
 * keeps drivers honest.
 *
 * This is only "maybe" a device because some nodes have status "okay", but
 * don't have a corresponding @ref device allocated. There's no way to figure
 * that out until after we've built the zephyr image, though.
 */




extern const struct device __device_dts_ord_0; extern const struct device __device_dts_ord_2; extern const struct device __device_dts_ord_1; extern const struct device __device_dts_ord_4; extern const struct device __device_dts_ord_5; extern const struct device __device_dts_ord_160; extern const struct device __device_dts_ord_203; extern const struct device __device_dts_ord_204; extern const struct device __device_dts_ord_205; extern const struct device __device_dts_ord_206; extern const struct device __device_dts_ord_207; extern const struct device __device_dts_ord_208; extern const struct device __device_dts_ord_9; extern const struct device __device_dts_ord_59; extern const struct device __device_dts_ord_146; extern const struct device __device_dts_ord_10; extern const struct device __device_dts_ord_78; extern const struct device __device_dts_ord_79; extern const struct device __device_dts_ord_80; extern const struct device __device_dts_ord_81; extern const struct device __device_dts_ord_82; extern const struct device __device_dts_ord_253; extern const struct device __device_dts_ord_83; extern const struct device __device_dts_ord_84; extern const struct device __device_dts_ord_18; extern const struct device __device_dts_ord_85; extern const struct device __device_dts_ord_86; extern const struct device __device_dts_ord_45; extern const struct device __device_dts_ord_41; extern const struct device __device_dts_ord_48; extern const struct device __device_dts_ord_46; extern const struct device __device_dts_ord_47; extern const struct device __device_dts_ord_52; extern const struct device __device_dts_ord_50; extern const struct device __device_dts_ord_42; extern const struct device __device_dts_ord_43; extern const struct device __device_dts_ord_44; extern const struct device __device_dts_ord_49; extern const struct device __device_dts_ord_51; extern const struct device __device_dts_ord_11; extern const struct device __device_dts_ord_12; extern const struct device __device_dts_ord_54; extern const struct device __device_dts_ord_55; extern const struct device __device_dts_ord_190; extern const struct device __device_dts_ord_184; extern const struct device __device_dts_ord_189; extern const struct device __device_dts_ord_181; extern const struct device __device_dts_ord_182; extern const struct device __device_dts_ord_183; extern const struct device __device_dts_ord_185; extern const struct device __device_dts_ord_186; extern const struct device __device_dts_ord_191; extern const struct device __device_dts_ord_187; extern const struct device __device_dts_ord_188; extern const struct device __device_dts_ord_137; extern const struct device __device_dts_ord_138; extern const struct device __device_dts_ord_234; extern const struct device __device_dts_ord_235; extern const struct device __device_dts_ord_230; extern const struct device __device_dts_ord_231; extern const struct device __device_dts_ord_232; extern const struct device __device_dts_ord_226; extern const struct device __device_dts_ord_233; extern const struct device __device_dts_ord_242; extern const struct device __device_dts_ord_243; extern const struct device __device_dts_ord_236; extern const struct device __device_dts_ord_237; extern const struct device __device_dts_ord_238; extern const struct device __device_dts_ord_239; extern const struct device __device_dts_ord_240; extern const struct device __device_dts_ord_241; extern const struct device __device_dts_ord_227; extern const struct device __device_dts_ord_228; extern const struct device __device_dts_ord_229; extern const struct device __device_dts_ord_211; extern const struct device __device_dts_ord_217; extern const struct device __device_dts_ord_218; extern const struct device __device_dts_ord_219; extern const struct device __device_dts_ord_220; extern const struct device __device_dts_ord_221; extern const struct device __device_dts_ord_248; extern const struct device __device_dts_ord_222; extern const struct device __device_dts_ord_223; extern const struct device __device_dts_ord_224; extern const struct device __device_dts_ord_225; extern const struct device __device_dts_ord_212; extern const struct device __device_dts_ord_213; extern const struct device __device_dts_ord_214; extern const struct device __device_dts_ord_215; extern const struct device __device_dts_ord_216; extern const struct device __device_dts_ord_245; extern const struct device __device_dts_ord_246; extern const struct device __device_dts_ord_244; extern const struct device __device_dts_ord_247; extern const struct device __device_dts_ord_249; extern const struct device __device_dts_ord_27; extern const struct device __device_dts_ord_31; extern const struct device __device_dts_ord_15; extern const struct device __device_dts_ord_28; extern const struct device __device_dts_ord_32; extern const struct device __device_dts_ord_16; extern const struct device __device_dts_ord_263; extern const struct device __device_dts_ord_264; extern const struct device __device_dts_ord_265; extern const struct device __device_dts_ord_266; extern const struct device __device_dts_ord_268; extern const struct device __device_dts_ord_267; extern const struct device __device_dts_ord_70; extern const struct device __device_dts_ord_74; extern const struct device __device_dts_ord_71; extern const struct device __device_dts_ord_75; extern const struct device __device_dts_ord_72; extern const struct device __device_dts_ord_76; extern const struct device __device_dts_ord_102; extern const struct device __device_dts_ord_101; extern const struct device __device_dts_ord_88; extern const struct device __device_dts_ord_89; extern const struct device __device_dts_ord_93; extern const struct device __device_dts_ord_92; extern const struct device __device_dts_ord_97; extern const struct device __device_dts_ord_98; extern const struct device __device_dts_ord_96; extern const struct device __device_dts_ord_105; extern const struct device __device_dts_ord_256; extern const struct device __device_dts_ord_257; extern const struct device __device_dts_ord_64; extern const struct device __device_dts_ord_57; extern const struct device __device_dts_ord_61; extern const struct device __device_dts_ord_67; extern const struct device __device_dts_ord_258; extern const struct device __device_dts_ord_65; extern const struct device __device_dts_ord_58; extern const struct device __device_dts_ord_62; extern const struct device __device_dts_ord_68; extern const struct device __device_dts_ord_259; extern const struct device __device_dts_ord_108; extern const struct device __device_dts_ord_109; extern const struct device __device_dts_ord_66; extern const struct device __device_dts_ord_60; extern const struct device __device_dts_ord_63; extern const struct device __device_dts_ord_69; extern const struct device __device_dts_ord_260; extern const struct device __device_dts_ord_261; extern const struct device __device_dts_ord_262; extern const struct device __device_dts_ord_29; extern const struct device __device_dts_ord_33; extern const struct device __device_dts_ord_17; extern const struct device __device_dts_ord_19; extern const struct device __device_dts_ord_180; extern const struct device __device_dts_ord_209; extern const struct device __device_dts_ord_210; extern const struct device __device_dts_ord_73; extern const struct device __device_dts_ord_77; extern const struct device __device_dts_ord_139; extern const struct device __device_dts_ord_100; extern const struct device __device_dts_ord_103; extern const struct device __device_dts_ord_293; extern const struct device __device_dts_ord_87; extern const struct device __device_dts_ord_90; extern const struct device __device_dts_ord_91; extern const struct device __device_dts_ord_94; extern const struct device __device_dts_ord_95; extern const struct device __device_dts_ord_99; extern const struct device __device_dts_ord_104; extern const struct device __device_dts_ord_106; extern const struct device __device_dts_ord_53; extern const struct device __device_dts_ord_167; extern const struct device __device_dts_ord_169; extern const struct device __device_dts_ord_170; extern const struct device __device_dts_ord_168; extern const struct device __device_dts_ord_173; extern const struct device __device_dts_ord_172; extern const struct device __device_dts_ord_171; extern const struct device __device_dts_ord_174; extern const struct device __device_dts_ord_175; extern const struct device __device_dts_ord_176; extern const struct device __device_dts_ord_165; extern const struct device __device_dts_ord_166; extern const struct device __device_dts_ord_13; extern const struct device __device_dts_ord_177; extern const struct device __device_dts_ord_178; extern const struct device __device_dts_ord_56; extern const struct device __device_dts_ord_179; extern const struct device __device_dts_ord_142; extern const struct device __device_dts_ord_149; extern const struct device __device_dts_ord_250; extern const struct device __device_dts_ord_251; extern const struct device __device_dts_ord_252; extern const struct device __device_dts_ord_269; extern const struct device __device_dts_ord_270; extern const struct device __device_dts_ord_271; extern const struct device __device_dts_ord_272; extern const struct device __device_dts_ord_273; extern const struct device __device_dts_ord_192; extern const struct device __device_dts_ord_193; extern const struct device __device_dts_ord_194; extern const struct device __device_dts_ord_147; extern const struct device __device_dts_ord_196; extern const struct device __device_dts_ord_197; extern const struct device __device_dts_ord_110; extern const struct device __device_dts_ord_111; extern const struct device __device_dts_ord_198; extern const struct device __device_dts_ord_199; extern const struct device __device_dts_ord_200; extern const struct device __device_dts_ord_121; extern const struct device __device_dts_ord_122; extern const struct device __device_dts_ord_123; extern const struct device __device_dts_ord_26; extern const struct device __device_dts_ord_6; extern const struct device __device_dts_ord_7; extern const struct device __device_dts_ord_115; extern const struct device __device_dts_ord_116; extern const struct device __device_dts_ord_8; extern const struct device __device_dts_ord_120; extern const struct device __device_dts_ord_130; extern const struct device __device_dts_ord_21; extern const struct device __device_dts_ord_22; extern const struct device __device_dts_ord_23; extern const struct device __device_dts_ord_24; extern const struct device __device_dts_ord_25; extern const struct device __device_dts_ord_107; extern const struct device __device_dts_ord_3; extern const struct device __device_dts_ord_126; extern const struct device __device_dts_ord_127; extern const struct device __device_dts_ord_128; extern const struct device __device_dts_ord_129; extern const struct device __device_dts_ord_124; extern const struct device __device_dts_ord_125; extern const struct device __device_dts_ord_195; extern const struct device __device_dts_ord_20; extern const struct device __device_dts_ord_40; extern const struct device __device_dts_ord_112;

/** @brief Expands to the full type. */


/** @endcond */

/**
 * @brief Wrapper macro for declaring device API structs inside iterable sections.
 *
 * @param _class The device API class.
 * @param _name The API instance name.
 */


/**
 * @brief Expands to the pointer of a device's API for a given class.
 *
 * @param _class The device API class.
 * @param _dev The device instance pointer.
 *
 * @return the pointer to the device API.
 */


/**
 * @brief Macro that evaluates to a boolean that can be used to check if
 *        a device is of a particular class.
 *
 * @param _class The device API class.
 * @param _dev The device instance pointer.
 *
 * @retval true If the device is of the given class
 * @retval false If the device is not of the given class
 */
# 1349 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
}


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h" 1
/* auto-generated by gen_syscalls.py, don't edit */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_syscall.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_syscall.h"
/**
 * @brief Syscall Tracing APIs
 * @defgroup subsys_tracing_apis_syscall Syscall Tracing APIs
 * @ingroup subsys_tracing_apis
 * @{
 */

/**
 * @brief Trace syscall entry
 * @param id Syscall ID (as defined in the generated syscall_list.h)
 * @param name Syscall name as a token (ex: k_thread_create)
 * @param ... Other parameters passed to the syscall
 */


/**
 * @brief Trace syscall exit
 * @param id Syscall ID (as defined in the generated syscall_list.h)
 * @param name Syscall name as a token (ex: k_thread_create)
 * @param ... Other parameters passed to the syscall, if the syscall has a
 *            return, the return value is the last parameter in the list
 */


/** @} */ /* end of subsys_tracing_syscall_apis */
# 8 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h" 2



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* auto-generated by gen_syscalls.py, don't edit */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h" 2



extern "C" {


extern const struct device * z_impl_device_get_binding(const char * name);


static inline const struct device * device_get_binding(const char * name)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_device_get_binding(name);
}
# 46 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h"
extern bool z_impl_device_is_ready(const struct device * dev);


static inline bool device_is_ready(const struct device * dev)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_device_is_ready(dev);
}
# 69 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h"
extern int z_impl_device_init(const struct device * dev);


static inline int device_init(const struct device * dev)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_device_init(dev);
}
# 92 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h"
extern int z_impl_device_deinit(const struct device * dev);


static inline int device_deinit(const struct device * dev)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_device_deinit(dev);
}
# 115 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h"
extern const struct device * z_impl_device_get_by_dt_nodelabel(const char * nodelabel);


static inline const struct device * device_get_by_dt_nodelabel(const char * nodelabel)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_device_get_by_dt_nodelabel(nodelabel);
}
# 139 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/device.h"
}
# 1353 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 2
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h" 1
/*
 * Copyright (C) 2020, Intel Corporation
 * Copyright (C) 2023, Nordic Semiconductor ASA
 * SPDX-License-Identifier: Apache-2.0
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h" 2


extern "C" {


/* Default vector for the IRQ vector table */
void _isr_wrapper(void);

/* Spurious interrupt handler. Throws an error if called */
void z_irq_spurious(const void *unused);

/*
 * Note the order: arg first, then ISR. This allows a table entry to be
 * loaded arg -> r0, isr -> r3 in _isr_wrapper with one ldmia instruction,
 * on ARM Cortex-M (Thumb2).
 */
struct _isr_table_entry {
 const void *arg;
 void (*isr)(const void *);
};

/* The software ISR table itself, an array of these structures indexed by the
 * irq line
 */
extern struct _isr_table_entry _sw_isr_table[];

struct _irq_parent_entry {
 const struct device *dev;
 unsigned int level;
 unsigned int irq;
 unsigned int offset;
};

/**
 * @cond INTERNAL_HIDDEN
 */

/* Mapping between aggregator level to order */


/**
 * @brief Get the Software ISR table offset Kconfig for the given aggregator level
 *
 * @param l Aggregator level, must be 2 or 3
 *
 * @return `CONFIG_2ND_LVL_ISR_TBL_OFFSET` if second level aggregator,
 * `CONFIG_3RD_LVL_ISR_TBL_OFFSET` if third level aggregator
 */


/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief Get an interrupt controller node's level base ISR table offset.
 *
 * @param node_id node identifier of the interrupt controller
 *
 * @return `CONFIG_2ND_LVL_ISR_TBL_OFFSET` if node_id is a second level aggregator,
 * `CONFIG_3RD_LVL_ISR_TBL_OFFSET` if it is a third level aggregator
 */



/**
 * @brief Get the SW ISR table offset for an instance of interrupt controller
 *
 * @param inst DT_DRV_COMPAT interrupt controller driver instance number
 *
 * @return Software ISR table offset of the interrupt controller
 */



/**
 * @brief Get the SW ISR table offset for a child interrupt controller
 *
 * @details This macro is a alternative form of the `INTC_INST_ISR_TBL_OFFSET`. This is used by
 * pseudo interrupt controller devices that are child of a main interrupt controller device.
 *
 * @param node_id node identifier of the child interrupt controller
 *
 * @return Software ISR table offset of the child
 */




/**
 * @brief Register an  interrupt controller with the software ISR table
 *
 * @param _name Name of the interrupt controller (must be unique)
 * @param _dev Pointer to the interrupt controller device instance
 * @param _irq Interrupt controller IRQ number
 * @param _offset Software ISR table offset of the interrupt controller
 * @param _level Interrupt controller aggregator level
 */
# 129 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h"
/*
 * Data structure created in a special binary .intlist section for each
 * configured interrupt. gen_irq_tables.py pulls this out of the binary and
 * uses it to create the IRQ vector table and the _sw_isr_table.
 *
 * More discussion in include/linker/intlist.ld
 *
 * This is a version used when CONFIG_ISR_TABLES_LOCAL_DECLARATION is disabled.
 * See _isr_list_sname used otherwise.
 */
struct _isr_list {
 /** IRQ line number */
 int32_t irq;
 /** Flags for this IRQ, see ISR_FLAG_* definitions */
 int32_t flags;
 /** ISR to call */
 void *func;
 /** Parameter for non-direct IRQs */
 const void *param;
};

/*
 * Data structure created in a special binary .intlist section for each
 * configured interrupt. gen_isr_tables.py pulls this out of the binary and
 * uses it to create linker script chunks that would place interrupt table entries
 * in the right place in the memory.
 *
 * This is a version used when CONFIG_ISR_TABLES_LOCAL_DECLARATION is enabled.
 * See _isr_list used otherwise.
 */
struct _isr_list_sname {
 /** IRQ line number */
 int32_t irq;
 /** Flags for this IRQ, see ISR_FLAG_* definitions */
 int32_t flags;
 /** The section name */
 const char sname[];
};
# 179 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h"
/** This interrupt gets put directly in the vector table */
# 269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h"
/* Create an instance of struct _isr_list which gets put in the .intList
 * section. This gets consumed by gen_isr_tables.py which creates the vector
 * and/or SW ISR tables.
 */





/* The version of the Z_ISR_DECLARE that should be used for direct ISR declaration.
 * It is here for the API match the version with CONFIG_ISR_TABLES_LOCAL_DECLARATION enabled.
 */
# 299 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sw_isr_table.h"
}
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/irq.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/irq.h" 2



# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/irq.h"
extern "C" {
# 38 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/irq.h"
extern void arm_irq_enable(unsigned int irq);
extern void arm_irq_disable(unsigned int irq);
extern int arm_irq_is_enabled(unsigned int irq);
extern void arm_irq_priority_set(unsigned int irq, unsigned int prio, uint32_t flags);
# 77 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/irq.h"
extern void z_arm_int_exit(void);

extern void z_arm_interrupt_init(void);

/* Flags for use with IRQ_CONNECT() */
/**
 * Set this interrupt up as a zero-latency IRQ. If CONFIG_ZERO_LATENCY_LEVELS
 * is 1 it has a fixed hardware priority level (discarding what was supplied
 * in the interrupt's priority argument). If CONFIG_ZERO_LATENCY_LEVELS is
 * greater 1 it has the priority level assigned by the argument.
 * The interrupt will run even if irq_lock() is active. Be careful!
 */
# 109 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/irq.h"
/* All arguments must be computable by the compiler at build time.
 *
 * Z_ISR_DECLARE will populate the .intList section with the interrupt's
 * parameters, which will then be used by gen_irq_tables.py to create
 * the vector table and the software ISR table. This is all done at
 * build-time.
 *
 * We additionally set the priority in the interrupt controller at
 * runtime.
 */
# 147 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/irq.h"
/* arch/arm/core/exc_exit.S */
extern void z_arm_int_exit(void);






static inline void arch_isr_direct_header(void)
{



}

static inline void arch_isr_direct_footer(int maybe_swap)
{



 if (maybe_swap != 0) {
  z_arm_int_exit();
 }
}
# 271 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/irq.h"
}
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/error.h" 1
/*
 * Copyright (c) 2013-2014 Wind River Systems, Inc.
 * Copyright (c) 2023 Arm Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 public error handling
 *
 * ARM AArch32-specific kernel error handling interface. Included by
 * arm/arch.h.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/syscall.h" 1
/*
 * Copyright (c) 2018 Linaro Limited.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 specific syscall header
 *
 * This header contains the ARM AArch32 specific syscall interface.  It is
 * included by the syscall interface architecture-abstraction header
 * (include/arch/syscall.h)
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/error.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/exception.h" 1
/*
 * Copyright (c) 2013-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 public exception handling
 *
 * ARM AArch32-specific kernel exception handling interface. Included by
 * arm/arch.h.
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/error.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/error.h" 2



# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/error.h"
extern "C" {



/* ARMv6 will hard-fault if SVC is called with interrupts locked. Just
 * force them unlocked, the thread is in an undefined state anyway
 *
 * On ARMv7m we won't get a HardFault, but if interrupts were locked the
 * thread will continue executing after the exception and forbid PendSV to
 * schedule a new thread until they are unlocked which is not what we want.
 * Force them unlocked as well.
 */
# 72 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/error.h"
}
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/misc.h" 1
/*
 * Copyright (c) 2013-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 public kernel miscellaneous
 *
 * ARM AArch32-specific kernel miscellaneous interface. Included by arm/arch.h.
 */





extern "C" {



extern uint32_t sys_clock_cycle_get_32(void);

static inline uint32_t arch_k_cycle_get_32(void)
{
 return sys_clock_cycle_get_32();
}

extern uint64_t sys_clock_cycle_get_64(void);

static inline uint64_t arch_k_cycle_get_64(void)
{
 return sys_clock_cycle_get_64();
}

static inline __attribute__((always_inline)) void arch_nop(void)
{
 __asm__ volatile("nop");
}
# 66 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/misc.h"
}
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/addr_types.h" 1
/* x86 address types (virtual, physical, etc) definitions */

/*
 * Copyright (c) 2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */





typedef uintptr_t paddr_t;
typedef void *vaddr_t;
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/ffs.h" 1
/*
 * Copyright (c) 2015, Wind River Systems, Inc.
 * Copyright (c) 2017, Oticon A/S
 *
 * SPDX-License-Identifier: Apache-2.0
 */






# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/ffs.h" 2


extern "C" {


/**
 *
 * @brief find most significant bit set in a 32-bit word
 *
 * This routine finds the first bit set starting from the most significant bit
 * in the argument passed in and returns the index of that bit.  Bits are
 * numbered starting at 1 from the least significant bit.  A return value of
 * zero indicates that the value passed is zero.
 *
 * @return most significant bit set, 0 if @a op is 0
 */

static inline __attribute__((always_inline)) unsigned int find_msb_set(uint32_t op)
{
 if (op == 0) {
  return 0;
 }

 return 32 - __builtin_clz(op);
}


/**
 *
 * @brief find least significant bit set in a 32-bit word
 *
 * This routine finds the first bit set starting from the least significant bit
 * in the argument passed in and returns the index of that bit.  Bits are
 * numbered starting at 1 from the least significant bit.  A return value of
 * zero indicates that the value passed is zero.
 *
 * @return least significant bit set, 0 if @a op is 0
 */

static inline __attribute__((always_inline)) unsigned int find_lsb_set(uint32_t op)
{

 return __builtin_ffs(op);
# 68 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/ffs.h"
}


}
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/nmi.h" 1
/**
 * @file
 *
 * @brief ARM AArch32 NMI routines
 */

/*
 * Copyright (c) 2015 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {



extern void z_arm_nmi_set_handler(void (*pHandler)(void));



}
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline.h" 1
/* ARM AArch32 inline assembler functions and macros for public functions */

/*
 * Copyright (c) 2015, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */




/*
 * The file must not be included directly
 * Include kernel.h instead
 */


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline_gcc.h" 1
/* ARM AArch32 GCC specific public inline assembler functions and macros */

/*
 * Copyright (c) 2015, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/* Either public functions or macros or invoked by public functions */




/*
 * The file must not be included directly
 * Include arch/cpu.h instead
 */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline_gcc.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline_gcc.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/exception.h" 1
/*
 * Copyright (c) 2013-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 public exception handling
 *
 * ARM AArch32-specific kernel exception handling interface. Included by
 * arm/arch.h.
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline_gcc.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/modules/cmsis/./cmsis_core.h" 1
/*
 * Copyright (c) 2023 Nordic Semiconductor ASA
 * SPDX-License-Identifier: Apache-2.0
 */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/modules/cmsis/./cmsis_core_m.h" 1
/*
 * Copyright (c) 2017 Nordic Semiconductor ASA
 * Copyright (c) 2023 Arm Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief CMSIS interface file
 *
 * This header contains the interface to the ARM CMSIS Core headers.
 */
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/modules/cmsis/./cmsis_core_m.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/nvic.h" 1
/*
 * Copyright (c) 2020, Linaro Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/modules/cmsis/./cmsis_core_m.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/soc/st/stm32/stm32h7x/./soc.h" 1
/*
 * Copyright (c) 2019 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */






# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx.h
  * @author  MCD Application Team
  * @brief   CMSIS STM32H7xx Device Peripheral Access Layer Header File.
  *
  *          The file is the unique include file that the application programmer
  *          is using in the C source code, usually in main.c. This file contains:
  *           - Configuration section that allows to select:
  *              - The STM32H7xx device used in the target application
  *              - To use or not the peripheral's drivers in application code(i.e.
  *                code will be based on direct access to peripheral's registers
  *                rather than drivers API), this option is controlled by
  *                "#define USE_HAL_DRIVER"
  *
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/** @addtogroup CMSIS
  * @{
  */

/** @addtogroup stm32h7xx
  * @{
  */





 extern "C" {


/** @addtogroup Library_configuration_section
  * @{
  */

/**
  * @brief STM32 Family
  */





/* Uncomment the line below according to the target STM32H7 device used in your
   application
  */
# 88 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/*  Tip: To avoid modifying this file each time you need to switch between these
        devices, you can define the device in your toolchain compiler preprocessor.
  */
# 105 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/**
  * @brief CMSIS Device version number V1.10.5
  */
# 117 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/**
  * @}
  */

/** @addtogroup Device_Included
  * @{
  */
# 140 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h" 1
/**
  ******************************************************************************
  * @file    stm32h747xx.h
  * @author  MCD Application Team
  * @brief   CMSIS STM32H747xx Device Peripheral Access Layer Header File.
  *
  *          This file contains:
  *           - Data structures and the address mapping for all peripherals
  *           - Peripheral's registers declarations and bits definition
  *           - Macros to access peripheral's registers hardware
  *
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2019 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/** @addtogroup CMSIS_Device
  * @{
  */

/** @addtogroup stm32h747xx
  * @{
  */





 extern "C" {


/** @addtogroup Peripheral_interrupt_number_definition
  * @{
  */

/**
 * @brief STM32H7XX Interrupt Number Definition, according to the selected device
 *        in @ref Library_configuration_section
 */
typedef enum
{
/******  Cortex-M Processor Exceptions Numbers *****************************************************************/
  NonMaskableInt_IRQn = -14,
  HardFault_IRQn = -13,
  MemoryManagement_IRQn = -12,
  BusFault_IRQn = -11,
  UsageFault_IRQn = -10,
  SVCall_IRQn = -5,
  DebugMonitor_IRQn = -4,
  PendSV_IRQn = -2,
  SysTick_IRQn = -1,
/******  STM32 specific Interrupt Numbers **********************************************************************/
  WWDG_IRQn = 0,
  PVD_AVD_IRQn = 1,
  TAMP_STAMP_IRQn = 2,
  RTC_WKUP_IRQn = 3,
  FLASH_IRQn = 4,
  RCC_IRQn = 5,
  EXTI0_IRQn = 6,
  EXTI1_IRQn = 7,
  EXTI2_IRQn = 8,
  EXTI3_IRQn = 9,
  EXTI4_IRQn = 10,
  DMA1_Stream0_IRQn = 11,
  DMA1_Stream1_IRQn = 12,
  DMA1_Stream2_IRQn = 13,
  DMA1_Stream3_IRQn = 14,
  DMA1_Stream4_IRQn = 15,
  DMA1_Stream5_IRQn = 16,
  DMA1_Stream6_IRQn = 17,
  ADC_IRQn = 18,
  FDCAN1_IT0_IRQn = 19,
  FDCAN2_IT0_IRQn = 20,
  FDCAN1_IT1_IRQn = 21,
  FDCAN2_IT1_IRQn = 22,
  EXTI9_5_IRQn = 23,
  TIM1_BRK_IRQn = 24,
  TIM1_UP_IRQn = 25,
  TIM1_TRG_COM_IRQn = 26,
  TIM1_CC_IRQn = 27,
  TIM2_IRQn = 28,
  TIM3_IRQn = 29,
  TIM4_IRQn = 30,
  I2C1_EV_IRQn = 31,
  I2C1_ER_IRQn = 32,
  I2C2_EV_IRQn = 33,
  I2C2_ER_IRQn = 34,
  SPI1_IRQn = 35,
  SPI2_IRQn = 36,
  USART1_IRQn = 37,
  USART2_IRQn = 38,
  USART3_IRQn = 39,
  EXTI15_10_IRQn = 40,
  RTC_Alarm_IRQn = 41,
  TIM8_BRK_TIM12_IRQn = 43,
  TIM8_UP_TIM13_IRQn = 44,
  TIM8_TRG_COM_TIM14_IRQn = 45,
  TIM8_CC_IRQn = 46,
  DMA1_Stream7_IRQn = 47,
  FMC_IRQn = 48,
  SDMMC1_IRQn = 49,
  TIM5_IRQn = 50,
  SPI3_IRQn = 51,
  UART4_IRQn = 52,
  UART5_IRQn = 53,
  TIM6_DAC_IRQn = 54,
  TIM7_IRQn = 55,
  DMA2_Stream0_IRQn = 56,
  DMA2_Stream1_IRQn = 57,
  DMA2_Stream2_IRQn = 58,
  DMA2_Stream3_IRQn = 59,
  DMA2_Stream4_IRQn = 60,
  ETH_IRQn = 61,
  ETH_WKUP_IRQn = 62,
  FDCAN_CAL_IRQn = 63,
  CM7_SEV_IRQn = 64,
  CM4_SEV_IRQn = 65,
  DMA2_Stream5_IRQn = 68,
  DMA2_Stream6_IRQn = 69,
  DMA2_Stream7_IRQn = 70,
  USART6_IRQn = 71,
  I2C3_EV_IRQn = 72,
  I2C3_ER_IRQn = 73,
  OTG_HS_EP1_OUT_IRQn = 74,
  OTG_HS_EP1_IN_IRQn = 75,
  OTG_HS_WKUP_IRQn = 76,
  OTG_HS_IRQn = 77,
  DCMI_IRQn = 78,
  RNG_IRQn = 80,
  FPU_IRQn = 81,
  UART7_IRQn = 82,
  UART8_IRQn = 83,
  SPI4_IRQn = 84,
  SPI5_IRQn = 85,
  SPI6_IRQn = 86,
  SAI1_IRQn = 87,
  LTDC_IRQn = 88,
  LTDC_ER_IRQn = 89,
  DMA2D_IRQn = 90,
  SAI2_IRQn = 91,
  QUADSPI_IRQn = 92,
  LPTIM1_IRQn = 93,
  CEC_IRQn = 94,
  I2C4_EV_IRQn = 95,
  I2C4_ER_IRQn = 96,
  SPDIF_RX_IRQn = 97,
  OTG_FS_EP1_OUT_IRQn = 98,
  OTG_FS_EP1_IN_IRQn = 99,
  OTG_FS_WKUP_IRQn = 100,
  OTG_FS_IRQn = 101,
  DMAMUX1_OVR_IRQn = 102,
  HRTIM1_Master_IRQn = 103,
  HRTIM1_TIMA_IRQn = 104,
  HRTIM1_TIMB_IRQn = 105,
  HRTIM1_TIMC_IRQn = 106,
  HRTIM1_TIMD_IRQn = 107,
  HRTIM1_TIME_IRQn = 108,
  HRTIM1_FLT_IRQn = 109,
  DFSDM1_FLT0_IRQn = 110,
  DFSDM1_FLT1_IRQn = 111,
  DFSDM1_FLT2_IRQn = 112,
  DFSDM1_FLT3_IRQn = 113,
  SAI3_IRQn = 114,
  SWPMI1_IRQn = 115,
  TIM15_IRQn = 116,
  TIM16_IRQn = 117,
  TIM17_IRQn = 118,
  MDIOS_WKUP_IRQn = 119,
  MDIOS_IRQn = 120,
  JPEG_IRQn = 121,
  MDMA_IRQn = 122,
  DSI_IRQn = 123,
  SDMMC2_IRQn = 124,
  HSEM1_IRQn = 125,
  HSEM2_IRQn = 126,
  ADC3_IRQn = 127,
  DMAMUX2_OVR_IRQn = 128,
  BDMA_Channel0_IRQn = 129,
  BDMA_Channel1_IRQn = 130,
  BDMA_Channel2_IRQn = 131,
  BDMA_Channel3_IRQn = 132,
  BDMA_Channel4_IRQn = 133,
  BDMA_Channel5_IRQn = 134,
  BDMA_Channel6_IRQn = 135,
  BDMA_Channel7_IRQn = 136,
  COMP_IRQn = 137 ,
  LPTIM2_IRQn = 138,
  LPTIM3_IRQn = 139,
  LPTIM4_IRQn = 140,
  LPTIM5_IRQn = 141,
  LPUART1_IRQn = 142,
  WWDG_RST_IRQn = 143,
  CRS_IRQn = 144,
  ECC_IRQn = 145,
  SAI4_IRQn = 146,
  HOLD_CORE_IRQn = 148,
  WAKEUP_PIN_IRQn = 149,
} IRQn_Type;

/**
  * @}
  */

/** @addtogroup Configuration_section_for_CMSIS
  * @{
  */






/**
  * @brief Configuration of the Cortex-M4/ Cortex-M7 Processor and Core Peripherals
   */
# 241 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h" 1
/**************************************************************************//**
 * @file     core_cm7.h
 * @brief    CMSIS Cortex-M7 Core Peripheral Access Layer Header File
 * @version  V5.1.6
 * @date     04. June 2021
 ******************************************************************************/
/*
 * Copyright (c) 2009-2021 Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the License); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
# 34 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 35 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h" 2


 
# 37 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
extern "C" {


/**
  \page CMSIS_MISRA_Exceptions  MISRA-C:2004 Compliance Exceptions
  CMSIS violates the following MISRA-C:2004 rules:

   \li Required Rule 8.5, object/function definition in header file.<br>
     Function definitions in header files are used to allow 'inlining'.

   \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br>
     Unions are used for effective representation of core registers.

   \li Advisory Rule 19.7, Function-like macro defined.<br>
     Function-like macros are used to allow more efficient code.
 */


/*******************************************************************************
 *                 CMSIS definitions
 ******************************************************************************/
/**
  \ingroup Cortex_M7
  @{
 */

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_version.h" 1
/**************************************************************************//**
 * @file     cmsis_version.h
 * @brief    CMSIS Core(M) Version definitions
 * @version  V5.0.5
 * @date     02. February 2022
 ******************************************************************************/
/*
 * Copyright (c) 2009-2022 ARM Limited. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the License); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
# 34 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_version.h"
/*  CMSIS Version definitions */
# 64 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h" 2

/* CMSIS CM7 definitions */







/** __FPU_USED indicates whether an FPU is used or not.
    For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions.
*/
# 162 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_compiler.h" 1
/**************************************************************************//**
 * @file     cmsis_compiler.h
 * @brief    CMSIS compiler generic header file
 * @version  V5.1.0
 * @date     09. October 2018
 ******************************************************************************/
/*
 * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the License); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_compiler.h" 2


# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_compiler.h"
/*
 * Arm Compiler 4/5
 */
# 54 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_compiler.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h" 1
/**************************************************************************//**
 * @file     cmsis_gcc.h
 * @brief    CMSIS compiler GCC header file
 * @version  V5.4.1
 * @date     27. May 2021
 ******************************************************************************/
/*
 * Copyright (c) 2009-2021 Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the License); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */




/* ignore some GCC warnings */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wsign-conversion"
#pragma GCC diagnostic ignored "-Wconversion"
#pragma GCC diagnostic ignored "-Wunused-parameter"

/* Fallback for __has_builtin */




/* CMSIS compiler specific defines */
# 71 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpacked"
#pragma GCC diagnostic ignored "-Wattributes"
  struct __attribute__((packed)) T_UINT32 { uint32_t v; };
#pragma GCC diagnostic pop



#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpacked"
#pragma GCC diagnostic ignored "-Wattributes"
  struct __attribute__((packed, aligned(1))) T_UINT16_WRITE { uint16_t v; };
#pragma GCC diagnostic pop



#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpacked"
#pragma GCC diagnostic ignored "-Wattributes"
  struct __attribute__((packed, aligned(1))) T_UINT16_READ { uint16_t v; };
#pragma GCC diagnostic pop



#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpacked"
#pragma GCC diagnostic ignored "-Wattributes"
  struct __attribute__((packed, aligned(1))) T_UINT32_WRITE { uint32_t v; };
#pragma GCC diagnostic pop



#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpacked"
#pragma GCC diagnostic ignored "-Wattributes"
  struct __attribute__((packed, aligned(1))) T_UINT32_READ { uint32_t v; };
#pragma GCC diagnostic pop
# 120 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/* #########################  Startup and Lowlevel Init  ######################## */
# 205 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/* ##########################  Core Instruction Access  ######################### */
/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
  Access to dedicated instructions
  @{
*/

/* Define macros for porting to both thumb1 and thumb2.
 * For thumb1, use low register (r0-r7), specified by constraint "l"
 * Otherwise, use general registers, specified by constraint "r" */
# 224 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   No Operation
  \details No Operation does nothing. This instruction can be used for code alignment purposes.
 */


/**
  \brief   Wait For Interrupt
  \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs.
 */



/**
  \brief   Wait For Event
  \details Wait For Event is a hint instruction that permits the processor to enter
           a low-power state until one of a number of events occurs.
 */



/**
  \brief   Send Event
  \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
 */



/**
  \brief   Instruction Synchronization Barrier
  \details Instruction Synchronization Barrier flushes the pipeline in the processor,
           so that all instructions following the ISB are fetched from cache or memory,
           after the instruction has been completed.
 */
__attribute__((always_inline)) static inline void __ISB(void)
{
  __asm volatile ("isb 0xF":::"memory");
}


/**
  \brief   Data Synchronization Barrier
  \details Acts as a special kind of Data Memory Barrier.
           It completes when all explicit memory accesses before this instruction complete.
 */
__attribute__((always_inline)) static inline void __DSB(void)
{
  __asm volatile ("dsb 0xF":::"memory");
}


/**
  \brief   Data Memory Barrier
  \details Ensures the apparent order of the explicit memory operations before
           and after the instruction, without ensuring their completion.
 */
__attribute__((always_inline)) static inline void __DMB(void)
{
  __asm volatile ("dmb 0xF":::"memory");
}


/**
  \brief   Reverse byte order (32 bit)
  \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412.
  \param [in]    value  Value to reverse
  \return               Reversed value
 */
__attribute__((always_inline)) static inline uint32_t __REV(uint32_t value)
{

  return __builtin_bswap32(value);






}


/**
  \brief   Reverse byte order (16 bit)
  \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856.
  \param [in]    value  Value to reverse
  \return               Reversed value
 */
__attribute__((always_inline)) static inline uint32_t __REV16(uint32_t value)
{
  uint32_t result;

  __asm ("rev16 %0, %1" : "=r" (result) : "r" (value) );
  return result;
}


/**
  \brief   Reverse byte order (16 bit)
  \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000.
  \param [in]    value  Value to reverse
  \return               Reversed value
 */
__attribute__((always_inline)) static inline int16_t __REVSH(int16_t value)
{

  return (int16_t)__builtin_bswap16(value);






}


/**
  \brief   Rotate Right in unsigned value (32 bit)
  \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits.
  \param [in]    op1  Value to rotate
  \param [in]    op2  Number of Bits to rotate
  \return               Rotated value
 */
__attribute__((always_inline)) static inline uint32_t __ROR(uint32_t op1, uint32_t op2)
{
  op2 %= 32U;
  if (op2 == 0U)
  {
    return op1;
  }
  return (op1 >> op2) | (op1 << (32U - op2));
}


/**
  \brief   Breakpoint
  \details Causes the processor to enter Debug state.
           Debug tools can use this to investigate system state when the instruction at a particular address is reached.
  \param [in]    value  is ignored by the processor.
                 If required, a debugger can use it to store additional information about the breakpoint.
 */



/**
  \brief   Reverse bit order of value
  \details Reverses the bit order of the given value.
  \param [in]    value  Value to reverse
  \return               Reversed value
 */
__attribute__((always_inline)) static inline uint32_t __RBIT(uint32_t value)
{
  uint32_t result;




   __asm ("rbit %0, %1" : "=r" (result) : "r" (value) );
# 393 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
  return result;
}


/**
  \brief   Count leading zeros
  \details Counts the number of leading zeros of a data value.
  \param [in]  value  Value to count the leading zeros
  \return             number of leading zeros in value
 */
__attribute__((always_inline)) static inline uint8_t __CLZ(uint32_t value)
{
  /* Even though __builtin_clz produces a CLZ instruction on ARM, formally
     __builtin_clz(0) is undefined behaviour, so handle this case specially.
     This guarantees ARM-compatible results if happening to compile on a non-ARM
     target, and ensures the compiler doesn't decide to activate any
     optimisations using the logic "value was passed to __builtin_clz, so it
     is non-zero".
     ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a
     single CLZ instruction.
   */
  if (value == 0U)
  {
    return 32U;
  }
  return __builtin_clz(value);
}






/**
  \brief   LDR Exclusive (8 bit)
  \details Executes a exclusive LDR instruction for 8 bit value.
  \param [in]    ptr  Pointer to data
  \return             value of type uint8_t at (*ptr)
 */
__attribute__((always_inline)) static inline uint8_t __LDREXB(volatile uint8_t *addr)
{
    uint32_t result;


   __asm volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) );






   return ((uint8_t) result);
}


/**
  \brief   LDR Exclusive (16 bit)
  \details Executes a exclusive LDR instruction for 16 bit values.
  \param [in]    ptr  Pointer to data
  \return        value of type uint16_t at (*ptr)
 */
__attribute__((always_inline)) static inline uint16_t __LDREXH(volatile uint16_t *addr)
{
    uint32_t result;


   __asm volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) );






   return ((uint16_t) result);
}


/**
  \brief   LDR Exclusive (32 bit)
  \details Executes a exclusive LDR instruction for 32 bit values.
  \param [in]    ptr  Pointer to data
  \return        value of type uint32_t at (*ptr)
 */
__attribute__((always_inline)) static inline uint32_t __LDREXW(volatile uint32_t *addr)
{
    uint32_t result;

   __asm volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
   return(result);
}


/**
  \brief   STR Exclusive (8 bit)
  \details Executes a exclusive STR instruction for 8 bit values.
  \param [in]  value  Value to store
  \param [in]    ptr  Pointer to location
  \return          0  Function succeeded
  \return          1  Function failed
 */
__attribute__((always_inline)) static inline uint32_t __STREXB(uint8_t value, volatile uint8_t *addr)
{
   uint32_t result;

   __asm volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) );
   return(result);
}


/**
  \brief   STR Exclusive (16 bit)
  \details Executes a exclusive STR instruction for 16 bit values.
  \param [in]  value  Value to store
  \param [in]    ptr  Pointer to location
  \return          0  Function succeeded
  \return          1  Function failed
 */
__attribute__((always_inline)) static inline uint32_t __STREXH(uint16_t value, volatile uint16_t *addr)
{
   uint32_t result;

   __asm volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) );
   return(result);
}


/**
  \brief   STR Exclusive (32 bit)
  \details Executes a exclusive STR instruction for 32 bit values.
  \param [in]  value  Value to store
  \param [in]    ptr  Pointer to location
  \return          0  Function succeeded
  \return          1  Function failed
 */
__attribute__((always_inline)) static inline uint32_t __STREXW(uint32_t value, volatile uint32_t *addr)
{
   uint32_t result;

   __asm volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
   return(result);
}


/**
  \brief   Remove the exclusive lock
  \details Removes the exclusive lock which is created by LDREX.
 */
__attribute__((always_inline)) static inline void __CLREX(void)
{
  __asm volatile ("clrex" ::: "memory");
}
# 554 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Signed Saturate
  \details Saturates a signed value.
  \param [in]  ARG1  Value to be saturated
  \param [in]  ARG2  Bit position to saturate to (1..32)
  \return             Saturated value
 */
# 570 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Unsigned Saturate
  \details Saturates an unsigned value.
  \param [in]  ARG1  Value to be saturated
  \param [in]  ARG2  Bit position to saturate to (0..31)
  \return             Saturated value
 */
# 586 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Rotate Right with Extend (32 bit)
  \details Moves each bit of a bitstring right by one bit.
           The carry input is shifted in at the left end of the bitstring.
  \param [in]    value  Value to rotate
  \return               Rotated value
 */
__attribute__((always_inline)) static inline uint32_t __RRX(uint32_t value)
{
  uint32_t result;

  __asm volatile ("rrx %0, %1" : "=r" (result) : "r" (value) );
  return(result);
}


/**
  \brief   LDRT Unprivileged (8 bit)
  \details Executes a Unprivileged LDRT instruction for 8 bit value.
  \param [in]    ptr  Pointer to data
  \return             value of type uint8_t at (*ptr)
 */
__attribute__((always_inline)) static inline uint8_t __LDRBT(volatile uint8_t *ptr)
{
    uint32_t result;


   __asm volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) );






   return ((uint8_t) result);
}


/**
  \brief   LDRT Unprivileged (16 bit)
  \details Executes a Unprivileged LDRT instruction for 16 bit values.
  \param [in]    ptr  Pointer to data
  \return        value of type uint16_t at (*ptr)
 */
__attribute__((always_inline)) static inline uint16_t __LDRHT(volatile uint16_t *ptr)
{
    uint32_t result;


   __asm volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) );






   return ((uint16_t) result);
}


/**
  \brief   LDRT Unprivileged (32 bit)
  \details Executes a Unprivileged LDRT instruction for 32 bit values.
  \param [in]    ptr  Pointer to data
  \return        value of type uint32_t at (*ptr)
 */
__attribute__((always_inline)) static inline uint32_t __LDRT(volatile uint32_t *ptr)
{
    uint32_t result;

   __asm volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) );
   return(result);
}


/**
  \brief   STRT Unprivileged (8 bit)
  \details Executes a Unprivileged STRT instruction for 8 bit values.
  \param [in]  value  Value to store
  \param [in]    ptr  Pointer to location
 */
__attribute__((always_inline)) static inline void __STRBT(uint8_t value, volatile uint8_t *ptr)
{
   __asm volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) );
}


/**
  \brief   STRT Unprivileged (16 bit)
  \details Executes a Unprivileged STRT instruction for 16 bit values.
  \param [in]  value  Value to store
  \param [in]    ptr  Pointer to location
 */
__attribute__((always_inline)) static inline void __STRHT(uint16_t value, volatile uint16_t *ptr)
{
   __asm volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) );
}


/**
  \brief   STRT Unprivileged (32 bit)
  \details Executes a Unprivileged STRT instruction for 32 bit values.
  \param [in]  value  Value to store
  \param [in]    ptr  Pointer to location
 */
__attribute__((always_inline)) static inline void __STRT(uint32_t value, volatile uint32_t *ptr)
{
   __asm volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) );
}
# 935 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/*@}*/ /* end of group CMSIS_Core_InstructionInterface */


/* ###########################  Core Function Access  ########################### */
/** \ingroup  CMSIS_Core_FunctionInterface
    \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
  @{
 */

/**
  \brief   Enable IRQ Interrupts
  \details Enables IRQ interrupts by clearing special-purpose register PRIMASK.
           Can only be executed in Privileged modes.
 */
__attribute__((always_inline)) static inline void __enable_irq(void)
{
  __asm volatile ("cpsie i" : : : "memory");
}


/**
  \brief   Disable IRQ Interrupts
  \details Disables IRQ interrupts by setting special-purpose register PRIMASK.
           Can only be executed in Privileged modes.
 */
__attribute__((always_inline)) static inline void __disable_irq(void)
{
  __asm volatile ("cpsid i" : : : "memory");
}


/**
  \brief   Get Control Register
  \details Returns the content of the Control Register.
  \return               Control Register value
 */
__attribute__((always_inline)) static inline uint32_t __get_CONTROL(void)
{
  uint32_t result;

  __asm volatile ("MRS %0, control" : "=r" (result) );
  return(result);
}
# 996 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Set Control Register
  \details Writes the given value to the Control Register.
  \param [in]    control  Control Register value to set
 */
__attribute__((always_inline)) static inline void __set_CONTROL(uint32_t control)
{
  __asm volatile ("MSR control, %0" : : "r" (control) : "memory");
  __ISB();
}
# 1022 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Get IPSR Register
  \details Returns the content of the IPSR Register.
  \return               IPSR Register value
 */
__attribute__((always_inline)) static inline uint32_t __get_IPSR(void)
{
  uint32_t result;

  __asm volatile ("MRS %0, ipsr" : "=r" (result) );
  return(result);
}


/**
  \brief   Get APSR Register
  \details Returns the content of the APSR Register.
  \return               APSR Register value
 */
__attribute__((always_inline)) static inline uint32_t __get_APSR(void)
{
  uint32_t result;

  __asm volatile ("MRS %0, apsr" : "=r" (result) );
  return(result);
}


/**
  \brief   Get xPSR Register
  \details Returns the content of the xPSR Register.
  \return               xPSR Register value
 */
__attribute__((always_inline)) static inline uint32_t __get_xPSR(void)
{
  uint32_t result;

  __asm volatile ("MRS %0, xpsr" : "=r" (result) );
  return(result);
}


/**
  \brief   Get Process Stack Pointer
  \details Returns the current value of the Process Stack Pointer (PSP).
  \return               PSP Register value
 */
__attribute__((always_inline)) static inline uint32_t __get_PSP(void)
{
  uint32_t result;

  __asm volatile ("MRS %0, psp" : "=r" (result) );
  return(result);
}
# 1094 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Set Process Stack Pointer
  \details Assigns the given value to the Process Stack Pointer (PSP).
  \param [in]    topOfProcStack  Process Stack Pointer value to set
 */
__attribute__((always_inline)) static inline void __set_PSP(uint32_t topOfProcStack)
{
  __asm volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
}
# 1118 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Get Main Stack Pointer
  \details Returns the current value of the Main Stack Pointer (MSP).
  \return               MSP Register value
 */
__attribute__((always_inline)) static inline uint32_t __get_MSP(void)
{
  uint32_t result;

  __asm volatile ("MRS %0, msp" : "=r" (result) );
  return(result);
}
# 1148 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Set Main Stack Pointer
  \details Assigns the given value to the Main Stack Pointer (MSP).
  \param [in]    topOfMainStack  Main Stack Pointer value to set
 */
__attribute__((always_inline)) static inline void __set_MSP(uint32_t topOfMainStack)
{
  __asm volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
}
# 1199 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Get Priority Mask
  \details Returns the current state of the priority mask bit from the Priority Mask Register.
  \return               Priority Mask value
 */
__attribute__((always_inline)) static inline uint32_t __get_PRIMASK(void)
{
  uint32_t result;

  __asm volatile ("MRS %0, primask" : "=r" (result) );
  return(result);
}
# 1229 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Set Priority Mask
  \details Assigns the given value to the Priority Mask Register.
  \param [in]    priMask  Priority Mask
 */
__attribute__((always_inline)) static inline void __set_PRIMASK(uint32_t priMask)
{
  __asm volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
}
# 1256 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Enable FIQ
  \details Enables FIQ interrupts by clearing special-purpose register FAULTMASK.
           Can only be executed in Privileged modes.
 */
__attribute__((always_inline)) static inline void __enable_fault_irq(void)
{
  __asm volatile ("cpsie f" : : : "memory");
}


/**
  \brief   Disable FIQ
  \details Disables FIQ interrupts by setting special-purpose register FAULTMASK.
           Can only be executed in Privileged modes.
 */
__attribute__((always_inline)) static inline void __disable_fault_irq(void)
{
  __asm volatile ("cpsid f" : : : "memory");
}


/**
  \brief   Get Base Priority
  \details Returns the current value of the Base Priority register.
  \return               Base Priority register value
 */
__attribute__((always_inline)) static inline uint32_t __get_BASEPRI(void)
{
  uint32_t result;

  __asm volatile ("MRS %0, basepri" : "=r" (result) );
  return(result);
}
# 1308 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Set Base Priority
  \details Assigns the given value to the Base Priority register.
  \param [in]    basePri  Base Priority value to set
 */
__attribute__((always_inline)) static inline void __set_BASEPRI(uint32_t basePri)
{
  __asm volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
}
# 1332 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Set Base Priority with condition
  \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled,
           or the new value increases the BASEPRI priority level.
  \param [in]    basePri  Base Priority value to set
 */
__attribute__((always_inline)) static inline void __set_BASEPRI_MAX(uint32_t basePri)
{
  __asm volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
}


/**
  \brief   Get Fault Mask
  \details Returns the current value of the Fault Mask register.
  \return               Fault Mask register value
 */
__attribute__((always_inline)) static inline uint32_t __get_FAULTMASK(void)
{
  uint32_t result;

  __asm volatile ("MRS %0, faultmask" : "=r" (result) );
  return(result);
}
# 1374 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Set Fault Mask
  \details Assigns the given value to the Fault Mask register.
  \param [in]    faultMask  Fault Mask value to set
 */
__attribute__((always_inline)) static inline void __set_FAULTMASK(uint32_t faultMask)
{
  __asm volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
}
# 1583 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
/**
  \brief   Get FPSCR
  \details Returns the current value of the Floating Point Status/Control register.
  \return               Floating Point Status/Control register value
 */
__attribute__((always_inline)) static inline uint32_t __get_FPSCR(void)
{



// Re-enable using built-in when GCC has been fixed
// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  return __builtin_arm_get_fpscr();
# 1606 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
}


/**
  \brief   Set FPSCR
  \details Assigns the given value to the Floating Point Status/Control register.
  \param [in]    fpscr  Floating Point Status/Control value to set
 */
__attribute__((always_inline)) static inline void __set_FPSCR(uint32_t fpscr)
{



// Re-enable using built-in when GCC has been fixed
// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
  /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
  __builtin_arm_set_fpscr(fpscr);






}


/*@} end of CMSIS_Core_RegAccFunctions */


/* ###################  Compiler specific Intrinsics  ########################### */
/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics
  Access to dedicated SIMD instructions
  @{
*/



__attribute__((always_inline)) static inline uint32_t __SADD8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __QADD8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SHADD8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UADD8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UQADD8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UHADD8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}


__attribute__((always_inline)) static inline uint32_t __SSUB8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __QSUB8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SHSUB8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __USUB8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UQSUB8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UHSUB8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}


__attribute__((always_inline)) static inline uint32_t __SADD16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __QADD16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SHADD16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UADD16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UQADD16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UHADD16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SSUB16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __QSUB16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SHSUB16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __USUB16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UQSUB16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UHSUB16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SASX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __QASX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SHASX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UASX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UQASX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UHASX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SSAX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __QSAX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SHSAX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __USAX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UQSAX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UHSAX(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __USAD8(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3)
{
  uint32_t result;

  __asm ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
  return(result);
}
# 1965 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
__attribute__((always_inline)) static inline uint32_t __UXTB16(uint32_t op1)
{
  uint32_t result;

  __asm ("uxtb16 %0, %1" : "=r" (result) : "r" (op1));
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __UXTAB16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SXTB16(uint32_t op1)
{
  uint32_t result;

  __asm ("sxtb16 %0, %1" : "=r" (result) : "r" (op1));
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SXTB16_RORn(uint32_t op1, uint32_t rotate)
{
  uint32_t result;
  if (__builtin_constant_p(rotate) && ((rotate == 8U) || (rotate == 16U) || (rotate == 24U))) {
    __asm volatile ("sxtb16 %0, %1, ROR %2" : "=r" (result) : "r" (op1), "i" (rotate) );
  } else {
    result = __SXTB16(__ROR(op1, rotate)) ;
  }
  return result;
}

__attribute__((always_inline)) static inline uint32_t __SXTAB16(uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SXTAB16_RORn(uint32_t op1, uint32_t op2, uint32_t rotate)
{
  uint32_t result;
  if (__builtin_constant_p(rotate) && ((rotate == 8U) || (rotate == 16U) || (rotate == 24U))) {
    __asm volatile ("sxtab16 %0, %1, %2, ROR %3" : "=r" (result) : "r" (op1) , "r" (op2) , "i" (rotate));
  } else {
    result = __SXTAB16(op1, __ROR(op2, rotate));
  }
  return result;
}


__attribute__((always_inline)) static inline uint32_t __SMUAD (uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SMUADX (uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3)
{
  uint32_t result;

  __asm volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3)
{
  uint32_t result;

  __asm volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
  return(result);
}

__attribute__((always_inline)) static inline uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc)
{
  union llreg_u{
    uint32_t w32[2];
    uint64_t w64;
  } llr;
  llr.w64 = acc;


  __asm volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) );




  return(llr.w64);
}

__attribute__((always_inline)) static inline uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc)
{
  union llreg_u{
    uint32_t w32[2];
    uint64_t w64;
  } llr;
  llr.w64 = acc;


  __asm volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) );




  return(llr.w64);
}

__attribute__((always_inline)) static inline uint32_t __SMUSD (uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SMUSDX (uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3)
{
  uint32_t result;

  __asm volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
  return(result);
}

__attribute__((always_inline)) static inline uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3)
{
  uint32_t result;

  __asm volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) );
  return(result);
}

__attribute__((always_inline)) static inline uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc)
{
  union llreg_u{
    uint32_t w32[2];
    uint64_t w64;
  } llr;
  llr.w64 = acc;


  __asm volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) );




  return(llr.w64);
}

__attribute__((always_inline)) static inline uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc)
{
  union llreg_u{
    uint32_t w32[2];
    uint64_t w64;
  } llr;
  llr.w64 = acc;


  __asm volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) );




  return(llr.w64);
}

__attribute__((always_inline)) static inline uint32_t __SEL (uint32_t op1, uint32_t op2)
{
  uint32_t result;

  __asm volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline int32_t __QADD( int32_t op1, int32_t op2)
{
  int32_t result;

  __asm volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}

__attribute__((always_inline)) static inline int32_t __QSUB( int32_t op1, int32_t op2)
{
  int32_t result;

  __asm volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) );
  return(result);
}
# 2197 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_gcc.h"
__attribute__((always_inline)) static inline int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3)
{
 int32_t result;

 __asm ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) );
 return(result);
}


/*@} end of group CMSIS_SIMD_intrinsics */


#pragma GCC diagnostic pop
# 55 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cmsis_compiler.h" 2


/*
 * IAR Compiler
 */
# 163 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h" 2



}
# 177 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
 extern "C" {


/* check device defines and use defaults */
# 228 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* IO definitions (access restrictions to peripheral registers) */
/**
    \defgroup CMSIS_glob_defs CMSIS Global Defines

    <strong>IO Type Qualifiers</strong> are used
    \li to specify the access to peripheral variables.
    \li for automatic generation of peripheral register debug information.
*/
# 244 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* following defines should be used for structure members */




/*@} end of group Cortex_M7 */



/*******************************************************************************
 *                 Register Abstraction
  Core Register contain:
  - Core Register
  - Core NVIC Register
  - Core SCB Register
  - Core SysTick Register
  - Core Debug Register
  - Core MPU Register
  - Core FPU Register
 ******************************************************************************/
/**
  \defgroup CMSIS_core_register Defines and Type Definitions
  \brief Type definitions and defines for Cortex-M processor based devices.
*/

/**
  \ingroup    CMSIS_core_register
  \defgroup   CMSIS_CORE  Status and Control Registers
  \brief      Core Register type definitions.
  @{
 */

/**
  \brief  Union type to access the Application Program Status Register (APSR).
 */
typedef union
{
  struct
  {
    uint32_t _reserved0:16;
    uint32_t GE:4;
    uint32_t _reserved1:7;
    uint32_t Q:1;
    uint32_t V:1;
    uint32_t C:1;
    uint32_t Z:1;
    uint32_t N:1;
  } b;
  uint32_t w;
} APSR_Type;

/* APSR Register Definitions */
# 315 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/**
  \brief  Union type to access the Interrupt Program Status Register (IPSR).
 */
typedef union
{
  struct
  {
    uint32_t ISR:9;
    uint32_t _reserved0:23;
  } b;
  uint32_t w;
} IPSR_Type;

/* IPSR Register Definitions */




/**
  \brief  Union type to access the Special-Purpose Program Status Registers (xPSR).
 */
typedef union
{
  struct
  {
    uint32_t ISR:9;
    uint32_t _reserved0:1;
    uint32_t ICI_IT_1:6;
    uint32_t GE:4;
    uint32_t _reserved1:4;
    uint32_t T:1;
    uint32_t ICI_IT_2:2;
    uint32_t Q:1;
    uint32_t V:1;
    uint32_t C:1;
    uint32_t Z:1;
    uint32_t N:1;
  } b;
  uint32_t w;
} xPSR_Type;

/* xPSR Register Definitions */
# 388 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/**
  \brief  Union type to access the Control Registers (CONTROL).
 */
typedef union
{
  struct
  {
    uint32_t nPRIV:1;
    uint32_t SPSEL:1;
    uint32_t FPCA:1;
    uint32_t _reserved0:29;
  } b;
  uint32_t w;
} CONTROL_Type;

/* CONTROL Register Definitions */
# 413 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/*@} end of group CMSIS_CORE */


/**
  \ingroup    CMSIS_core_register
  \defgroup   CMSIS_NVIC  Nested Vectored Interrupt Controller (NVIC)
  \brief      Type definitions for the NVIC Registers
  @{
 */

/**
  \brief  Structure type to access the Nested Vectored Interrupt Controller (NVIC).
 */
typedef struct
{
  volatile uint32_t ISER[8U];
        uint32_t RESERVED0[24U];
  volatile uint32_t ICER[8U];
        uint32_t RESERVED1[24U];
  volatile uint32_t ISPR[8U];
        uint32_t RESERVED2[24U];
  volatile uint32_t ICPR[8U];
        uint32_t RESERVED3[24U];
  volatile uint32_t IABR[8U];
        uint32_t RESERVED4[56U];
  volatile uint8_t IP[240U];
        uint32_t RESERVED5[644U];
  volatile uint32_t STIR;
} NVIC_Type;

/* Software Triggered Interrupt Register Definitions */



/*@} end of group CMSIS_NVIC */


/**
  \ingroup  CMSIS_core_register
  \defgroup CMSIS_SCB     System Control Block (SCB)
  \brief    Type definitions for the System Control Block Registers
  @{
 */

/**
  \brief  Structure type to access the System Control Block (SCB).
 */
typedef struct
{
  volatile const uint32_t CPUID;
  volatile uint32_t ICSR;
  volatile uint32_t VTOR;
  volatile uint32_t AIRCR;
  volatile uint32_t SCR;
  volatile uint32_t CCR;
  volatile uint8_t SHPR[12U];
  volatile uint32_t SHCSR;
  volatile uint32_t CFSR;
  volatile uint32_t HFSR;
  volatile uint32_t DFSR;
  volatile uint32_t MMFAR;
  volatile uint32_t BFAR;
  volatile uint32_t AFSR;
  volatile const uint32_t ID_PFR[2U];
  volatile const uint32_t ID_DFR;
  volatile const uint32_t ID_AFR;
  volatile const uint32_t ID_MFR[4U];
  volatile const uint32_t ID_ISAR[5U];
        uint32_t RESERVED0[1U];
  volatile const uint32_t CLIDR;
  volatile const uint32_t CTR;
  volatile const uint32_t CCSIDR;
  volatile uint32_t CSSELR;
  volatile uint32_t CPACR;
        uint32_t RESERVED3[93U];
  volatile uint32_t STIR;
        uint32_t RESERVED4[15U];
  volatile const uint32_t MVFR0;
  volatile const uint32_t MVFR1;
  volatile const uint32_t MVFR2;
        uint32_t RESERVED5[1U];
  volatile uint32_t ICIALLU;
        uint32_t RESERVED6[1U];
  volatile uint32_t ICIMVAU;
  volatile uint32_t DCIMVAC;
  volatile uint32_t DCISW;
  volatile uint32_t DCCMVAU;
  volatile uint32_t DCCMVAC;
  volatile uint32_t DCCSW;
  volatile uint32_t DCCIMVAC;
  volatile uint32_t DCCISW;
  volatile uint32_t BPIALL;
        uint32_t RESERVED7[5U];
  volatile uint32_t ITCMCR;
  volatile uint32_t DTCMCR;
  volatile uint32_t AHBPCR;
  volatile uint32_t CACR;
  volatile uint32_t AHBSCR;
        uint32_t RESERVED8[1U];
  volatile uint32_t ABFSR;
} SCB_Type;

/* SCB CPUID Register Definitions */
# 531 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB Interrupt Control State Register Definitions */
# 562 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB Vector Table Offset Register Definitions */



/* SCB Application Interrupt and Reset Control Register Definitions */
# 588 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB System Control Register Definitions */
# 598 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB Configuration Control Register Definitions */
# 626 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB System Handler Control and State Register Definitions */
# 669 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB Configurable Fault Status Register Definitions */
# 679 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* MemManage Fault Status Register (part of SCB Configurable Fault Status Register) */
# 698 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* BusFault Status Register (part of SCB Configurable Fault Status Register) */
# 720 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* UsageFault Status Register (part of SCB Configurable Fault Status Register) */
# 739 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB Hard Fault Status Register Definitions */
# 749 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB Debug Fault Status Register Definitions */
# 765 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB Cache Level ID Register Definitions */






/* SCB Cache Type Register Definitions */
# 788 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB Cache Size ID Register Definitions */
# 810 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SCB Cache Size Selection Register Definitions */






/* SCB Software Triggered Interrupt Register Definitions */



/* SCB D-Cache Invalidate by Set-way Register Definitions */






/* SCB D-Cache Clean by Set-way Register Definitions */






/* SCB D-Cache Clean and Invalidate by Set-way Register Definitions */






/* Instruction Tightly-Coupled Memory Control Register Definitions */
# 855 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* Data Tightly-Coupled Memory Control Register Definitions */
# 868 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* AHBP Control Register Definitions */






/* L1 Cache Control Register Definitions */
# 888 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* AHBS Control Register Definitions */
# 898 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* Auxiliary Bus Fault Status Register Definitions */
# 917 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/*@} end of group CMSIS_SCB */


/**
  \ingroup  CMSIS_core_register
  \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB)
  \brief    Type definitions for the System Control and ID Register not in the SCB
  @{
 */

/**
  \brief  Structure type to access the System Control and ID Register not in the SCB.
 */
typedef struct
{
        uint32_t RESERVED0[1U];
  volatile const uint32_t ICTR;
  volatile uint32_t ACTLR;
} SCnSCB_Type;

/* Interrupt Controller Type Register Definitions */



/* Auxiliary Control Register Definitions */
# 975 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/*@} end of group CMSIS_SCnotSCB */


/**
  \ingroup  CMSIS_core_register
  \defgroup CMSIS_SysTick     System Tick Timer (SysTick)
  \brief    Type definitions for the System Timer Registers.
  @{
 */

/**
  \brief  Structure type to access the System Timer (SysTick).
 */
typedef struct
{
  volatile uint32_t CTRL;
  volatile uint32_t LOAD;
  volatile uint32_t VAL;
  volatile const uint32_t CALIB;
} SysTick_Type;

/* SysTick Control / Status Register Definitions */
# 1009 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* SysTick Reload Register Definitions */



/* SysTick Current Register Definitions */



/* SysTick Calibration Register Definitions */
# 1027 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/*@} end of group CMSIS_SysTick */


/**
  \ingroup  CMSIS_core_register
  \defgroup CMSIS_ITM     Instrumentation Trace Macrocell (ITM)
  \brief    Type definitions for the Instrumentation Trace Macrocell (ITM)
  @{
 */

/**
  \brief  Structure type to access the Instrumentation Trace Macrocell Register (ITM).
 */
typedef struct
{
  volatile union
  {
    volatile uint8_t u8;
    volatile uint16_t u16;
    volatile uint32_t u32;
  } PORT [32U];
        uint32_t RESERVED0[864U];
  volatile uint32_t TER;
        uint32_t RESERVED1[15U];
  volatile uint32_t TPR;
        uint32_t RESERVED2[15U];
  volatile uint32_t TCR;
        uint32_t RESERVED3[32U];
        uint32_t RESERVED4[43U];
  volatile uint32_t LAR;
  volatile const uint32_t LSR;
        uint32_t RESERVED5[6U];
  volatile const uint32_t PID4;
  volatile const uint32_t PID5;
  volatile const uint32_t PID6;
  volatile const uint32_t PID7;
  volatile const uint32_t PID0;
  volatile const uint32_t PID1;
  volatile const uint32_t PID2;
  volatile const uint32_t PID3;
  volatile const uint32_t CID0;
  volatile const uint32_t CID1;
  volatile const uint32_t CID2;
  volatile const uint32_t CID3;
} ITM_Type;

/* ITM Trace Privilege Register Definitions */



/* ITM Trace Control Register Definitions */
# 1105 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* ITM Lock Status Register Definitions */
# 1115 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/*@}*/ /* end of group CMSIS_ITM */


/**
  \ingroup  CMSIS_core_register
  \defgroup CMSIS_DWT     Data Watchpoint and Trace (DWT)
  \brief    Type definitions for the Data Watchpoint and Trace (DWT)
  @{
 */

/**
  \brief  Structure type to access the Data Watchpoint and Trace Register (DWT).
 */
typedef struct
{
  volatile uint32_t CTRL;
  volatile uint32_t CYCCNT;
  volatile uint32_t CPICNT;
  volatile uint32_t EXCCNT;
  volatile uint32_t SLEEPCNT;
  volatile uint32_t LSUCNT;
  volatile uint32_t FOLDCNT;
  volatile const uint32_t PCSR;
  volatile uint32_t COMP0;
  volatile uint32_t MASK0;
  volatile uint32_t FUNCTION0;
        uint32_t RESERVED0[1U];
  volatile uint32_t COMP1;
  volatile uint32_t MASK1;
  volatile uint32_t FUNCTION1;
        uint32_t RESERVED1[1U];
  volatile uint32_t COMP2;
  volatile uint32_t MASK2;
  volatile uint32_t FUNCTION2;
        uint32_t RESERVED2[1U];
  volatile uint32_t COMP3;
  volatile uint32_t MASK3;
  volatile uint32_t FUNCTION3;
        uint32_t RESERVED3[981U];
  volatile uint32_t LAR;
  volatile const uint32_t LSR;
} DWT_Type;

/* DWT Control Register Definitions */
# 1213 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* DWT CPI Count Register Definitions */



/* DWT Exception Overhead Count Register Definitions */



/* DWT Sleep Count Register Definitions */



/* DWT LSU Count Register Definitions */



/* DWT Folded-instruction Count Register Definitions */



/* DWT Comparator Mask Register Definitions */



/* DWT Comparator Function Register Definitions */
# 1265 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/*@}*/ /* end of group CMSIS_DWT */


/**
  \ingroup  CMSIS_core_register
  \defgroup CMSIS_TPI     Trace Port Interface (TPI)
  \brief    Type definitions for the Trace Port Interface (TPI)
  @{
 */

/**
  \brief  Structure type to access the Trace Port Interface Register (TPI).
 */
typedef struct
{
  volatile const uint32_t SSPSR;
  volatile uint32_t CSPSR;
        uint32_t RESERVED0[2U];
  volatile uint32_t ACPR;
        uint32_t RESERVED1[55U];
  volatile uint32_t SPPR;
        uint32_t RESERVED2[131U];
  volatile const uint32_t FFSR;
  volatile uint32_t FFCR;
  volatile const uint32_t FSCR;
        uint32_t RESERVED3[759U];
  volatile const uint32_t TRIGGER;
  volatile const uint32_t FIFO0;
  volatile const uint32_t ITATBCTR2;
        uint32_t RESERVED4[1U];
  volatile const uint32_t ITATBCTR0;
  volatile const uint32_t FIFO1;
  volatile uint32_t ITCTRL;
        uint32_t RESERVED5[39U];
  volatile uint32_t CLAIMSET;
  volatile uint32_t CLAIMCLR;
        uint32_t RESERVED7[8U];
  volatile const uint32_t DEVID;
  volatile const uint32_t DEVTYPE;
} TPI_Type;

/* TPI Asynchronous Clock Prescaler Register Definitions */



/* TPI Selected Pin Protocol Register Definitions */



/* TPI Formatter and Flush Status Register Definitions */
# 1327 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* TPI Formatter and Flush Control Register Definitions */






/* TPI TRIGGER Register Definitions */



/* TPI Integration ETM Data Register Definitions (FIFO0) */
# 1360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* TPI ITATBCTR2 Register Definitions */






/* TPI Integration ITM Data Register Definitions (FIFO1) */
# 1389 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* TPI ITATBCTR0 Register Definitions */






/* TPI Integration Mode Control Register Definitions */



/* TPI DEVID Register Definitions */
# 1419 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* TPI DEVTYPE Register Definitions */






/*@}*/ /* end of group CMSIS_TPI */



/**
  \ingroup  CMSIS_core_register
  \defgroup CMSIS_MPU     Memory Protection Unit (MPU)
  \brief    Type definitions for the Memory Protection Unit (MPU)
  @{
 */

/**
  \brief  Structure type to access the Memory Protection Unit (MPU).
 */
typedef struct
{
  volatile const uint32_t TYPE;
  volatile uint32_t CTRL;
  volatile uint32_t RNR;
  volatile uint32_t RBAR;
  volatile uint32_t RASR;
  volatile uint32_t RBAR_A1;
  volatile uint32_t RASR_A1;
  volatile uint32_t RBAR_A2;
  volatile uint32_t RASR_A2;
  volatile uint32_t RBAR_A3;
  volatile uint32_t RASR_A3;
} MPU_Type;



/* MPU Type Register Definitions */
# 1467 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* MPU Control Register Definitions */
# 1477 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* MPU Region Number Register Definitions */



/* MPU Region Base Address Register Definitions */
# 1491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* MPU Region Attribute and Size Register Definitions */
# 1522 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/*@} end of group CMSIS_MPU */



/**
  \ingroup  CMSIS_core_register
  \defgroup CMSIS_FPU     Floating Point Unit (FPU)
  \brief    Type definitions for the Floating Point Unit (FPU)
  @{
 */

/**
  \brief  Structure type to access the Floating Point Unit (FPU).
 */
typedef struct
{
        uint32_t RESERVED0[1U];
  volatile uint32_t FPCCR;
  volatile uint32_t FPCAR;
  volatile uint32_t FPDSCR;
  volatile const uint32_t MVFR0;
  volatile const uint32_t MVFR1;
  volatile const uint32_t MVFR2;
} FPU_Type;

/* Floating-Point Context Control Register Definitions */
# 1575 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* Floating-Point Context Address Register Definitions */



/* Floating-Point Default Status Control Register Definitions */
# 1592 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* Media and FP Feature Register 0 Definitions */
# 1617 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* Media and FP Feature Register 1 Definitions */
# 1630 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* Media and FP Feature Register 2 Definitions */




/*@} end of group CMSIS_FPU */


/**
  \ingroup  CMSIS_core_register
  \defgroup CMSIS_CoreDebug       Core Debug Registers (CoreDebug)
  \brief    Type definitions for the Core Debug Registers
  @{
 */

/**
  \brief  Structure type to access the Core Debug Register (CoreDebug).
 */
typedef struct
{
  volatile uint32_t DHCSR;
  volatile uint32_t DCRSR;
  volatile uint32_t DCRDR;
  volatile uint32_t DEMCR;
} CoreDebug_Type;

/* Debug Halting Control and Status Register Definitions */
# 1693 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* Debug Core Register Selector Register Definitions */






/* Debug Exception and Monitor Control Register Definitions */
# 1740 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/*@} end of group CMSIS_CoreDebug */


/**
  \ingroup    CMSIS_core_register
  \defgroup   CMSIS_core_bitfield     Core register bit field macros
  \brief      Macros for use with bit field definitions (xxx_Pos, xxx_Msk).
  @{
 */

/**
  \brief   Mask and shift a bit field value for use in a register bit range.
  \param[in] field  Name of the register bit field.
  \param[in] value  Value of the bit field. This parameter is interpreted as an uint32_t type.
  \return           Masked and shifted value.
*/


/**
  \brief     Mask and shift a register value to extract a bit filed value.
  \param[in] field  Name of the register bit field.
  \param[in] value  Value of register. This parameter is interpreted as an uint32_t type.
  \return           Masked and shifted bit field value.
*/


/*@} end of group CMSIS_core_bitfield */


/**
  \ingroup    CMSIS_core_register
  \defgroup   CMSIS_core_base     Core Definitions
  \brief      Definitions for base addresses, unions, and structures.
  @{
 */

/* Memory mapping of Core Hardware */
# 1803 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/*@} */



/*******************************************************************************
 *                Hardware Abstraction Layer
  Core Function Interface contains:
  - Core NVIC Functions
  - Core SysTick Functions
  - Core Debug Functions
  - Core Register Access Functions
 ******************************************************************************/
/**
  \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference
*/



/* ##########################   NVIC functions  #################################### */
/**
  \ingroup  CMSIS_Core_FunctionInterface
  \defgroup CMSIS_Core_NVICFunctions NVIC Functions
  \brief    Functions that manage interrupts and exceptions via the NVIC.
  @{
 */
# 1862 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/* The following EXC_RETURN values are saved the LR on exception entry */
# 1871 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h"
/**
  \brief   Set Priority Grouping
  \details Sets the priority grouping field using the required unlock sequence.
           The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field.
           Only values from 0..7 are used.
           In case of a conflict between priority grouping and available
           priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
  \param [in]      PriorityGroup  Priority grouping field.
 */
static inline void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
{
  uint32_t reg_value;
  uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);

  reg_value = ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->AIRCR;
  reg_value &= ~((uint32_t)((0xFFFFUL << 16U) | (7UL << 8U)));
  reg_value = (reg_value |
                ((uint32_t)0x5FAUL << 16U) |
                (PriorityGroupTmp << 8U) );
  ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->AIRCR = reg_value;
}


/**
  \brief   Get Priority Grouping
  \details Reads the priority grouping field from the NVIC Interrupt Controller.
  \return                Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
 */
static inline uint32_t __NVIC_GetPriorityGrouping(void)
{
  return ((uint32_t)((((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->AIRCR & (7UL << 8U)) >> 8U));
}


/**
  \brief   Enable Interrupt
  \details Enables a device specific interrupt in the NVIC interrupt controller.
  \param [in]      IRQn  Device specific interrupt number.
  \note    IRQn must not be negative.
 */
static inline void __NVIC_EnableIRQ(IRQn_Type IRQn)
{
  if ((int32_t)(IRQn) >= 0)
  {
    __asm volatile("":::"memory");
    ((NVIC_Type *) ((0xE000E000UL) + 0x0100UL) )->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
    __asm volatile("":::"memory");
  }
}


/**
  \brief   Get Interrupt Enable status
  \details Returns a device specific interrupt enable status from the NVIC interrupt controller.
  \param [in]      IRQn  Device specific interrupt number.
  \return             0  Interrupt is not enabled.
  \return             1  Interrupt is enabled.
  \note    IRQn must not be negative.
 */
static inline uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn)
{
  if ((int32_t)(IRQn) >= 0)
  {
    return((uint32_t)(((((NVIC_Type *) ((0xE000E000UL) + 0x0100UL) )->ISER[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
  }
  else
  {
    return(0U);
  }
}


/**
  \brief   Disable Interrupt
  \details Disables a device specific interrupt in the NVIC interrupt controller.
  \param [in]      IRQn  Device specific interrupt number.
  \note    IRQn must not be negative.
 */
static inline void __NVIC_DisableIRQ(IRQn_Type IRQn)
{
  if ((int32_t)(IRQn) >= 0)
  {
    ((NVIC_Type *) ((0xE000E000UL) + 0x0100UL) )->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
    __DSB();
    __ISB();
  }
}


/**
  \brief   Get Pending Interrupt
  \details Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt.
  \param [in]      IRQn  Device specific interrupt number.
  \return             0  Interrupt status is not pending.
  \return             1  Interrupt status is pending.
  \note    IRQn must not be negative.
 */
static inline uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn)
{
  if ((int32_t)(IRQn) >= 0)
  {
    return((uint32_t)(((((NVIC_Type *) ((0xE000E000UL) + 0x0100UL) )->ISPR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
  }
  else
  {
    return(0U);
  }
}


/**
  \brief   Set Pending Interrupt
  \details Sets the pending bit of a device specific interrupt in the NVIC pending register.
  \param [in]      IRQn  Device specific interrupt number.
  \note    IRQn must not be negative.
 */
static inline void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
{
  if ((int32_t)(IRQn) >= 0)
  {
    ((NVIC_Type *) ((0xE000E000UL) + 0x0100UL) )->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
  }
}


/**
  \brief   Clear Pending Interrupt
  \details Clears the pending bit of a device specific interrupt in the NVIC pending register.
  \param [in]      IRQn  Device specific interrupt number.
  \note    IRQn must not be negative.
 */
static inline void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
{
  if ((int32_t)(IRQn) >= 0)
  {
    ((NVIC_Type *) ((0xE000E000UL) + 0x0100UL) )->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
  }
}


/**
  \brief   Get Active Interrupt
  \details Reads the active register in the NVIC and returns the active bit for the device specific interrupt.
  \param [in]      IRQn  Device specific interrupt number.
  \return             0  Interrupt status is not active.
  \return             1  Interrupt status is active.
  \note    IRQn must not be negative.
 */
static inline uint32_t __NVIC_GetActive(IRQn_Type IRQn)
{
  if ((int32_t)(IRQn) >= 0)
  {
    return((uint32_t)(((((NVIC_Type *) ((0xE000E000UL) + 0x0100UL) )->IABR[(((uint32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
  }
  else
  {
    return(0U);
  }
}


/**
  \brief   Set Interrupt Priority
  \details Sets the priority of a device specific interrupt or a processor exception.
           The interrupt number can be positive to specify a device specific interrupt,
           or negative to specify a processor exception.
  \param [in]      IRQn  Interrupt number.
  \param [in]  priority  Priority to set.
  \note    The priority cannot be set for every processor exception.
 */
static inline void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
{
  if ((int32_t)(IRQn) >= 0)
  {
    ((NVIC_Type *) ((0xE000E000UL) + 0x0100UL) )->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - 4U)) & (uint32_t)0xFFUL);
  }
  else
  {
    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - 4U)) & (uint32_t)0xFFUL);
  }
}


/**
  \brief   Get Interrupt Priority
  \details Reads the priority of a device specific interrupt or a processor exception.
           The interrupt number can be positive to specify a device specific interrupt,
           or negative to specify a processor exception.
  \param [in]   IRQn  Interrupt number.
  \return             Interrupt Priority.
                      Value is aligned automatically to the implemented priority bits of the microcontroller.
 */
static inline uint32_t __NVIC_GetPriority(IRQn_Type IRQn)
{

  if ((int32_t)(IRQn) >= 0)
  {
    return(((uint32_t)((NVIC_Type *) ((0xE000E000UL) + 0x0100UL) )->IP[((uint32_t)IRQn)] >> (8U - 4U)));
  }
  else
  {
    return(((uint32_t)((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] >> (8U - 4U)));
  }
}


/**
  \brief   Encode Priority
  \details Encodes the priority for an interrupt with the given priority group,
           preemptive priority value, and subpriority value.
           In case of a conflict between priority grouping and available
           priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
  \param [in]     PriorityGroup  Used priority group.
  \param [in]   PreemptPriority  Preemptive priority value (starting from 0).
  \param [in]       SubPriority  Subpriority value (starting from 0).
  \return                        Encoded priority. Value can be used in the function \ref NVIC_SetPriority().
 */
static inline uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
{
  uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);
  uint32_t PreemptPriorityBits;
  uint32_t SubPriorityBits;

  PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(4U)) ? (uint32_t)(4U) : (uint32_t)(7UL - PriorityGroupTmp);
  SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(4U)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(4U));

  return (
           ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
           ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
         );
}


/**
  \brief   Decode Priority
  \details Decodes an interrupt priority value with a given priority group to
           preemptive priority value and subpriority value.
           In case of a conflict between priority grouping and available
           priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.
  \param [in]         Priority   Priority value, which can be retrieved with the function \ref NVIC_GetPriority().
  \param [in]     PriorityGroup  Used priority group.
  \param [out] pPreemptPriority  Preemptive priority value (starting from 0).
  \param [out]     pSubPriority  Subpriority value (starting from 0).
 */
static inline void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority)
{
  uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL);
  uint32_t PreemptPriorityBits;
  uint32_t SubPriorityBits;

  PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(4U)) ? (uint32_t)(4U) : (uint32_t)(7UL - PriorityGroupTmp);
  SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(4U)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(4U));

  *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL);
  *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL);
}


/**
  \brief   Set Interrupt Vector
  \details Sets an interrupt vector in SRAM based interrupt vector table.
           The interrupt number can be positive to specify a device specific interrupt,
           or negative to specify a processor exception.
           VTOR must been relocated to SRAM before.
  \param [in]   IRQn      Interrupt number
  \param [in]   vector    Address of interrupt handler function
 */
static inline void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
{
  uint32_t *vectors = (uint32_t *)((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->VTOR;
  vectors[(int32_t)IRQn + 16] = vector;
  __DSB();
}


/**
  \brief   Get Interrupt Vector
  \details Reads an interrupt vector from interrupt vector table.
           The interrupt number can be positive to specify a device specific interrupt,
           or negative to specify a processor exception.
  \param [in]   IRQn      Interrupt number.
  \return                 Address of interrupt handler function
 */
static inline uint32_t __NVIC_GetVector(IRQn_Type IRQn)
{
  uint32_t *vectors = (uint32_t *)((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->VTOR;
  return vectors[(int32_t)IRQn + 16];
}


/**
  \brief   System Reset
  \details Initiates a system reset request to reset the MCU.
 */
__attribute__((__noreturn__)) static inline void __NVIC_SystemReset(void)
{
  __DSB(); /* Ensure all outstanding memory accesses included
                                                                       buffered write are completed before reset */
  ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->AIRCR = (uint32_t)((0x5FAUL << 16U) |
                           (((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->AIRCR & (7UL << 8U)) |
                            (1UL << 2U) );
  __DSB();

  for(;;)
  {
    __asm volatile ("nop");
  }
}

/*@} end of CMSIS_Core_NVICFunctions */


/* ##########################  MPU functions  #################################### */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/mpu_armv7.h" 1
/******************************************************************************
 * @file     mpu_armv7.h
 * @brief    CMSIS MPU API for Armv7-M MPU
 * @version  V5.1.2
 * @date     25. May 2020
 ******************************************************************************/
/*
 * Copyright (c) 2017-2020 Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the License); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
# 70 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/mpu_armv7.h"
/** MPU Region Base Address Register Value
*
* \param Region The region to be configured, number 0 to 15.
* \param BaseAddress The base address for the region.
*/





/**
* MPU Memory Access Attributes
* 
* \param TypeExtField      Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral.
* \param IsShareable       Region is shareable between multiple bus masters.
* \param IsCacheable       Region is cacheable, i.e. its value may be kept in cache.
* \param IsBufferable      Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy.
*/






/**
* MPU Region Attribute and Size Register Value
* 
* \param DisableExec       Instruction access disable bit, 1= disable instruction fetches.
* \param AccessPermission  Data access permissions, allows you to configure read/write access for User and Privileged mode.
* \param AccessAttributes  Memory access attribution, see \ref ARM_MPU_ACCESS_.
* \param SubRegionDisable  Sub-region disable field.
* \param Size              Region size of the region to be configured, for example 4K, 8K.
*/
# 111 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/mpu_armv7.h"
/**
* MPU Region Attribute and Size Register Value
* 
* \param DisableExec       Instruction access disable bit, 1= disable instruction fetches.
* \param AccessPermission  Data access permissions, allows you to configure read/write access for User and Privileged mode.
* \param TypeExtField      Type extension field, allows you to configure memory access type, for example strongly ordered, peripheral.
* \param IsShareable       Region is shareable between multiple bus masters.
* \param IsCacheable       Region is cacheable, i.e. its value may be kept in cache.
* \param IsBufferable      Region is bufferable, i.e. using write-back caching. Cacheable but non-bufferable regions use write-through policy.
* \param SubRegionDisable  Sub-region disable field.
* \param Size              Region size of the region to be configured, for example 4K, 8K.
*/



/**
* MPU Memory Access Attribute for strongly ordered memory.
*  - TEX: 000b
*  - Shareable
*  - Non-cacheable
*  - Non-bufferable
*/


/**
* MPU Memory Access Attribute for device memory.
*  - TEX: 000b (if shareable) or 010b (if non-shareable)
*  - Shareable or non-shareable
*  - Non-cacheable
*  - Bufferable (if shareable) or non-bufferable (if non-shareable)
*
* \param IsShareable Configures the device memory as shareable or non-shareable.
*/


/**
* MPU Memory Access Attribute for normal memory.
*  - TEX: 1BBb (reflecting outer cacheability rules)
*  - Shareable or non-shareable
*  - Cacheable or non-cacheable (reflecting inner cacheability rules)
*  - Bufferable or non-bufferable (reflecting inner cacheability rules)
*
* \param OuterCp Configures the outer cache policy.
* \param InnerCp Configures the inner cache policy.
* \param IsShareable Configures the memory as shareable or non-shareable.
*/


/**
* MPU Memory Access Attribute non-cacheable policy.
*/


/**
* MPU Memory Access Attribute write-back, write and read allocate policy.
*/


/**
* MPU Memory Access Attribute write-through, no write allocate policy.
*/


/**
* MPU Memory Access Attribute write-back, no write allocate policy.
*/



/**
* Struct for a single MPU Region
*/
typedef struct {
  uint32_t RBAR; //!< The region base address register value (RBAR)
  uint32_t RASR; //!< The region attribute and size register value (RASR) \ref MPU_RASR
} ARM_MPU_Region_t;

/** Enable the MPU.
* \param MPU_Control Default access permissions for unconfigured regions.
*/
static inline void ARM_MPU_Enable(uint32_t MPU_Control)
{
  __DMB();
  ((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->CTRL = MPU_Control | (1UL);

  ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->SHCSR |= (1UL << 16U);

  __DSB();
  __ISB();
}

/** Disable the MPU.
*/
static inline void ARM_MPU_Disable(void)
{
  __DMB();

  ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->SHCSR &= ~(1UL << 16U);

  ((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->CTRL &= ~(1UL);
  __DSB();
  __ISB();
}

/** Clear and disable the given MPU region.
* \param rnr Region number to be cleared.
*/
static inline void ARM_MPU_ClrRegion(uint32_t rnr)
{
  ((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->RNR = rnr;
  ((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->RASR = 0U;
}

/** Configure an MPU region.
* \param rbar Value for RBAR register.
* \param rasr Value for RASR register.
*/
static inline void ARM_MPU_SetRegion(uint32_t rbar, uint32_t rasr)
{
  ((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->RBAR = rbar;
  ((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->RASR = rasr;
}

/** Configure the given MPU region.
* \param rnr Region number to be configured.
* \param rbar Value for RBAR register.
* \param rasr Value for RASR register.
*/
static inline void ARM_MPU_SetRegionEx(uint32_t rnr, uint32_t rbar, uint32_t rasr)
{
  ((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->RNR = rnr;
  ((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->RBAR = rbar;
  ((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->RASR = rasr;
}

/** Memcpy with strictly ordered memory access, e.g. used by code in ARM_MPU_Load().
* \param dst Destination data is copied to.
* \param src Source data is copied from.
* \param len Amount of data words to be copied.
*/
static inline void ARM_MPU_OrderedMemcpy(volatile uint32_t* dst, const uint32_t* __restrict src, uint32_t len)
{
  uint32_t i;
  for (i = 0U; i < len; ++i)
  {
    dst[i] = src[i];
  }
}

/** Load the given number of MPU regions from a table.
* \param table Pointer to the MPU configuration table.
* \param cnt Amount of regions to be configured.
*/
static inline void ARM_MPU_Load(ARM_MPU_Region_t const* table, uint32_t cnt)
{
  const uint32_t rowWordSize = sizeof(ARM_MPU_Region_t)/4U;
  while (cnt > 4U) {
    ARM_MPU_OrderedMemcpy(&(((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->RBAR), &(table->RBAR), 4U*rowWordSize);
    table += 4U;
    cnt -= 4U;
  }
  ARM_MPU_OrderedMemcpy(&(((MPU_Type *) ((0xE000E000UL) + 0x0D90UL) )->RBAR), &(table->RBAR), cnt*rowWordSize);
}
# 2188 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h" 2




/* ##########################  FPU functions  #################################### */
/**
  \ingroup  CMSIS_Core_FunctionInterface
  \defgroup CMSIS_Core_FpuFunctions FPU Functions
  \brief    Function that provides FPU type.
  @{
 */

/**
  \brief   get FPU type
  \details returns the FPU type
  \returns
   - \b  0: No FPU
   - \b  1: Single precision FPU
   - \b  2: Double + Single precision FPU
 */
static inline uint32_t SCB_GetFPUType(void)
{
  uint32_t mvfr0;

  mvfr0 = ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->MVFR0;
  if ((mvfr0 & ((0xFUL << 4U) | (0xFUL << 8U))) == 0x220U)
  {
    return 2U;
  }
  else if ((mvfr0 & ((0xFUL << 4U) | (0xFUL << 8U))) == 0x020U)
  {
    return 1U;
  }
  else
  {
    return 0U;
  }
}

/*@} end of CMSIS_Core_FpuFunctions */


/* ##########################  Cache functions  #################################### */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cachel1_armv7.h" 1
/******************************************************************************
 * @file     cachel1_armv7.h
 * @brief    CMSIS Level 1 Cache API for Armv7-M and later
 * @version  V1.0.1
 * @date     19. April 2021
 ******************************************************************************/
/*
 * Copyright (c) 2020-2021 Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the License); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
# 34 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cachel1_armv7.h"
/**
  \ingroup  CMSIS_Core_FunctionInterface
  \defgroup CMSIS_Core_CacheFunctions Cache Functions
  \brief    Functions that configure Instruction and Data cache.
  @{
 */

/* Cache Size ID Register Macros */
# 53 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/cachel1_armv7.h"
/**
  \brief   Enable I-Cache
  \details Turns on I-Cache
  */
__attribute__((always_inline)) static inline void SCB_EnableICache (void)
{

    if (((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCR & (1UL << 17U)) return;

    __DSB();
    __ISB();
    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->ICIALLU = 0UL;
    __DSB();
    __ISB();
    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCR |= (uint32_t)(1UL << 17U);
    __DSB();
    __ISB();

}


/**
  \brief   Disable I-Cache
  \details Turns off I-Cache
  */
__attribute__((always_inline)) static inline void SCB_DisableICache (void)
{

    __DSB();
    __ISB();
    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCR &= ~(uint32_t)(1UL << 17U);
    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->ICIALLU = 0UL;
    __DSB();
    __ISB();

}


/**
  \brief   Invalidate I-Cache
  \details Invalidates I-Cache
  */
__attribute__((always_inline)) static inline void SCB_InvalidateICache (void)
{

    __DSB();
    __ISB();
    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->ICIALLU = 0UL;
    __DSB();
    __ISB();

}


/**
  \brief   I-Cache Invalidate by address
  \details Invalidates I-Cache for the given address.
           I-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity.
           I-Cache memory blocks which are part of given address + given size are invalidated.
  \param[in]   addr    address
  \param[in]   isize   size of memory block (in number of bytes)
*/
__attribute__((always_inline)) static inline void SCB_InvalidateICache_by_Addr (volatile void *addr, int32_t isize)
{

    if ( isize > 0 ) {
       int32_t op_size = isize + (((uint32_t)addr) & (32U - 1U));
      uint32_t op_addr = (uint32_t)addr;

      __DSB();

      do {
        ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->ICIMVAU = op_addr;
        op_addr += 32U;
        op_size -= 32U;
      } while ( op_size > 0 );

      __DSB();
      __ISB();
    }

}


/**
  \brief   Enable D-Cache
  \details Turns on D-Cache
  */
__attribute__((always_inline)) static inline void SCB_EnableDCache (void)
{

    uint32_t ccsidr;
    uint32_t sets;
    uint32_t ways;

    if (((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCR & (1UL << 16U)) return;

    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CSSELR = 0U;
    __DSB();

    ccsidr = ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCSIDR;

                                            /* invalidate D-Cache */
    sets = (uint32_t)((((ccsidr) & (0x7FFFUL << 13U) ) >> 13U ));
    do {
      ways = (uint32_t)((((ccsidr) & (0x3FFUL << 3U)) >> 3U));
      do {
        ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->DCISW = (((sets << 5U) & (0x1FFUL << 5U)) |
                      ((ways << 30U) & (3UL << 30U)) );



      } while (ways-- != 0U);
    } while(sets-- != 0U);
    __DSB();

    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCR |= (uint32_t)(1UL << 16U);

    __DSB();
    __ISB();

}


/**
  \brief   Disable D-Cache
  \details Turns off D-Cache
  */
__attribute__((always_inline)) static inline void SCB_DisableDCache (void)
{

    uint32_t ccsidr;
    uint32_t sets;
    uint32_t ways;

    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CSSELR = 0U;
    __DSB();

    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCR &= ~(uint32_t)(1UL << 16U);
    __DSB();

    ccsidr = ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCSIDR;

                                            /* clean & invalidate D-Cache */
    sets = (uint32_t)((((ccsidr) & (0x7FFFUL << 13U) ) >> 13U ));
    do {
      ways = (uint32_t)((((ccsidr) & (0x3FFUL << 3U)) >> 3U));
      do {
        ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->DCCISW = (((sets << 5U) & (0x1FFUL << 5U)) |
                       ((ways << 30U) & (3UL << 30U)) );



      } while (ways-- != 0U);
    } while(sets-- != 0U);

    __DSB();
    __ISB();

}


/**
  \brief   Invalidate D-Cache
  \details Invalidates D-Cache
  */
__attribute__((always_inline)) static inline void SCB_InvalidateDCache (void)
{

    uint32_t ccsidr;
    uint32_t sets;
    uint32_t ways;

    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CSSELR = 0U;
    __DSB();

    ccsidr = ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCSIDR;

                                            /* invalidate D-Cache */
    sets = (uint32_t)((((ccsidr) & (0x7FFFUL << 13U) ) >> 13U ));
    do {
      ways = (uint32_t)((((ccsidr) & (0x3FFUL << 3U)) >> 3U));
      do {
        ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->DCISW = (((sets << 5U) & (0x1FFUL << 5U)) |
                      ((ways << 30U) & (3UL << 30U)) );



      } while (ways-- != 0U);
    } while(sets-- != 0U);

    __DSB();
    __ISB();

}


/**
  \brief   Clean D-Cache
  \details Cleans D-Cache
  */
__attribute__((always_inline)) static inline void SCB_CleanDCache (void)
{

    uint32_t ccsidr;
    uint32_t sets;
    uint32_t ways;

    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CSSELR = 0U;
    __DSB();

    ccsidr = ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCSIDR;

                                            /* clean D-Cache */
    sets = (uint32_t)((((ccsidr) & (0x7FFFUL << 13U) ) >> 13U ));
    do {
      ways = (uint32_t)((((ccsidr) & (0x3FFUL << 3U)) >> 3U));
      do {
        ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->DCCSW = (((sets << 5U) & (0x1FFUL << 5U)) |
                      ((ways << 30U) & (3UL << 30U)) );



      } while (ways-- != 0U);
    } while(sets-- != 0U);

    __DSB();
    __ISB();

}


/**
  \brief   Clean & Invalidate D-Cache
  \details Cleans and Invalidates D-Cache
  */
__attribute__((always_inline)) static inline void SCB_CleanInvalidateDCache (void)
{

    uint32_t ccsidr;
    uint32_t sets;
    uint32_t ways;

    ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CSSELR = 0U;
    __DSB();

    ccsidr = ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->CCSIDR;

                                            /* clean & invalidate D-Cache */
    sets = (uint32_t)((((ccsidr) & (0x7FFFUL << 13U) ) >> 13U ));
    do {
      ways = (uint32_t)((((ccsidr) & (0x3FFUL << 3U)) >> 3U));
      do {
        ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->DCCISW = (((sets << 5U) & (0x1FFUL << 5U)) |
                       ((ways << 30U) & (3UL << 30U)) );



      } while (ways-- != 0U);
    } while(sets-- != 0U);

    __DSB();
    __ISB();

}


/**
  \brief   D-Cache Invalidate by address
  \details Invalidates D-Cache for the given address.
           D-Cache is invalidated starting from a 32 byte aligned address in 32 byte granularity.
           D-Cache memory blocks which are part of given address + given size are invalidated.
  \param[in]   addr    address
  \param[in]   dsize   size of memory block (in number of bytes)
*/
__attribute__((always_inline)) static inline void SCB_InvalidateDCache_by_Addr (volatile void *addr, int32_t dsize)
{

    if ( dsize > 0 ) {
       int32_t op_size = dsize + (((uint32_t)addr) & (32U - 1U));
      uint32_t op_addr = (uint32_t)addr;

      __DSB();

      do {
        ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->DCIMVAC = op_addr;
        op_addr += 32U;
        op_size -= 32U;
      } while ( op_size > 0 );

      __DSB();
      __ISB();
    }

}


/**
  \brief   D-Cache Clean by address
  \details Cleans D-Cache for the given address
           D-Cache is cleaned starting from a 32 byte aligned address in 32 byte granularity.
           D-Cache memory blocks which are part of given address + given size are cleaned.
  \param[in]   addr    address
  \param[in]   dsize   size of memory block (in number of bytes)
*/
__attribute__((always_inline)) static inline void SCB_CleanDCache_by_Addr (volatile void *addr, int32_t dsize)
{

    if ( dsize > 0 ) {
       int32_t op_size = dsize + (((uint32_t)addr) & (32U - 1U));
      uint32_t op_addr = (uint32_t)addr;

      __DSB();

      do {
        ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->DCCMVAC = op_addr;
        op_addr += 32U;
        op_size -= 32U;
      } while ( op_size > 0 );

      __DSB();
      __ISB();
    }

}


/**
  \brief   D-Cache Clean and Invalidate by address
  \details Cleans and invalidates D_Cache for the given address
           D-Cache is cleaned and invalidated starting from a 32 byte aligned address in 32 byte granularity.
           D-Cache memory blocks which are part of given address + given size are cleaned and invalidated.
  \param[in]   addr    address (aligned to 32-byte boundary)
  \param[in]   dsize   size of memory block (in number of bytes)
*/
__attribute__((always_inline)) static inline void SCB_CleanInvalidateDCache_by_Addr (volatile void *addr, int32_t dsize)
{

    if ( dsize > 0 ) {
       int32_t op_size = dsize + (((uint32_t)addr) & (32U - 1U));
      uint32_t op_addr = (uint32_t)addr;

      __DSB();

      do {
        ((SCB_Type *) ((0xE000E000UL) + 0x0D00UL) )->DCCIMVAC = op_addr;
        op_addr += 32U;
        op_size -= 32U;
      } while ( op_size > 0 );

      __DSB();
      __ISB();
    }

}

/*@} end of CMSIS_Core_CacheFunctions */
# 2235 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/cmsis/CMSIS/Core/Include/core_cm7.h" 2



/* ##################################    SysTick function  ############################################ */
/**
  \ingroup  CMSIS_Core_FunctionInterface
  \defgroup CMSIS_Core_SysTickFunctions SysTick Functions
  \brief    Functions that configure the System.
  @{
 */



/**
  \brief   System Tick Configuration
  \details Initializes the System Timer and its interrupt, and starts the System Tick Timer.
           Counter is in free running mode to generate periodic interrupts.
  \param [in]  ticks  Number of ticks between two interrupts.
  \return          0  Function succeeded.
  \return          1  Function failed.
  \note    When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the
           function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
           must contain a vendor-specific implementation of this function.
 */
static inline uint32_t SysTick_Config(uint32_t ticks)
{
  if ((ticks - 1UL) > (0xFFFFFFUL))
  {
    return (1UL);
  }

  ((SysTick_Type *) ((0xE000E000UL) + 0x0010UL) )->LOAD = (uint32_t)(ticks - 1UL);
  __NVIC_SetPriority (SysTick_IRQn, (1UL << 4U) - 1UL);
  ((SysTick_Type *) ((0xE000E000UL) + 0x0010UL) )->VAL = 0UL;
  ((SysTick_Type *) ((0xE000E000UL) + 0x0010UL) )->CTRL = (1UL << 2U) |
                   (1UL << 1U) |
                   (1UL);
  return (0UL);
}



/*@} end of CMSIS_Core_SysTickFunctions */



/* ##################################### Debug In/Output function ########################################### */
/**
  \ingroup  CMSIS_Core_FunctionInterface
  \defgroup CMSIS_core_DebugFunctions ITM Functions
  \brief    Functions that access the ITM debug interface.
  @{
 */

extern volatile int32_t ITM_RxBuffer;



/**
  \brief   ITM Send Character
  \details Transmits a character via the ITM channel 0, and
           \li Just returns when no debugger is connected that has booked the output.
           \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted.
  \param [in]     ch  Character to transmit.
  \returns            Character to transmit.
 */
static inline uint32_t ITM_SendChar (uint32_t ch)
{
  if (((((ITM_Type *) (0xE0000000UL) )->TCR & (1UL)) != 0UL) &&
      ((((ITM_Type *) (0xE0000000UL) )->TER & 1UL ) != 0UL) )
  {
    while (((ITM_Type *) (0xE0000000UL) )->PORT[0U].u32 == 0UL)
    {
      __asm volatile ("nop");
    }
    ((ITM_Type *) (0xE0000000UL) )->PORT[0U].u8 = (uint8_t)ch;
  }
  return (ch);
}


/**
  \brief   ITM Receive Character
  \details Inputs a character via the external variable \ref ITM_RxBuffer.
  \return             Received character.
  \return         -1  No character pending.
 */
static inline int32_t ITM_ReceiveChar (void)
{
  int32_t ch = -1;

  if (ITM_RxBuffer != ((int32_t)0x5AA55AA5U))
  {
    ch = ITM_RxBuffer;
    ITM_RxBuffer = ((int32_t)0x5AA55AA5U);
  }

  return (ch);
}


/**
  \brief   ITM Check Character
  \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer.
  \return          0  No character available.
  \return          1  Character available.
 */
static inline int32_t ITM_CheckChar (void)
{

  if (ITM_RxBuffer == ((int32_t)0x5AA55AA5U))
  {
    return (0);
  }
  else
  {
    return (1);
  }
}

/*@} end of CMSIS_core_DebugFunctions */





}
# 242 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h" 2





/**
  * @}
  */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/system_stm32h7xx.h" 1
/**
  ******************************************************************************
  * @file    system_stm32h7xx.h
  * @author  MCD Application Team
  * @brief   CMSIS Cortex-Mx Device System Source File for STM32H7xx devices.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/** @addtogroup CMSIS
  * @{
  */

/** @addtogroup stm32h7xx_system
  * @{
  */

/**
  * @brief Define to prevent recursive inclusion
  */




 extern "C" {


/** @addtogroup STM32H7xx_System_Includes
  * @{
  */

/**
  * @}
  */


/** @addtogroup STM32H7xx_System_Exported_types
  * @{
  */
  /* This variable is updated in three ways:
      1) by calling CMSIS function SystemCoreClockUpdate()
      2) by calling HAL API function HAL_RCC_GetSysClockFreq()
      3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
         Note: If you use this function to configure the system clock; then there
               is no need to call the 2 first functions listed above, since SystemCoreClock
               variable is updated automatically.
  */
extern uint32_t SystemCoreClock;
extern uint32_t SystemD2Clock;
extern const uint8_t D1CorePrescTable[16] ;

/**
  * @}
  */

/** @addtogroup STM32H7xx_System_Exported_Constants
  * @{
  */

/**
  * @}
  */

/** @addtogroup STM32H7xx_System_Exported_Macros
  * @{
  */

/**
  * @}
  */

/** @addtogroup STM32H7xx_System_Exported_Functions
  * @{
  */

extern void SystemInit(void);
extern void SystemCoreClockUpdate(void);
extern void ExitRun0Mode(void);
/**
  * @}
  */


}




/**
  * @}
  */

/**
  * @}
  */
# 255 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 256 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h" 2


# 257 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/** @addtogroup Peripheral_registers_structures
  * @{
  */

/**
  * @brief Analog to Digital Converter
  */

typedef struct
{
  volatile uint32_t ISR;
  volatile uint32_t IER;
  volatile uint32_t CR;
  volatile uint32_t CFGR;
  volatile uint32_t CFGR2;
  volatile uint32_t SMPR1;
  volatile uint32_t SMPR2;
  volatile uint32_t PCSEL;
  volatile uint32_t LTR1;
  volatile uint32_t HTR1;
  uint32_t RESERVED1;
  uint32_t RESERVED2;
  volatile uint32_t SQR1;
  volatile uint32_t SQR2;
  volatile uint32_t SQR3;
  volatile uint32_t SQR4;
  volatile uint32_t DR;
  uint32_t RESERVED3;
  uint32_t RESERVED4;
  volatile uint32_t JSQR;
  uint32_t RESERVED5[4];
  volatile uint32_t OFR1;
  volatile uint32_t OFR2;
  volatile uint32_t OFR3;
  volatile uint32_t OFR4;
  uint32_t RESERVED6[4];
  volatile uint32_t JDR1;
  volatile uint32_t JDR2;
  volatile uint32_t JDR3;
  volatile uint32_t JDR4;
  uint32_t RESERVED7[4];
  volatile uint32_t AWD2CR;
  volatile uint32_t AWD3CR;
  uint32_t RESERVED8;
  uint32_t RESERVED9;
  volatile uint32_t LTR2;
  volatile uint32_t HTR2;
  volatile uint32_t LTR3;
  volatile uint32_t HTR3;
  volatile uint32_t DIFSEL;
  volatile uint32_t CALFACT;
  volatile uint32_t CALFACT2;
} ADC_TypeDef;


typedef struct
{
volatile uint32_t CSR;
uint32_t RESERVED;
volatile uint32_t CCR;
volatile uint32_t CDR;
volatile uint32_t CDR2;

} ADC_Common_TypeDef;

/**
  * @brief ART
  */

typedef struct
{
  volatile uint32_t CTR;
}ART_TypeDef;

/**
  * @brief VREFBUF
  */

typedef struct
{
  volatile uint32_t CSR;
  volatile uint32_t CCR;
} VREFBUF_TypeDef;


/**
  * @brief FD Controller Area Network
  */

typedef struct
{
  volatile uint32_t CREL;
  volatile uint32_t ENDN;
  volatile uint32_t RESERVED1;
  volatile uint32_t DBTP;
  volatile uint32_t TEST;
  volatile uint32_t RWD;
  volatile uint32_t CCCR;
  volatile uint32_t NBTP;
  volatile uint32_t TSCC;
  volatile uint32_t TSCV;
  volatile uint32_t TOCC;
  volatile uint32_t TOCV;
  volatile uint32_t RESERVED2[4];
  volatile uint32_t ECR;
  volatile uint32_t PSR;
  volatile uint32_t TDCR;
  volatile uint32_t RESERVED3;
  volatile uint32_t IR;
  volatile uint32_t IE;
  volatile uint32_t ILS;
  volatile uint32_t ILE;
  volatile uint32_t RESERVED4[8];
  volatile uint32_t GFC;
  volatile uint32_t SIDFC;
  volatile uint32_t XIDFC;
  volatile uint32_t RESERVED5;
  volatile uint32_t XIDAM;
  volatile uint32_t HPMS;
  volatile uint32_t NDAT1;
  volatile uint32_t NDAT2;
  volatile uint32_t RXF0C;
  volatile uint32_t RXF0S;
  volatile uint32_t RXF0A;
  volatile uint32_t RXBC;
  volatile uint32_t RXF1C;
  volatile uint32_t RXF1S;
  volatile uint32_t RXF1A;
  volatile uint32_t RXESC;
  volatile uint32_t TXBC;
  volatile uint32_t TXFQS;
  volatile uint32_t TXESC;
  volatile uint32_t TXBRP;
  volatile uint32_t TXBAR;
  volatile uint32_t TXBCR;
  volatile uint32_t TXBTO;
  volatile uint32_t TXBCF;
  volatile uint32_t TXBTIE;
  volatile uint32_t TXBCIE;
  volatile uint32_t RESERVED6[2];
  volatile uint32_t TXEFC;
  volatile uint32_t TXEFS;
  volatile uint32_t TXEFA;
  volatile uint32_t RESERVED7;
} FDCAN_GlobalTypeDef;

/**
  * @brief TTFD Controller Area Network
  */

typedef struct
{
  volatile uint32_t TTTMC;
  volatile uint32_t TTRMC;
  volatile uint32_t TTOCF;
  volatile uint32_t TTMLM;
  volatile uint32_t TURCF;
  volatile uint32_t TTOCN;
  volatile uint32_t TTGTP;
  volatile uint32_t TTTMK;
  volatile uint32_t TTIR;
  volatile uint32_t TTIE;
  volatile uint32_t TTILS;
  volatile uint32_t TTOST;
  volatile uint32_t TURNA;
  volatile uint32_t TTLGT;
  volatile uint32_t TTCTC;
  volatile uint32_t TTCPT;
  volatile uint32_t TTCSM;
  volatile uint32_t RESERVED1[111];
  volatile uint32_t TTTS;
} TTCAN_TypeDef;

/**
  * @brief FD Controller Area Network
  */

typedef struct
{
  volatile uint32_t CREL;
  volatile uint32_t CCFG;
  volatile uint32_t CSTAT;
  volatile uint32_t CWD;
  volatile uint32_t IR;
  volatile uint32_t IE;
} FDCAN_ClockCalibrationUnit_TypeDef;


/**
  * @brief Consumer Electronics Control
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t CFGR;
  volatile uint32_t TXDR;
  volatile uint32_t RXDR;
  volatile uint32_t ISR;
  volatile uint32_t IER;
}CEC_TypeDef;

/**
  * @brief CRC calculation unit
  */

typedef struct
{
  volatile uint32_t DR;
  volatile uint32_t IDR;
  volatile uint32_t CR;
  uint32_t RESERVED2;
  volatile uint32_t INIT;
  volatile uint32_t POL;
} CRC_TypeDef;


/**
  * @brief Clock Recovery System
  */
typedef struct
{
volatile uint32_t CR;
volatile uint32_t CFGR;
volatile uint32_t ISR;
volatile uint32_t ICR;
} CRS_TypeDef;


/**
  * @brief Digital to Analog Converter
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t SWTRIGR;
  volatile uint32_t DHR12R1;
  volatile uint32_t DHR12L1;
  volatile uint32_t DHR8R1;
  volatile uint32_t DHR12R2;
  volatile uint32_t DHR12L2;
  volatile uint32_t DHR8R2;
  volatile uint32_t DHR12RD;
  volatile uint32_t DHR12LD;
  volatile uint32_t DHR8RD;
  volatile uint32_t DOR1;
  volatile uint32_t DOR2;
  volatile uint32_t SR;
  volatile uint32_t CCR;
  volatile uint32_t MCR;
  volatile uint32_t SHSR1;
  volatile uint32_t SHSR2;
  volatile uint32_t SHHR;
  volatile uint32_t SHRR;
} DAC_TypeDef;

/**
  * @brief DFSDM module registers
  */
typedef struct
{
  volatile uint32_t FLTCR1;
  volatile uint32_t FLTCR2;
  volatile uint32_t FLTISR;
  volatile uint32_t FLTICR;
  volatile uint32_t FLTJCHGR;
  volatile uint32_t FLTFCR;
  volatile uint32_t FLTJDATAR;
  volatile uint32_t FLTRDATAR;
  volatile uint32_t FLTAWHTR;
  volatile uint32_t FLTAWLTR;
  volatile uint32_t FLTAWSR;
  volatile uint32_t FLTAWCFR;
  volatile uint32_t FLTEXMAX;
  volatile uint32_t FLTEXMIN;
  volatile uint32_t FLTCNVTIMR;
} DFSDM_Filter_TypeDef;

/**
  * @brief DFSDM channel configuration registers
  */
typedef struct
{
  volatile uint32_t CHCFGR1;
  volatile uint32_t CHCFGR2;
  volatile uint32_t CHAWSCDR; /*!< DFSDM channel analog watchdog and
                                   short circuit detector register,                  Address offset: 0x08 */
  volatile uint32_t CHWDATAR;
  volatile uint32_t CHDATINR;
} DFSDM_Channel_TypeDef;

/**
  * @brief Debug MCU
  */
typedef struct
{
  volatile uint32_t IDCODE;
  volatile uint32_t CR;
  volatile uint32_t RESERVED4[11];
  volatile uint32_t APB3FZ1;
  volatile uint32_t APB3FZ2;
  volatile uint32_t APB1LFZ1;
  volatile uint32_t APB1LFZ2;
  volatile uint32_t APB1HFZ1;
  volatile uint32_t APB1HFZ2;
  volatile uint32_t APB2FZ1;
  volatile uint32_t APB2FZ2;
  volatile uint32_t APB4FZ1;
  volatile uint32_t APB4FZ2;

}DBGMCU_TypeDef;
/**
  * @brief DCMI
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t SR;
  volatile uint32_t RISR;
  volatile uint32_t IER;
  volatile uint32_t MISR;
  volatile uint32_t ICR;
  volatile uint32_t ESCR;
  volatile uint32_t ESUR;
  volatile uint32_t CWSTRTR;
  volatile uint32_t CWSIZER;
  volatile uint32_t DR;
} DCMI_TypeDef;

/**
  * @brief DMA Controller
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t NDTR;
  volatile uint32_t PAR;
  volatile uint32_t M0AR;
  volatile uint32_t M1AR;
  volatile uint32_t FCR;
} DMA_Stream_TypeDef;

typedef struct
{
  volatile uint32_t LISR;
  volatile uint32_t HISR;
  volatile uint32_t LIFCR;
  volatile uint32_t HIFCR;
} DMA_TypeDef;

typedef struct
{
  volatile uint32_t CCR;
  volatile uint32_t CNDTR;
  volatile uint32_t CPAR;
  volatile uint32_t CM0AR;
  volatile uint32_t CM1AR;
} BDMA_Channel_TypeDef;

typedef struct
{
  volatile uint32_t ISR;
  volatile uint32_t IFCR;
} BDMA_TypeDef;

typedef struct
{
  volatile uint32_t CCR;
}DMAMUX_Channel_TypeDef;

typedef struct
{
  volatile uint32_t CSR;
  volatile uint32_t CFR;
}DMAMUX_ChannelStatus_TypeDef;

typedef struct
{
  volatile uint32_t RGCR;
}DMAMUX_RequestGen_TypeDef;

typedef struct
{
  volatile uint32_t RGSR;
  volatile uint32_t RGCFR;
}DMAMUX_RequestGenStatus_TypeDef;

/**
  * @brief MDMA Controller
  */
typedef struct
{
  volatile uint32_t GISR0;
}MDMA_TypeDef;

typedef struct
{
  volatile uint32_t CISR;
  volatile uint32_t CIFCR;
  volatile uint32_t CESR;
  volatile uint32_t CCR;
  volatile uint32_t CTCR;
  volatile uint32_t CBNDTR;
  volatile uint32_t CSAR;
  volatile uint32_t CDAR;
  volatile uint32_t CBRUR;
  volatile uint32_t CLAR;
  volatile uint32_t CTBR;
  uint32_t RESERVED0;
  volatile uint32_t CMAR;
  volatile uint32_t CMDR;
}MDMA_Channel_TypeDef;

/**
  * @brief DMA2D Controller
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t ISR;
  volatile uint32_t IFCR;
  volatile uint32_t FGMAR;
  volatile uint32_t FGOR;
  volatile uint32_t BGMAR;
  volatile uint32_t BGOR;
  volatile uint32_t FGPFCCR;
  volatile uint32_t FGCOLR;
  volatile uint32_t BGPFCCR;
  volatile uint32_t BGCOLR;
  volatile uint32_t FGCMAR;
  volatile uint32_t BGCMAR;
  volatile uint32_t OPFCCR;
  volatile uint32_t OCOLR;
  volatile uint32_t OMAR;
  volatile uint32_t OOR;
  volatile uint32_t NLR;
  volatile uint32_t LWR;
  volatile uint32_t AMTCR;
  uint32_t RESERVED[236];
  volatile uint32_t FGCLUT[256];
  volatile uint32_t BGCLUT[256];
} DMA2D_TypeDef;

/**
  * @brief DSI Controller
  */

typedef struct
{
  volatile uint32_t VR;
  volatile uint32_t CR;
  volatile uint32_t CCR;
  volatile uint32_t LVCIDR;
  volatile uint32_t LCOLCR;
  volatile uint32_t LPCR;
  volatile uint32_t LPMCR;
  uint32_t RESERVED0[4];
  volatile uint32_t PCR;
  volatile uint32_t GVCIDR;
  volatile uint32_t MCR;
  volatile uint32_t VMCR;
  volatile uint32_t VPCR;
  volatile uint32_t VCCR;
  volatile uint32_t VNPCR;
  volatile uint32_t VHSACR;
  volatile uint32_t VHBPCR;
  volatile uint32_t VLCR;
  volatile uint32_t VVSACR;
  volatile uint32_t VVBPCR;
  volatile uint32_t VVFPCR;
  volatile uint32_t VVACR;
  volatile uint32_t LCCR;
  volatile uint32_t CMCR;
  volatile uint32_t GHCR;
  volatile uint32_t GPDR;
  volatile uint32_t GPSR;
  volatile uint32_t TCCR[6];
  volatile uint32_t TDCR;
  volatile uint32_t CLCR;
  volatile uint32_t CLTCR;
  volatile uint32_t DLTCR;
  volatile uint32_t PCTLR;
  volatile uint32_t PCONFR;
  volatile uint32_t PUCR;
  volatile uint32_t PTTCR;
  volatile uint32_t PSR;
  uint32_t RESERVED1[2];
  volatile uint32_t ISR[2];
  volatile uint32_t IER[2];
  uint32_t RESERVED2[3];
  volatile uint32_t FIR[2];
  uint32_t RESERVED3[8];
  volatile uint32_t VSCR;
  uint32_t RESERVED4[2];
  volatile uint32_t LCVCIDR;
  volatile uint32_t LCCCR;
  uint32_t RESERVED5;
  volatile uint32_t LPMCCR;
  uint32_t RESERVED6[7];
  volatile uint32_t VMCCR;
  volatile uint32_t VPCCR;
  volatile uint32_t VCCCR;
  volatile uint32_t VNPCCR;
  volatile uint32_t VHSACCR;
  volatile uint32_t VHBPCCR;
  volatile uint32_t VLCCR;
  volatile uint32_t VVSACCR;
  volatile uint32_t VVBPCCR;
  volatile uint32_t VVFPCCR;
  volatile uint32_t VVACCR;
  uint32_t RESERVED7[11];
  volatile uint32_t TDCCR;
  uint32_t RESERVED8[155];
  volatile uint32_t WCFGR;
  volatile uint32_t WCR;
  volatile uint32_t WIER;
  volatile uint32_t WISR;
  volatile uint32_t WIFCR;
  uint32_t RESERVED9;
  volatile uint32_t WPCR[5];
  uint32_t RESERVED10;
  volatile uint32_t WRPCR;
} DSI_TypeDef;

/**
  * @brief Ethernet MAC
  */
typedef struct
{
  volatile uint32_t MACCR;
  volatile uint32_t MACECR;
  volatile uint32_t MACPFR;
  volatile uint32_t MACWTR;
  volatile uint32_t MACHT0R;
  volatile uint32_t MACHT1R;
  uint32_t RESERVED1[14];
  volatile uint32_t MACVTR;
  uint32_t RESERVED2;
  volatile uint32_t MACVHTR;
  uint32_t RESERVED3;
  volatile uint32_t MACVIR;
  volatile uint32_t MACIVIR;
  uint32_t RESERVED4[2];
  volatile uint32_t MACTFCR;
  uint32_t RESERVED5[7];
  volatile uint32_t MACRFCR;
  uint32_t RESERVED6[7];
  volatile uint32_t MACISR;
  volatile uint32_t MACIER;
  volatile uint32_t MACRXTXSR;
  uint32_t RESERVED7;
  volatile uint32_t MACPCSR;
  volatile uint32_t MACRWKPFR;
  uint32_t RESERVED8[2];
  volatile uint32_t MACLCSR;
  volatile uint32_t MACLTCR;
  volatile uint32_t MACLETR;
  volatile uint32_t MAC1USTCR;
  uint32_t RESERVED9[12];
  volatile uint32_t MACVR;
  volatile uint32_t MACDR;
  uint32_t RESERVED10;
  volatile uint32_t MACHWF0R;
  volatile uint32_t MACHWF1R;
  volatile uint32_t MACHWF2R;
  uint32_t RESERVED11[54];
  volatile uint32_t MACMDIOAR;
  volatile uint32_t MACMDIODR;
  uint32_t RESERVED12[2];
  volatile uint32_t MACARPAR;
  uint32_t RESERVED13[59];
  volatile uint32_t MACA0HR;
  volatile uint32_t MACA0LR;
  volatile uint32_t MACA1HR;
  volatile uint32_t MACA1LR;
  volatile uint32_t MACA2HR;
  volatile uint32_t MACA2LR;
  volatile uint32_t MACA3HR;
  volatile uint32_t MACA3LR;
  uint32_t RESERVED14[248];
  volatile uint32_t MMCCR;
  volatile uint32_t MMCRIR;
  volatile uint32_t MMCTIR;
  volatile uint32_t MMCRIMR;
  volatile uint32_t MMCTIMR;
  uint32_t RESERVED15[14];
  volatile uint32_t MMCTSCGPR;
  volatile uint32_t MMCTMCGPR;
  uint32_t RESERVED16[5];
  volatile uint32_t MMCTPCGR;
  uint32_t RESERVED17[10];
  volatile uint32_t MMCRCRCEPR;
  volatile uint32_t MMCRAEPR;
  uint32_t RESERVED18[10];
  volatile uint32_t MMCRUPGR;
  uint32_t RESERVED19[9];
  volatile uint32_t MMCTLPIMSTR;
  volatile uint32_t MMCTLPITCR;
  volatile uint32_t MMCRLPIMSTR;
  volatile uint32_t MMCRLPITCR;
  uint32_t RESERVED20[65];
  volatile uint32_t MACL3L4C0R;
  volatile uint32_t MACL4A0R;
  uint32_t RESERVED21[2];
  volatile uint32_t MACL3A0R0R;
  volatile uint32_t MACL3A1R0R;
  volatile uint32_t MACL3A2R0R;
  volatile uint32_t MACL3A3R0R;
  uint32_t RESERVED22[4];
  volatile uint32_t MACL3L4C1R;
  volatile uint32_t MACL4A1R;
  uint32_t RESERVED23[2];
  volatile uint32_t MACL3A0R1R;
  volatile uint32_t MACL3A1R1R;
  volatile uint32_t MACL3A2R1R;
  volatile uint32_t MACL3A3R1R;
  uint32_t RESERVED24[108];
  volatile uint32_t MACTSCR;
  volatile uint32_t MACSSIR;
  volatile uint32_t MACSTSR;
  volatile uint32_t MACSTNR;
  volatile uint32_t MACSTSUR;
  volatile uint32_t MACSTNUR;
  volatile uint32_t MACTSAR;
  uint32_t RESERVED25;
  volatile uint32_t MACTSSR;
  uint32_t RESERVED26[3];
  volatile uint32_t MACTTSSNR;
  volatile uint32_t MACTTSSSR;
  uint32_t RESERVED27[2];
  volatile uint32_t MACACR;
  uint32_t RESERVED28;
  volatile uint32_t MACATSNR;
  volatile uint32_t MACATSSR;
  volatile uint32_t MACTSIACR;
  volatile uint32_t MACTSEACR;
  volatile uint32_t MACTSICNR;
  volatile uint32_t MACTSECNR;
  uint32_t RESERVED29[4];
  volatile uint32_t MACPPSCR;
  uint32_t RESERVED30[3];
  volatile uint32_t MACPPSTTSR;
  volatile uint32_t MACPPSTTNR;
  volatile uint32_t MACPPSIR;
  volatile uint32_t MACPPSWR;
  uint32_t RESERVED31[12];
  volatile uint32_t MACPOCR;
  volatile uint32_t MACSPI0R;
  volatile uint32_t MACSPI1R;
  volatile uint32_t MACSPI2R;
  volatile uint32_t MACLMIR;
  uint32_t RESERVED32[11];
  volatile uint32_t MTLOMR;
  uint32_t RESERVED33[7];
  volatile uint32_t MTLISR;
  uint32_t RESERVED34[55];
  volatile uint32_t MTLTQOMR;
  volatile uint32_t MTLTQUR;
  volatile uint32_t MTLTQDR;
  uint32_t RESERVED35[8];
  volatile uint32_t MTLQICSR;
  volatile uint32_t MTLRQOMR;
  volatile uint32_t MTLRQMPOCR;
  volatile uint32_t MTLRQDR;
  uint32_t RESERVED36[177];
  volatile uint32_t DMAMR;
  volatile uint32_t DMASBMR;
  volatile uint32_t DMAISR;
  volatile uint32_t DMADSR;
  uint32_t RESERVED37[60];
  volatile uint32_t DMACCR;
  volatile uint32_t DMACTCR;
  volatile uint32_t DMACRCR;
  uint32_t RESERVED38[2];
  volatile uint32_t DMACTDLAR;
  uint32_t RESERVED39;
  volatile uint32_t DMACRDLAR;
  volatile uint32_t DMACTDTPR;
  uint32_t RESERVED40;
  volatile uint32_t DMACRDTPR;
  volatile uint32_t DMACTDRLR;
  volatile uint32_t DMACRDRLR;
  volatile uint32_t DMACIER;
  volatile uint32_t DMACRIWTR;
volatile uint32_t DMACSFCSR;
  uint32_t RESERVED41;
  volatile uint32_t DMACCATDR;
  uint32_t RESERVED42;
  volatile uint32_t DMACCARDR;
  uint32_t RESERVED43;
  volatile uint32_t DMACCATBR;
  uint32_t RESERVED44;
  volatile uint32_t DMACCARBR;
  volatile uint32_t DMACSR;
uint32_t RESERVED45[2];
volatile uint32_t DMACMFCR;
}ETH_TypeDef;
/**
  * @brief External Interrupt/Event Controller
  */

typedef struct
{
volatile uint32_t RTSR1;
volatile uint32_t FTSR1;
volatile uint32_t SWIER1;
volatile uint32_t D3PMR1;
volatile uint32_t D3PCR1L;
volatile uint32_t D3PCR1H;
uint32_t RESERVED1[2];
volatile uint32_t RTSR2;
volatile uint32_t FTSR2;
volatile uint32_t SWIER2;
volatile uint32_t D3PMR2;
volatile uint32_t D3PCR2L;
volatile uint32_t D3PCR2H;
uint32_t RESERVED2[2];
volatile uint32_t RTSR3;
volatile uint32_t FTSR3;
volatile uint32_t SWIER3;
volatile uint32_t D3PMR3;
volatile uint32_t D3PCR3L;
volatile uint32_t D3PCR3H;
uint32_t RESERVED3[10];
volatile uint32_t IMR1;
volatile uint32_t EMR1;
volatile uint32_t PR1;
uint32_t RESERVED4;
volatile uint32_t IMR2;
volatile uint32_t EMR2;
volatile uint32_t PR2;
uint32_t RESERVED5;
volatile uint32_t IMR3;
volatile uint32_t EMR3;
volatile uint32_t PR3;
uint32_t RESERVED6[5];
volatile uint32_t C2IMR1;
volatile uint32_t C2EMR1;
volatile uint32_t C2PR1;
uint32_t RESERVED7;
volatile uint32_t C2IMR2;
volatile uint32_t C2EMR2;
volatile uint32_t C2PR2;
uint32_t RESERVED8;
volatile uint32_t C2IMR3;
volatile uint32_t C2EMR3;
volatile uint32_t C2PR3;

}EXTI_TypeDef;

/**
  * @brief This structure registers corresponds to EXTI_Typdef CPU1/CPU2 registers subset (IMRx, EMRx and PRx), allowing to define EXTI_D1/EXTI_D2
  *        with rapid/common access to these IMRx, EMRx, PRx registers for CPU1 and CPU2.
  *        Note that EXTI_D1 and EXTI_D2 bases addresses are calculated to point to CPUx first register:
  *           IMR1   in case of EXTI_D1 that is addressing CPU1 (Cortex-M7)
  *           C2IMR1 in case of EXTI_D2 that is addressing CPU2 (Cortex-M4)
  *        Note: EXTI_D2 and corresponding C2IMRx, C2EMRx and C2PRx registers are available for Dual Core devices only
  */

typedef struct
{
volatile uint32_t IMR1;
volatile uint32_t EMR1;
volatile uint32_t PR1;
uint32_t RESERVED1;
volatile uint32_t IMR2;
volatile uint32_t EMR2;
volatile uint32_t PR2;
uint32_t RESERVED2;
volatile uint32_t IMR3;
volatile uint32_t EMR3;
volatile uint32_t PR3;
}EXTI_Core_TypeDef;


/**
  * @brief FLASH Registers
  */

typedef struct
{
  volatile uint32_t ACR;
  volatile uint32_t KEYR1;
  volatile uint32_t OPTKEYR;
  volatile uint32_t CR1;
  volatile uint32_t SR1;
  volatile uint32_t CCR1;
  volatile uint32_t OPTCR;
  volatile uint32_t OPTSR_CUR;
  volatile uint32_t OPTSR_PRG;
  volatile uint32_t OPTCCR;
  volatile uint32_t PRAR_CUR1;
  volatile uint32_t PRAR_PRG1;
  volatile uint32_t SCAR_CUR1;
  volatile uint32_t SCAR_PRG1;
  volatile uint32_t WPSN_CUR1;
  volatile uint32_t WPSN_PRG1;
  volatile uint32_t BOOT7_CUR;
  volatile uint32_t BOOT7_PRG;
  volatile uint32_t BOOT4_CUR;
  volatile uint32_t BOOT4_PRG;
  volatile uint32_t CRCCR1;
  volatile uint32_t CRCSADD1;
  volatile uint32_t CRCEADD1;
  volatile uint32_t CRCDATA;
  volatile uint32_t ECC_FA1;
  uint32_t RESERVED1[40];
  volatile uint32_t KEYR2;
  uint32_t RESERVED2;
  volatile uint32_t CR2;
  volatile uint32_t SR2;
  volatile uint32_t CCR2;
  uint32_t RESERVED3[4];
  volatile uint32_t PRAR_CUR2;
  volatile uint32_t PRAR_PRG2;
  volatile uint32_t SCAR_CUR2;
  volatile uint32_t SCAR_PRG2;
  volatile uint32_t WPSN_CUR2;
  volatile uint32_t WPSN_PRG2;
  uint32_t RESERVED4[4];
  volatile uint32_t CRCCR2;
  volatile uint32_t CRCSADD2;
  volatile uint32_t CRCEADD2;
  volatile uint32_t CRCDATA2;
  volatile uint32_t ECC_FA2;
} FLASH_TypeDef;

/**
  * @brief Flexible Memory Controller
  */

typedef struct
{
  volatile uint32_t BTCR[8];
} FMC_Bank1_TypeDef;

/**
  * @brief Flexible Memory Controller Bank1E
  */

typedef struct
{
  volatile uint32_t BWTR[7];
} FMC_Bank1E_TypeDef;

/**
  * @brief Flexible Memory Controller Bank2
  */

typedef struct
{
  volatile uint32_t PCR2;
  volatile uint32_t SR2;
  volatile uint32_t PMEM2;
  volatile uint32_t PATT2;
  uint32_t RESERVED0;
  volatile uint32_t ECCR2;
} FMC_Bank2_TypeDef;

/**
  * @brief Flexible Memory Controller Bank3
  */

typedef struct
{
  volatile uint32_t PCR;
  volatile uint32_t SR;
  volatile uint32_t PMEM;
  volatile uint32_t PATT;
  uint32_t RESERVED;
  volatile uint32_t ECCR;
} FMC_Bank3_TypeDef;

/**
  * @brief Flexible Memory Controller Bank5 and 6
  */


typedef struct
{
  volatile uint32_t SDCR[2];
  volatile uint32_t SDTR[2];
  volatile uint32_t SDCMR;
  volatile uint32_t SDRTR;
  volatile uint32_t SDSR;
} FMC_Bank5_6_TypeDef;

/**
  * @brief General Purpose I/O
  */

typedef struct
{
  volatile uint32_t MODER;
  volatile uint32_t OTYPER;
  volatile uint32_t OSPEEDR;
  volatile uint32_t PUPDR;
  volatile uint32_t IDR;
  volatile uint32_t ODR;
  volatile uint32_t BSRR;
  volatile uint32_t LCKR;
  volatile uint32_t AFR[2];
} GPIO_TypeDef;

/**
  * @brief Operational Amplifier (OPAMP)
  */

typedef struct
{
  volatile uint32_t CSR;
  volatile uint32_t OTR;
  volatile uint32_t HSOTR;
} OPAMP_TypeDef;

/**
  * @brief System configuration controller
  */

typedef struct
{
 uint32_t RESERVED1;
 volatile uint32_t PMCR;
 volatile uint32_t EXTICR[4];
 volatile uint32_t CFGR;
 uint32_t RESERVED2;
 volatile uint32_t CCCSR;
 volatile uint32_t CCVR;
 volatile uint32_t CCCR;
 volatile uint32_t PWRCR;
  uint32_t RESERVED3[61];
  volatile uint32_t PKGR;
  uint32_t RESERVED4[118];
 volatile uint32_t UR0;
 volatile uint32_t UR1;
 volatile uint32_t UR2;
 volatile uint32_t UR3;
 volatile uint32_t UR4;
 volatile uint32_t UR5;
 volatile uint32_t UR6;
 volatile uint32_t UR7;
 volatile uint32_t UR8;
 volatile uint32_t UR9;
 volatile uint32_t UR10;
 volatile uint32_t UR11;
 volatile uint32_t UR12;
 volatile uint32_t UR13;
 volatile uint32_t UR14;
 volatile uint32_t UR15;
 volatile uint32_t UR16;
 volatile uint32_t UR17;

} SYSCFG_TypeDef;

/**
  * @brief Inter-integrated Circuit Interface
  */

typedef struct
{
  volatile uint32_t CR1;
  volatile uint32_t CR2;
  volatile uint32_t OAR1;
  volatile uint32_t OAR2;
  volatile uint32_t TIMINGR;
  volatile uint32_t TIMEOUTR;
  volatile uint32_t ISR;
  volatile uint32_t ICR;
  volatile uint32_t PECR;
  volatile uint32_t RXDR;
  volatile uint32_t TXDR;
} I2C_TypeDef;

/**
  * @brief Independent WATCHDOG
  */

typedef struct
{
  volatile uint32_t KR;
  volatile uint32_t PR;
  volatile uint32_t RLR;
  volatile uint32_t SR;
  volatile uint32_t WINR;
} IWDG_TypeDef;


/**
  * @brief JPEG Codec
  */
typedef struct
{
  volatile uint32_t CONFR0;
  volatile uint32_t CONFR1;
  volatile uint32_t CONFR2;
  volatile uint32_t CONFR3;
  volatile uint32_t CONFR4;
  volatile uint32_t CONFR5;
  volatile uint32_t CONFR6;
  volatile uint32_t CONFR7;
  uint32_t Reserved20[4];
  volatile uint32_t CR;
  volatile uint32_t SR;
  volatile uint32_t CFR;
  uint32_t Reserved3c;
  volatile uint32_t DIR;
  volatile uint32_t DOR;
  uint32_t Reserved48[2];
  volatile uint32_t QMEM0[16];
  volatile uint32_t QMEM1[16];
  volatile uint32_t QMEM2[16];
  volatile uint32_t QMEM3[16];
  volatile uint32_t HUFFMIN[16];
  volatile uint32_t HUFFBASE[32];
  volatile uint32_t HUFFSYMB[84];
  volatile uint32_t DHTMEM[103];
  uint32_t Reserved4FC;
  volatile uint32_t HUFFENC_AC0[88];
  volatile uint32_t HUFFENC_AC1[88];
  volatile uint32_t HUFFENC_DC0[8];
  volatile uint32_t HUFFENC_DC1[8];

} JPEG_TypeDef;

/**
  * @brief LCD-TFT Display Controller
  */

typedef struct
{
  uint32_t RESERVED0[2];
  volatile uint32_t SSCR;
  volatile uint32_t BPCR;
  volatile uint32_t AWCR;
  volatile uint32_t TWCR;
  volatile uint32_t GCR;
  uint32_t RESERVED1[2];
  volatile uint32_t SRCR;
  uint32_t RESERVED2[1];
  volatile uint32_t BCCR;
  uint32_t RESERVED3[1];
  volatile uint32_t IER;
  volatile uint32_t ISR;
  volatile uint32_t ICR;
  volatile uint32_t LIPCR;
  volatile uint32_t CPSR;
  volatile uint32_t CDSR;
} LTDC_TypeDef;

/**
  * @brief LCD-TFT Display layer x Controller
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t WHPCR;
  volatile uint32_t WVPCR;
  volatile uint32_t CKCR;
  volatile uint32_t PFCR;
  volatile uint32_t CACR;
  volatile uint32_t DCCR;
  volatile uint32_t BFCR;
  uint32_t RESERVED0[2];
  volatile uint32_t CFBAR;
  volatile uint32_t CFBLR;
  volatile uint32_t CFBLNR;
  uint32_t RESERVED1[3];
  volatile uint32_t CLUTWR;

} LTDC_Layer_TypeDef;

/**
  * @brief Power Control
  */

typedef struct
{
  volatile uint32_t CR1;
  volatile uint32_t CSR1;
  volatile uint32_t CR2;
  volatile uint32_t CR3;
  volatile uint32_t CPUCR;
  volatile uint32_t CPU2CR;
  volatile uint32_t D3CR;
       uint32_t RESERVED1;
  volatile uint32_t WKUPCR;
  volatile uint32_t WKUPFR;
  volatile uint32_t WKUPEPR;
} PWR_TypeDef;

/**
  * @brief Reset and Clock Control
  */

typedef struct
{
 volatile uint32_t CR;
 volatile uint32_t HSICFGR;
 volatile uint32_t CRRCR;
 volatile uint32_t CSICFGR;
 volatile uint32_t CFGR;
 uint32_t RESERVED1;
 volatile uint32_t D1CFGR;
 volatile uint32_t D2CFGR;
 volatile uint32_t D3CFGR;
 uint32_t RESERVED2;
 volatile uint32_t PLLCKSELR;
 volatile uint32_t PLLCFGR;
 volatile uint32_t PLL1DIVR;
 volatile uint32_t PLL1FRACR;
 volatile uint32_t PLL2DIVR;
 volatile uint32_t PLL2FRACR;
 volatile uint32_t PLL3DIVR;
 volatile uint32_t PLL3FRACR;
 uint32_t RESERVED3;
 volatile uint32_t D1CCIPR;
 volatile uint32_t D2CCIP1R;
 volatile uint32_t D2CCIP2R;
 volatile uint32_t D3CCIPR;
 uint32_t RESERVED4;
 volatile uint32_t CIER;
 volatile uint32_t CIFR;
 volatile uint32_t CICR;
 uint32_t RESERVED5;
 volatile uint32_t BDCR;
 volatile uint32_t CSR;
 uint32_t RESERVED6;
 volatile uint32_t AHB3RSTR;
 volatile uint32_t AHB1RSTR;
 volatile uint32_t AHB2RSTR;
 volatile uint32_t AHB4RSTR;
 volatile uint32_t APB3RSTR;
 volatile uint32_t APB1LRSTR;
 volatile uint32_t APB1HRSTR;
 volatile uint32_t APB2RSTR;
 volatile uint32_t APB4RSTR;
 volatile uint32_t GCR;
 uint32_t RESERVED8;
 volatile uint32_t D3AMR;
 uint32_t RESERVED11[9];
 volatile uint32_t RSR;
 volatile uint32_t AHB3ENR;
 volatile uint32_t AHB1ENR;
 volatile uint32_t AHB2ENR;
 volatile uint32_t AHB4ENR;
 volatile uint32_t APB3ENR;
 volatile uint32_t APB1LENR;
 volatile uint32_t APB1HENR;
 volatile uint32_t APB2ENR;
 volatile uint32_t APB4ENR;
 uint32_t RESERVED12;
 volatile uint32_t AHB3LPENR;
 volatile uint32_t AHB1LPENR;
 volatile uint32_t AHB2LPENR;
 volatile uint32_t AHB4LPENR;
 volatile uint32_t APB3LPENR;
 volatile uint32_t APB1LLPENR;
 volatile uint32_t APB1HLPENR;
 volatile uint32_t APB2LPENR;
 volatile uint32_t APB4LPENR;
 uint32_t RESERVED13[4];

} RCC_TypeDef;

typedef struct
{
  volatile uint32_t RSR;
  volatile uint32_t AHB3ENR;
  volatile uint32_t AHB1ENR;
  volatile uint32_t AHB2ENR;
  volatile uint32_t AHB4ENR;
  volatile uint32_t APB3ENR;
  volatile uint32_t APB1LENR;
  volatile uint32_t APB1HENR;
  volatile uint32_t APB2ENR;
  volatile uint32_t APB4ENR;
  uint32_t RESERVED9;
  volatile uint32_t AHB3LPENR;
  volatile uint32_t AHB1LPENR;
  volatile uint32_t AHB2LPENR;
  volatile uint32_t AHB4LPENR;
  volatile uint32_t APB3LPENR;
  volatile uint32_t APB1LLPENR;
  volatile uint32_t APB1HLPENR;
  volatile uint32_t APB2LPENR;
  volatile uint32_t APB4LPENR;
  uint32_t RESERVED10[4];

} RCC_Core_TypeDef;

/**
  * @brief Real-Time Clock
  */
typedef struct
{
  volatile uint32_t TR;
  volatile uint32_t DR;
  volatile uint32_t CR;
  volatile uint32_t ISR;
  volatile uint32_t PRER;
  volatile uint32_t WUTR;
       uint32_t RESERVED;
  volatile uint32_t ALRMAR;
  volatile uint32_t ALRMBR;
  volatile uint32_t WPR;
  volatile uint32_t SSR;
  volatile uint32_t SHIFTR;
  volatile uint32_t TSTR;
  volatile uint32_t TSDR;
  volatile uint32_t TSSSR;
  volatile uint32_t CALR;
  volatile uint32_t TAMPCR;
  volatile uint32_t ALRMASSR;
  volatile uint32_t ALRMBSSR;
  volatile uint32_t OR;
  volatile uint32_t BKP0R;
  volatile uint32_t BKP1R;
  volatile uint32_t BKP2R;
  volatile uint32_t BKP3R;
  volatile uint32_t BKP4R;
  volatile uint32_t BKP5R;
  volatile uint32_t BKP6R;
  volatile uint32_t BKP7R;
  volatile uint32_t BKP8R;
  volatile uint32_t BKP9R;
  volatile uint32_t BKP10R;
  volatile uint32_t BKP11R;
  volatile uint32_t BKP12R;
  volatile uint32_t BKP13R;
  volatile uint32_t BKP14R;
  volatile uint32_t BKP15R;
  volatile uint32_t BKP16R;
  volatile uint32_t BKP17R;
  volatile uint32_t BKP18R;
  volatile uint32_t BKP19R;
  volatile uint32_t BKP20R;
  volatile uint32_t BKP21R;
  volatile uint32_t BKP22R;
  volatile uint32_t BKP23R;
  volatile uint32_t BKP24R;
  volatile uint32_t BKP25R;
  volatile uint32_t BKP26R;
  volatile uint32_t BKP27R;
  volatile uint32_t BKP28R;
  volatile uint32_t BKP29R;
  volatile uint32_t BKP30R;
  volatile uint32_t BKP31R;
} RTC_TypeDef;

/**
  * @brief Serial Audio Interface
  */

typedef struct
{
  volatile uint32_t GCR;
  uint32_t RESERVED0[16];
  volatile uint32_t PDMCR;
  volatile uint32_t PDMDLY;
} SAI_TypeDef;

typedef struct
{
  volatile uint32_t CR1;
  volatile uint32_t CR2;
  volatile uint32_t FRCR;
  volatile uint32_t SLOTR;
  volatile uint32_t IMR;
  volatile uint32_t SR;
  volatile uint32_t CLRFR;
  volatile uint32_t DR;
} SAI_Block_TypeDef;

/**
  * @brief SPDIF-RX Interface
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t IMR;
  volatile uint32_t SR;
  volatile uint32_t IFCR;
  volatile uint32_t DR;
  volatile uint32_t CSR;
  volatile uint32_t DIR;
  uint32_t RESERVED2;
} SPDIFRX_TypeDef;


/**
  * @brief Secure digital input/output Interface
  */

typedef struct
{
  volatile uint32_t POWER;
  volatile uint32_t CLKCR;
  volatile uint32_t ARG;
  volatile uint32_t CMD;
  volatile uint32_t RESPCMD;
  volatile uint32_t RESP1;
  volatile uint32_t RESP2;
  volatile uint32_t RESP3;
  volatile uint32_t RESP4;
  volatile uint32_t DTIMER;
  volatile uint32_t DLEN;
  volatile uint32_t DCTRL;
  volatile uint32_t DCOUNT;
  volatile uint32_t STA;
  volatile uint32_t ICR;
  volatile uint32_t MASK;
  volatile uint32_t ACKTIME;
  uint32_t RESERVED0[3];
  volatile uint32_t IDMACTRL;
  volatile uint32_t IDMABSIZE;
  volatile uint32_t IDMABASE0;
  volatile uint32_t IDMABASE1;
  uint32_t RESERVED1[8];
  volatile uint32_t FIFO;
  uint32_t RESERVED2[222];
  volatile uint32_t IPVR;
} SDMMC_TypeDef;


/**
  * @brief Delay Block DLYB
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t CFGR;
} DLYB_TypeDef;

/**
  * @brief HW Semaphore HSEM
  */

typedef struct
{
  volatile uint32_t R[32];
  volatile uint32_t RLR[32];
  volatile uint32_t C1IER;
  volatile uint32_t C1ICR;
  volatile uint32_t C1ISR;
  volatile uint32_t C1MISR;
  volatile uint32_t C2IER;
  volatile uint32_t C2ICR;
  volatile uint32_t C2ISR;
  volatile uint32_t C2MISR;
   uint32_t Reserved[8];
  volatile uint32_t CR;
  volatile uint32_t KEYR;

} HSEM_TypeDef;

typedef struct
{
  volatile uint32_t IER;
  volatile uint32_t ICR;
  volatile uint32_t ISR;
  volatile uint32_t MISR;
} HSEM_Common_TypeDef;

/**
  * @brief Serial Peripheral Interface
  */

typedef struct
{
  volatile uint32_t CR1;
  volatile uint32_t CR2;
  volatile uint32_t CFG1;
  volatile uint32_t CFG2;
  volatile uint32_t IER;
  volatile uint32_t SR;
  volatile uint32_t IFCR;
  uint32_t RESERVED0;
  volatile uint32_t TXDR;
  uint32_t RESERVED1[3];
  volatile uint32_t RXDR;
  uint32_t RESERVED2[3];
  volatile uint32_t CRCPOLY;
  volatile uint32_t TXCRC;
  volatile uint32_t RXCRC;
  volatile uint32_t UDRDR;
  volatile uint32_t I2SCFGR;

} SPI_TypeDef;
/**
  * @brief QUAD Serial Peripheral Interface
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t DCR;
  volatile uint32_t SR;
  volatile uint32_t FCR;
  volatile uint32_t DLR;
  volatile uint32_t CCR;
  volatile uint32_t AR;
  volatile uint32_t ABR;
  volatile uint32_t DR;
  volatile uint32_t PSMKR;
  volatile uint32_t PSMAR;
  volatile uint32_t PIR;
  volatile uint32_t LPTR;
} QUADSPI_TypeDef;

/**
  * @brief TIM
  */

typedef struct
{
  volatile uint32_t CR1;
  volatile uint32_t CR2;
  volatile uint32_t SMCR;
  volatile uint32_t DIER;
  volatile uint32_t SR;
  volatile uint32_t EGR;
  volatile uint32_t CCMR1;
  volatile uint32_t CCMR2;
  volatile uint32_t CCER;
  volatile uint32_t CNT;
  volatile uint32_t PSC;
  volatile uint32_t ARR;
  volatile uint32_t RCR;
  volatile uint32_t CCR1;
  volatile uint32_t CCR2;
  volatile uint32_t CCR3;
  volatile uint32_t CCR4;
  volatile uint32_t BDTR;
  volatile uint32_t DCR;
  volatile uint32_t DMAR;
  uint32_t RESERVED1;
  volatile uint32_t CCMR3;
  volatile uint32_t CCR5;
  volatile uint32_t CCR6;
  volatile uint32_t AF1;
  volatile uint32_t AF2;
  volatile uint32_t TISEL;
} TIM_TypeDef;

/**
  * @brief LPTIMIMER
  */
typedef struct
{
  volatile uint32_t ISR;
  volatile uint32_t ICR;
  volatile uint32_t IER;
  volatile uint32_t CFGR;
  volatile uint32_t CR;
  volatile uint32_t CMP;
  volatile uint32_t ARR;
  volatile uint32_t CNT;
  uint32_t RESERVED1;
  volatile uint32_t CFGR2;
} LPTIM_TypeDef;

/**
  * @brief Comparator
  */
typedef struct
{
  volatile uint32_t SR;
  volatile uint32_t ICFR;
  volatile uint32_t OR;
} COMPOPT_TypeDef;

typedef struct
{
  volatile uint32_t CFGR;
} COMP_TypeDef;

typedef struct
{
  volatile uint32_t CFGR;
} COMP_Common_TypeDef;
/**
  * @brief Universal Synchronous Asynchronous Receiver Transmitter
  */

typedef struct
{
  volatile uint32_t CR1;
  volatile uint32_t CR2;
  volatile uint32_t CR3;
  volatile uint32_t BRR;
  volatile uint32_t GTPR;
  volatile uint32_t RTOR;
  volatile uint32_t RQR;
  volatile uint32_t ISR;
  volatile uint32_t ICR;
  volatile uint32_t RDR;
  volatile uint32_t TDR;
  volatile uint32_t PRESC;
} USART_TypeDef;

/**
  * @brief Single Wire Protocol Master Interface SPWMI
  */
typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t BRR;
    uint32_t RESERVED1;
  volatile uint32_t ISR;
  volatile uint32_t ICR;
  volatile uint32_t IER;
  volatile uint32_t RFL;
  volatile uint32_t TDR;
  volatile uint32_t RDR;
  volatile uint32_t OR;
} SWPMI_TypeDef;

/**
  * @brief Window WATCHDOG
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t CFR;
  volatile uint32_t SR;
} WWDG_TypeDef;


/**
  * @brief RAM_ECC_Specific_Registers
  */
typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t SR;
  volatile uint32_t FAR;
  volatile uint32_t FDRL;
  volatile uint32_t FDRH;
  volatile uint32_t FECR;
} RAMECC_MonitorTypeDef;

typedef struct
{
  volatile uint32_t IER;
} RAMECC_TypeDef;
/**
  * @}
  */



/**
  * @brief High resolution Timer (HRTIM)
  */
/* HRTIM master registers definition */
typedef struct
{
  volatile uint32_t MCR;
  volatile uint32_t MISR;
  volatile uint32_t MICR;
  volatile uint32_t MDIER;
  volatile uint32_t MCNTR;
  volatile uint32_t MPER;
  volatile uint32_t MREP;
  volatile uint32_t MCMP1R;
  uint32_t RESERVED0;
  volatile uint32_t MCMP2R;
  volatile uint32_t MCMP3R;
  volatile uint32_t MCMP4R;
  uint32_t RESERVED1[20];
}HRTIM_Master_TypeDef;

/* HRTIM Timer A to E registers definition */
typedef struct
{
  volatile uint32_t TIMxCR;
  volatile uint32_t TIMxISR;
  volatile uint32_t TIMxICR;
  volatile uint32_t TIMxDIER;
  volatile uint32_t CNTxR;
  volatile uint32_t PERxR;
  volatile uint32_t REPxR;
  volatile uint32_t CMP1xR;
  volatile uint32_t CMP1CxR;
  volatile uint32_t CMP2xR;
  volatile uint32_t CMP3xR;
  volatile uint32_t CMP4xR;
  volatile uint32_t CPT1xR;
  volatile uint32_t CPT2xR;
  volatile uint32_t DTxR;
  volatile uint32_t SETx1R;
  volatile uint32_t RSTx1R;
  volatile uint32_t SETx2R;
  volatile uint32_t RSTx2R;
  volatile uint32_t EEFxR1;
  volatile uint32_t EEFxR2;
  volatile uint32_t RSTxR;
  volatile uint32_t CHPxR;
  volatile uint32_t CPT1xCR;
  volatile uint32_t CPT2xCR;
  volatile uint32_t OUTxR;
  volatile uint32_t FLTxR;
  uint32_t RESERVED0[5];
}HRTIM_Timerx_TypeDef;

/* HRTIM common register definition */
typedef struct
{
  volatile uint32_t CR1;
  volatile uint32_t CR2;
  volatile uint32_t ISR;
  volatile uint32_t ICR;
  volatile uint32_t IER;
  volatile uint32_t OENR;
  volatile uint32_t ODISR;
  volatile uint32_t ODSR;
  volatile uint32_t BMCR;
  volatile uint32_t BMTRGR;
  volatile uint32_t BMCMPR;
  volatile uint32_t BMPER;
  volatile uint32_t EECR1;
  volatile uint32_t EECR2;
  volatile uint32_t EECR3;
  volatile uint32_t ADC1R;
  volatile uint32_t ADC2R;
  volatile uint32_t ADC3R;
  volatile uint32_t ADC4R;
  volatile uint32_t RESERVED0;
  volatile uint32_t FLTINR1;
  volatile uint32_t FLTINR2;
  volatile uint32_t BDMUPR;
  volatile uint32_t BDTAUPR;
  volatile uint32_t BDTBUPR;
  volatile uint32_t BDTCUPR;
  volatile uint32_t BDTDUPR;
  volatile uint32_t BDTEUPR;
  volatile uint32_t BDMADR;
}HRTIM_Common_TypeDef;

/* HRTIM  register definition */
typedef struct {
  HRTIM_Master_TypeDef sMasterRegs;
  HRTIM_Timerx_TypeDef sTimerxRegs[5];
  uint32_t RESERVED0[32];
  HRTIM_Common_TypeDef sCommonRegs;
}HRTIM_TypeDef;
/**
  * @brief RNG
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t SR;
  volatile uint32_t DR;
} RNG_TypeDef;

/**
  * @brief MDIOS
  */

typedef struct
{
  volatile uint32_t CR;
  volatile uint32_t WRFR;
  volatile uint32_t CWRFR;
  volatile uint32_t RDFR;
  volatile uint32_t CRDFR;
  volatile uint32_t SR;
  volatile uint32_t CLRFR;
  uint32_t RESERVED[57];
  volatile uint32_t DINR0;
  volatile uint32_t DINR1;
  volatile uint32_t DINR2;
  volatile uint32_t DINR3;
  volatile uint32_t DINR4;
  volatile uint32_t DINR5;
  volatile uint32_t DINR6;
  volatile uint32_t DINR7;
  volatile uint32_t DINR8;
  volatile uint32_t DINR9;
  volatile uint32_t DINR10;
  volatile uint32_t DINR11;
  volatile uint32_t DINR12;
  volatile uint32_t DINR13;
  volatile uint32_t DINR14;
  volatile uint32_t DINR15;
  volatile uint32_t DINR16;
  volatile uint32_t DINR17;
  volatile uint32_t DINR18;
  volatile uint32_t DINR19;
  volatile uint32_t DINR20;
  volatile uint32_t DINR21;
  volatile uint32_t DINR22;
  volatile uint32_t DINR23;
  volatile uint32_t DINR24;
  volatile uint32_t DINR25;
  volatile uint32_t DINR26;
  volatile uint32_t DINR27;
  volatile uint32_t DINR28;
  volatile uint32_t DINR29;
  volatile uint32_t DINR30;
  volatile uint32_t DINR31;
  volatile uint32_t DOUTR0;
  volatile uint32_t DOUTR1;
  volatile uint32_t DOUTR2;
  volatile uint32_t DOUTR3;
  volatile uint32_t DOUTR4;
  volatile uint32_t DOUTR5;
  volatile uint32_t DOUTR6;
  volatile uint32_t DOUTR7;
  volatile uint32_t DOUTR8;
  volatile uint32_t DOUTR9;
  volatile uint32_t DOUTR10;
  volatile uint32_t DOUTR11;
  volatile uint32_t DOUTR12;
  volatile uint32_t DOUTR13;
  volatile uint32_t DOUTR14;
  volatile uint32_t DOUTR15;
  volatile uint32_t DOUTR16;
  volatile uint32_t DOUTR17;
  volatile uint32_t DOUTR18;
  volatile uint32_t DOUTR19;
  volatile uint32_t DOUTR20;
  volatile uint32_t DOUTR21;
  volatile uint32_t DOUTR22;
  volatile uint32_t DOUTR23;
  volatile uint32_t DOUTR24;
  volatile uint32_t DOUTR25;
  volatile uint32_t DOUTR26;
  volatile uint32_t DOUTR27;
  volatile uint32_t DOUTR28;
  volatile uint32_t DOUTR29;
  volatile uint32_t DOUTR30;
  volatile uint32_t DOUTR31;
} MDIOS_TypeDef;


/**
  * @brief USB_OTG_Core_Registers
  */
typedef struct
{
 volatile uint32_t GOTGCTL;
  volatile uint32_t GOTGINT;
  volatile uint32_t GAHBCFG;
  volatile uint32_t GUSBCFG;
  volatile uint32_t GRSTCTL;
  volatile uint32_t GINTSTS;
  volatile uint32_t GINTMSK;
  volatile uint32_t GRXSTSR;
  volatile uint32_t GRXSTSP;
  volatile uint32_t GRXFSIZ;
  volatile uint32_t DIEPTXF0_HNPTXFSIZ;
  volatile uint32_t HNPTXSTS;
  uint32_t Reserved30[2];
  volatile uint32_t GCCFG;
  volatile uint32_t CID;
  volatile uint32_t GSNPSID;
  volatile uint32_t GHWCFG1;
  volatile uint32_t GHWCFG2;
  volatile uint32_t GHWCFG3;
  uint32_t Reserved6;
  volatile uint32_t GLPMCFG;
  volatile uint32_t GPWRDN;
  volatile uint32_t GDFIFOCFG;
   volatile uint32_t GADPCTL;
    uint32_t Reserved43[39];
  volatile uint32_t HPTXFSIZ;
  volatile uint32_t DIEPTXF[0x0F];
} USB_OTG_GlobalTypeDef;


/**
  * @brief USB_OTG_device_Registers
  */
typedef struct
{
  volatile uint32_t DCFG;
  volatile uint32_t DCTL;
  volatile uint32_t DSTS;
  uint32_t Reserved0C;
  volatile uint32_t DIEPMSK;
  volatile uint32_t DOEPMSK;
  volatile uint32_t DAINT;
  volatile uint32_t DAINTMSK;
  uint32_t Reserved20;
  uint32_t Reserved9;
  volatile uint32_t DVBUSDIS;
  volatile uint32_t DVBUSPULSE;
  volatile uint32_t DTHRCTL;
  volatile uint32_t DIEPEMPMSK;
  volatile uint32_t DEACHINT;
  volatile uint32_t DEACHMSK;
  uint32_t Reserved40;
  volatile uint32_t DINEP1MSK;
  uint32_t Reserved44[15];
  volatile uint32_t DOUTEP1MSK;
} USB_OTG_DeviceTypeDef;


/**
  * @brief USB_OTG_IN_Endpoint-Specific_Register
  */
typedef struct
{
  volatile uint32_t DIEPCTL;
  uint32_t Reserved04;
  volatile uint32_t DIEPINT;
  uint32_t Reserved0C;
  volatile uint32_t DIEPTSIZ;
  volatile uint32_t DIEPDMA;
  volatile uint32_t DTXFSTS;
  uint32_t Reserved18;
} USB_OTG_INEndpointTypeDef;


/**
  * @brief USB_OTG_OUT_Endpoint-Specific_Registers
  */
typedef struct
{
  volatile uint32_t DOEPCTL;
  uint32_t Reserved04;
  volatile uint32_t DOEPINT;
  uint32_t Reserved0C;
  volatile uint32_t DOEPTSIZ;
  volatile uint32_t DOEPDMA;
  uint32_t Reserved18[2];
} USB_OTG_OUTEndpointTypeDef;


/**
  * @brief USB_OTG_Host_Mode_Register_Structures
  */
typedef struct
{
  volatile uint32_t HCFG;
  volatile uint32_t HFIR;
  volatile uint32_t HFNUM;
  uint32_t Reserved40C;
  volatile uint32_t HPTXSTS;
  volatile uint32_t HAINT;
  volatile uint32_t HAINTMSK;
} USB_OTG_HostTypeDef;

/**
  * @brief USB_OTG_Host_Channel_Specific_Registers
  */
typedef struct
{
  volatile uint32_t HCCHAR;
  volatile uint32_t HCSPLT;
  volatile uint32_t HCINT;
  volatile uint32_t HCINTMSK;
  volatile uint32_t HCTSIZ;
  volatile uint32_t HCDMA;
  uint32_t Reserved[2];
} USB_OTG_HostChannelTypeDef;
/**
  * @}
  */


/**
  * @brief Global Programmer View
  */

typedef struct
{
  uint32_t RESERVED0[2036];
  volatile uint32_t AXI_PERIPH_ID_4;
  uint32_t AXI_PERIPH_ID_5;
  uint32_t AXI_PERIPH_ID_6;
  uint32_t AXI_PERIPH_ID_7;
  volatile uint32_t AXI_PERIPH_ID_0;
  volatile uint32_t AXI_PERIPH_ID_1;
  volatile uint32_t AXI_PERIPH_ID_2;
  volatile uint32_t AXI_PERIPH_ID_3;
  volatile uint32_t AXI_COMP_ID_0;
  volatile uint32_t AXI_COMP_ID_1;
  volatile uint32_t AXI_COMP_ID_2;
  volatile uint32_t AXI_COMP_ID_3;
  uint32_t RESERVED1[2];
  volatile uint32_t AXI_TARG1_FN_MOD_ISS_BM;
  uint32_t RESERVED2[6];
  volatile uint32_t AXI_TARG1_FN_MOD2;
  uint32_t RESERVED3;
  volatile uint32_t AXI_TARG1_FN_MOD_LB;
  uint32_t RESERVED4[54];
  volatile uint32_t AXI_TARG1_FN_MOD;
  uint32_t RESERVED5[959];
  volatile uint32_t AXI_TARG2_FN_MOD_ISS_BM;
  uint32_t RESERVED6[6];
  volatile uint32_t AXI_TARG2_FN_MOD2;
  uint32_t RESERVED7;
  volatile uint32_t AXI_TARG2_FN_MOD_LB;
  uint32_t RESERVED8[54];
  volatile uint32_t AXI_TARG2_FN_MOD;
  uint32_t RESERVED9[959];
  volatile uint32_t AXI_TARG3_FN_MOD_ISS_BM;
  uint32_t RESERVED10[1023];
  volatile uint32_t AXI_TARG4_FN_MOD_ISS_BM;
  uint32_t RESERVED11[1023];
  volatile uint32_t AXI_TARG5_FN_MOD_ISS_BM;
  uint32_t RESERVED12[1023];
  volatile uint32_t AXI_TARG6_FN_MOD_ISS_BM;
  uint32_t RESERVED13[1023];
  volatile uint32_t AXI_TARG7_FN_MOD_ISS_BM;
  uint32_t RESERVED14[6];
  volatile uint32_t AXI_TARG7_FN_MOD2;
  uint32_t RESERVED15;
  volatile uint32_t AXI_TARG7_FN_MOD_LB;
  uint32_t RESERVED16[54];
  volatile uint32_t AXI_TARG7_FN_MOD;
  uint32_t RESERVED17[59334];
  volatile uint32_t AXI_INI1_FN_MOD2;
  volatile uint32_t AXI_INI1_FN_MOD_AHB;
  uint32_t RESERVED18[53];
  volatile uint32_t AXI_INI1_READ_QOS;
  volatile uint32_t AXI_INI1_WRITE_QOS;
  volatile uint32_t AXI_INI1_FN_MOD;
  uint32_t RESERVED19[1021];
  volatile uint32_t AXI_INI2_READ_QOS;
  volatile uint32_t AXI_INI2_WRITE_QOS;
  volatile uint32_t AXI_INI2_FN_MOD;
  uint32_t RESERVED20[966];
  volatile uint32_t AXI_INI3_FN_MOD2;
  volatile uint32_t AXI_INI3_FN_MOD_AHB;
  uint32_t RESERVED21[53];
  volatile uint32_t AXI_INI3_READ_QOS;
  volatile uint32_t AXI_INI3_WRITE_QOS;
  volatile uint32_t AXI_INI3_FN_MOD;
  uint32_t RESERVED22[1021];
  volatile uint32_t AXI_INI4_READ_QOS;
  volatile uint32_t AXI_INI4_WRITE_QOS;
  volatile uint32_t AXI_INI4_FN_MOD;
  uint32_t RESERVED23[1021];
  volatile uint32_t AXI_INI5_READ_QOS;
  volatile uint32_t AXI_INI5_WRITE_QOS;
  volatile uint32_t AXI_INI5_FN_MOD;
  uint32_t RESERVED24[1021];
  volatile uint32_t AXI_INI6_READ_QOS;
  volatile uint32_t AXI_INI6_WRITE_QOS;
  volatile uint32_t AXI_INI6_FN_MOD;
  uint32_t RESERVED25[1021];
  volatile uint32_t AXI_INI7_READ_QOS;
  volatile uint32_t AXI_INI7_WRITE_QOS;
  volatile uint32_t AXI_INI7_FN_MOD;

} GPV_TypeDef;

/** @addtogroup Peripheral_memory_map
  * @{
  */
# 2240 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */


/*!< Device electronic signature memory map */




/*!< Peripheral memory map */
# 2260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< Legacy Peripheral memory map */






/*!< D1_AHB1PERIPH peripherals */
# 2280 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< D2_AHB1PERIPH peripherals */
# 2292 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< USB registers base address */
# 2308 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< D2_AHB2PERIPH peripherals */







/*!< D3_AHB1PERIPH peripherals */
# 2340 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< D1_APB1PERIPH peripherals */






/*!< D2_APB1PERIPH peripherals */
# 2386 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< D2_APB2PERIPH peripherals */
# 2429 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< D3_APB1PERIPH peripherals */
# 2534 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< FMC Banks registers base  address */






/* Debug MCU registers base address */
# 2580 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @}
  */

/** @addtogroup Peripheral_declaration
  * @{
  */
# 2875 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy defines */







/**
  * @}
  */

/** @addtogroup Exported_constants
  * @{
  */

  /** @addtogroup Hardware_Constant_Definition
    * @{
    */


  /**
    * @}
    */

  /** @addtogroup Peripheral_Registers_Bits_Definition
  * @{
  */

/******************************************************************************/
/*                         Peripheral Registers_Bits_Definition               */
/******************************************************************************/

/******************************************************************************/
/*                                                                            */
/*                        Analog to Digital Converter                         */
/*                                                                            */
/******************************************************************************/
/*******************************  ADC VERSION  ********************************/

/********************  Bit definition for ADC_ISR register  ********************/
# 2953 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_IER register  ********************/
# 2988 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_CR register  ********************/
# 3046 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_CFGR register  ********************/
# 3128 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_CFGR2 register  ********************/
# 3186 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_SMPR1 register  ********************/
# 3257 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_SMPR2 register  ********************/
# 3328 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_PCSEL register  ********************/
# 3353 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for ADC_LTR1, 2, 3 registers *****************/




/*****************  Bit definition for ADC_HTR1, 2, 3 registers  ****************/





/********************  Bit definition for ADC_SQR1 register  ********************/
# 3409 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_SQR2 register  ********************/
# 3455 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_SQR3 register  ********************/
# 3501 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_SQR4 register  ********************/
# 3519 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_DR register  ********************/




/********************  Bit definition for ADC_JSQR register  ********************/
# 3582 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_OFR1 register  ********************/
# 3627 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_OFR2 register  ********************/
# 3672 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_OFR3 register  ********************/
# 3717 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_OFR4 register  ********************/
# 3762 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_JDR1 register  ********************/
# 3799 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_JDR2 register  ********************/
# 3836 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_JDR3 register  ********************/
# 3873 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_JDR4 register  ********************/
# 3910 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_AWD2CR register  ********************/
# 3935 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_AWD3CR register  ********************/
# 3960 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_DIFSEL register  ********************/
# 3985 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_CALFACT register  ********************/
# 4015 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_CALFACT2 register  ********************/
# 4050 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*************************  ADC Common registers  *****************************/
/********************  Bit definition for ADC_CSR register  ********************/
# 4119 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_CCR register  ********************/
# 4168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_CDR register  *******************/
# 4177 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for ADC_CDR2 register  ******************/




/******************************************************************************/
/*                                                                            */
/*                        ART accelerator                                     */
/*                                                                            */
/******************************************************************************/
/*******************  Bit definition for ART_CTR register  ********************/
# 4196 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                                   VREFBUF                                  */
/*                                                                            */
/******************************************************************************/
/*******************  Bit definition for VREFBUF_CSR register  ****************/
# 4226 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for VREFBUF_CCR register  ****************/




/******************************************************************************/
/*                                                                            */
/*                 Flexible Datarate Controller Area Network                  */
/*                                                                            */
/******************************************************************************/
/*!<FDCAN control and status registers */
/*****************  Bit definition for FDCAN_CREL register  *******************/
# 4257 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_ENDN register  *******************/




/*****************  Bit definition for FDCAN_DBTP register  *******************/
# 4279 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TEST register  *******************/
# 4290 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_RWD register  ********************/







/*****************  Bit definition for FDCAN_CCCR register  ********************/
# 4342 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_NBTP register  ********************/
# 4356 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TSCC register  ********************/







/*****************  Bit definition for FDCAN_TSCV register  ********************/




/*****************  Bit definition for FDCAN_TOCC register  ********************/
# 4380 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TOCV register  ********************/




/*****************  Bit definition for FDCAN_ECR register  *********************/
# 4399 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_PSR register  *********************/
# 4434 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TDCR register  ********************/







/*****************  Bit definition for FDCAN_IR register  **********************/
# 4528 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_IE register  **********************/
# 4620 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_ILS register  **********************/
# 4712 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_ILE register  **********************/







/*****************  Bit definition for FDCAN_GFC register  **********************/
# 4734 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_SIDFC register  ********************/







/*****************  Bit definition for FDCAN_XIDFC register  ********************/







/*****************  Bit definition for FDCAN_XIDAM register  ********************/




/*****************  Bit definition for FDCAN_HPMS register  *********************/
# 4769 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_NDAT1 register  ********************/
# 4867 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_NDAT2 register  ********************/
# 4965 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_RXF0C register  ********************/
# 4979 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_RXF0S register  ********************/
# 4996 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_RXF0A register  ********************/




/*****************  Bit definition for FDCAN_RXBC register  ********************/




/*****************  Bit definition for FDCAN_RXF1C register  ********************/
# 5020 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_RXF1S register  ********************/
# 5037 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_RXF1A register  ********************/




/*****************  Bit definition for FDCAN_RXESC register  ********************/
# 5053 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TXBC register  *********************/
# 5067 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TXFQS register  *********************/
# 5081 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TXESC register  *********************/




/*****************  Bit definition for FDCAN_TXBRP register  *********************/




/*****************  Bit definition for FDCAN_TXBAR register  *********************/




/*****************  Bit definition for FDCAN_TXBCR register  *********************/




/*****************  Bit definition for FDCAN_TXBTO register  *********************/




/*****************  Bit definition for FDCAN_TXBCF register  *********************/




/*****************  Bit definition for FDCAN_TXBTIE register  ********************/




/*****************  Bit definition for FDCAN_ TXBCIE register  *******************/




/*****************  Bit definition for FDCAN_TXEFC register  *********************/
# 5132 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TXEFS register  *********************/
# 5149 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TXEFA register  *********************/




/*****************  Bit definition for FDCAN_TTTMC register  *********************/







/*****************  Bit definition for FDCAN_TTRMC register  *********************/
# 5173 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TTOCF register  *********************/
# 5205 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TTMLM register  *********************/
# 5219 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TURCF register  *********************/
# 5230 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TTOCN register  ********************/
# 5271 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TTGTP register  ********************/







/*****************  Bit definition for FDCAN_TTTMK register  ********************/
# 5290 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TTIR register  ********************/
# 5349 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TTIE register  ********************/
# 5408 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TTILS register  ********************/
# 5467 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TTOST register  ********************/
# 5511 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCAN_TURNA register  ********************/




/*****************  Bit definition for FDCAN_TTLGT register  ********************/







/*****************  Bit definition for FDCAN_TTCTC register  ********************/







/*****************  Bit definition for FDCAN_TTCPT register  ********************/







/*****************  Bit definition for FDCAN_TTCSM register  ********************/




/*****************  Bit definition for FDCAN_TTTS register  *********************/







/********************************************************************************/
/*                                                                              */
/*                      FDCANCCU (Clock Calibration unit)                       */
/*                                                                              */
/********************************************************************************/

/*****************  Bit definition for FDCANCCU_CREL register  ******************/
# 5579 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCANCCU_CCFG register  ******************/
# 5599 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for FDCANCCU_CSTAT register  *****************/
# 5610 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FDCANCCU_CWD register  ******************/







/******************  Bit definition for FDCANCCU_IR register  *******************/







/******************  Bit definition for FDCANCCU_IE register  *******************/







/******************************************************************************/
/*                                                                            */
/*                          HDMI-CEC (CEC)                                    */
/*                                                                            */
/******************************************************************************/

/*******************  Bit definition for CEC_CR register  *********************/
# 5651 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for CEC_CFGR register  *******************/
# 5680 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for CEC_TXDR register  *******************/




/*******************  Bit definition for CEC_RXDR register  *******************/




/*******************  Bit definition for CEC_ISR register  ********************/
# 5731 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for CEC_IER register  ********************/
# 5772 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                          CRC calculation unit                              */
/*                                                                            */
/******************************************************************************/
/*******************  Bit definition for CRC_DR register  *********************/




/*******************  Bit definition for CRC_IDR register  ********************/




/********************  Bit definition for CRC_CR register  ********************/
# 5805 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for CRC_INIT register  *******************/




/*******************  Bit definition for CRC_POL register  ********************/




/******************************************************************************/
/*                                                                            */
/*                          CRS Clock Recovery System                         */
/******************************************************************************/

/*******************  Bit definition for CRS_CR register  *********************/
# 5846 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for CRS_CFGR register  *********************/
# 5871 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for CRS_ISR register  *********************/
# 5900 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for CRS_ICR register  *********************/
# 5914 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                      Digital to Analog Converter                           */
/*                                                                            */
/******************************************************************************/
/********************  Bit definition for DAC_CR register  ********************/
# 6000 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for DAC_SWTRIGR register  ******************/







/*****************  Bit definition for DAC_DHR12R1 register  ******************/




/*****************  Bit definition for DAC_DHR12L1 register  ******************/




/******************  Bit definition for DAC_DHR8R1 register  ******************/




/*****************  Bit definition for DAC_DHR12R2 register  ******************/




/*****************  Bit definition for DAC_DHR12L2 register  ******************/




/******************  Bit definition for DAC_DHR8R2 register  ******************/




/*****************  Bit definition for DAC_DHR12RD register  ******************/







/*****************  Bit definition for DAC_DHR12LD register  ******************/







/******************  Bit definition for DAC_DHR8RD register  ******************/







/*******************  Bit definition for DAC_DOR1 register  *******************/




/*******************  Bit definition for DAC_DOR2 register  *******************/




/********************  Bit definition for DAC_SR register  ********************/
# 6093 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DAC_CCR register  ********************/







/*******************  Bit definition for DAC_MCR register  *******************/
# 6116 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for DAC_SHSR1 register  ******************/




/******************  Bit definition for DAC_SHSR2 register  ******************/




/******************  Bit definition for DAC_SHHR register  ******************/







/******************  Bit definition for DAC_SHRR register  ******************/







/******************************************************************************/
/*                                                                            */
/*                                    DCMI                                    */
/*                                                                            */
/******************************************************************************/
/********************  Bits definition for DCMI_CR register  ******************/
# 6197 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DCMI_SR register  ******************/
# 6208 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DCMI_RIS register   ****************/
# 6225 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DCMI_IER register  *****************/
# 6243 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DCMI_MIS register  *****************/
# 6261 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DCMI_ICR register  *****************/
# 6279 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DCMI_ESCR register  ******************/
# 6293 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DCMI_ESUR register  ******************/
# 6307 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DCMI_CWSTRT register  ******************/







/********************  Bits definition for DCMI_CWSIZE register  ******************/







/********************  Bits definition for DCMI_DR register  ******************/
# 6337 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                 Digital Filter for Sigma Delta Modulators                  */
/*                                                                            */
/******************************************************************************/

/****************   DFSDM channel configuration registers  ********************/

/***************  Bit definition for DFSDM_CHCFGR1 register  ******************/
# 6388 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/***************  Bit definition for DFSDM_CHCFGR2 register  ******************/







/******************  Bit definition for DFSDM_CHAWSCDR register *****************/
# 6412 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************  Bit definition for DFSDM_CHWDATR register *******************/




/****************  Bit definition for DFSDM_CHDATINR register *****************/







/************************   DFSDM module registers  ****************************/

/********************  Bit definition for DFSDM_FLTCR1 register *******************/
# 6479 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DFSDM_FLTCR2 register *******************/
# 6508 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DFSDM_FLTISR register *******************/
# 6537 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DFSDM_FLTICR register *******************/
# 6551 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DFSDM_FLTJCHGR register ******************/




/********************  Bit definition for DFSDM_FLTFCR register *******************/
# 6570 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for DFSDM_FLTJDATAR register *****************/







/******************  Bit definition for DFSDM_FLTRDATAR register *****************/
# 6589 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for DFSDM_FLTAWHTR register ******************/







/******************  Bit definition for DFSDM_FLTAWLTR register ******************/







/******************  Bit definition for DFSDM_FLTAWSR register ******************/







/******************  Bit definition for DFSDM_FLTAWCFR) register *****************/







/******************  Bit definition for DFSDM_FLTEXMAX register ******************/







/******************  Bit definition for DFSDM_FLTEXMIN register ******************/







/******************  Bit definition for DFSDM_FLTCNVTIMR register ******************/




/******************************************************************************/
/*                                                                            */
/*                           BDMA Controller                                  */
/*                                                                            */
/******************************************************************************/

/*******************  Bit definition for BDMA_ISR register  ********************/
# 6746 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for BDMA_IFCR register  *******************/
# 6844 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for BDMA_CCR register  ********************/
# 6898 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for BDMA_CNDTR register  *******************/




/******************  Bit definition for BDMA_CPAR register  ********************/




/******************  Bit definition for BDMA_CM0AR register  ********************/




/******************  Bit definition for BDMA_CM1AR register  ********************/




/******************************************************************************/
/*                                                                            */
/*                Ethernet MAC Registers bits definitions                     */
/*                                                                            */
/******************************************************************************/
/* Bit definition for Ethernet MAC Configuration Register register */
# 7022 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Extended Configuration Register register */
# 7042 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Packet Filter Register */
# 7096 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Watchdog Timeout Register */
# 7119 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Hash Table High Register */




/* Bit definition for Ethernet MAC Hash Table Low Register */




/* Bit definition for Ethernet MAC VLAN Tag Register */
# 7199 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC VLAN Hash Table Register */




/* Bit definition for Ethernet MAC VLAN Incl Register */
# 7240 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Inner_VLAN Incl Register */
# 7276 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Tx Flow Ctrl Register */
# 7309 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Rx Flow Ctrl Register */







/* Bit definition for Ethernet MAC Interrupt Status Register */
# 7346 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Interrupt Enable Register */
# 7366 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Rx Tx Status Register */
# 7389 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC PMT Control Status Register */
# 7418 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Remote Wake-Up Packet Filter Register */




/* Bit definition for Ethernet MAC LPI Control Status Register */
# 7458 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC LPI Timers Control Register */







/* Bit definition for Ethernet MAC LPI Entry Timer Register */




/* Bit definition for Ethernet MAC 1US Tic Counter Register */




/* Bit definition for Ethernet MAC Version Register */







/* Bit definition for Ethernet MAC Debug Register */
# 7508 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC HW Feature0 Register */
# 7586 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC HW Feature1 Register */
# 7630 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC HW Feature2 Register */
# 7650 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC MDIO Address Register */
# 7731 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC MDIO Data Register */







/* Bit definition for Ethernet ARP Address Register */




/* Bit definition for Ethernet MAC Address 0 High Register */







/* Bit definition for Ethernet MAC Address 0 Low Register */




/* Bit definition for Ethernet MAC Address 1 High Register */
# 7771 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Address 1 Low Register */




/* Bit definition for Ethernet MAC Address 2 High Register */
# 7790 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Address 2 Low Register */




/* Bit definition for Ethernet MAC Address 3 High Register */
# 7809 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Address 3 Low Register */




/* Bit definition for Ethernet MAC Address High Register */
# 7834 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Address Low Register */




/* Bit definition for Ethernet MMC Control Register */
# 7862 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MMC Rx Interrupt Register */
# 7879 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MMC Tx Interrupt Register */
# 7896 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MMC Rx interrupt Mask register */
# 7913 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MMC Tx Interrupt Mask Register */
# 7930 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MMC Tx Single Collision Good Packets Register */




/* Bit definition for Ethernet MMC Tx Multiple Collision Good Packets Register */




/* Bit definition for Ethernet MMC Tx Packet Count Good Register */




/* Bit definition for Ethernet MMC Rx CRC Error Packets Register */




/* Bit definition for Ethernet MMC Rx alignment error packets register */




/* Bit definition for Ethernet MMC Rx Unicast Packets Good Register */




/* Bit definition for Ethernet MMC Tx LPI Microsecond Timer Register */




/* Bit definition for Ethernet MMC Tx LPI Transition Counter Register */




/* Bit definition for Ethernet MMC Rx LPI Microsecond Counter Register */




/* Bit definition for Ethernet MMC Rx LPI Transition Counter Register */




/* Bit definition for Ethernet MAC L3 L4 Control Register */
# 8018 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC L4 Address Register */







/* Bit definition for Ethernet MAC L3 Address0 Register */




/* Bit definition for Ethernet MAC L4 Address1 Register */




/* Bit definition for Ethernet MAC L4 Address2 Register */




/* Bit definition for Ethernet MAC L4 Address3 Register */




/* Bit definition for Ethernet MAC Timestamp Control Register */
# 8099 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Sub-second Increment Register */







/* Bit definition for Ethernet MAC System Time Seconds Register */




/* Bit definition for Ethernet MAC System Time Nanoseconds Register */




/* Bit definition for Ethernet MAC System Time Seconds Update Register */




/* Bit definition for Ethernet MAC System Time Nanoseconds Update Register */







/* Bit definition for Ethernet MAC Timestamp Addend Register */




/* Bit definition for Ethernet MAC Timestamp Status Register */
# 8161 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Tx Timestamp Status Nanoseconds Register */







/* Bit definition for Ethernet MAC Tx Timestamp Status Seconds Register */




/* Bit definition for Ethernet MAC Auxiliary Control Register*/
# 8191 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC Auxiliary Timestamp Nanoseconds Register */




/* Bit definition for Ethernet MAC Auxiliary Timestamp Seconds Register */




/* Bit definition for Ethernet MAC Timestamp Ingress Asymmetric Correction Register */




/* Bit definition for Ethernet MAC Timestamp Egress Asymmetric Correction Register */




/* Bit definition for Ethernet MAC Timestamp Ingress Correction Nanosecond Register */




/* Bit definition for Ethernet MAC Timestamp Egress correction Nanosecond Register */




/* Bit definition for Ethernet MAC PPS Control Register */
# 8232 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC PPS Target Time Seconds Register */




/* Bit definition for Ethernet MAC PPS Target Time Nanoseconds Register */







/* Bit definition for Ethernet MAC PPS Interval Register */




/* Bit definition for Ethernet MAC PPS Width Register */




/* Bit definition for Ethernet MAC PTP Offload Control Register */
# 8278 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MAC PTP Source Port Identity 0 Register */




/* Bit definition for Ethernet MAC PTP Source Port Identity 1 Register */




/* Bit definition for Ethernet MAC PTP Source Port Identity 2 Register */




/* Bit definition for Ethernet MAC Log Message Interval Register */
# 8304 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MTL Operation Mode Register */
# 8315 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MTL Interrupt Status Register */







/* Bit definition for Ethernet MTL Tx Queue Operation Mode Register */
# 8342 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MTL Tx Queue Underflow Register */







/* Bit definition for Ethernet MTL Tx Queue Debug Register */
# 8377 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MTL Queue Interrupt Control Status Register */
# 8391 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MTL Rx Queue Operation Mode Register */
# 8424 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MTL Rx Queue Missed Packet Overflow Cnt Register */
# 8438 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MTL Rx Queue Debug Register */
# 8472 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet MTL Rx Queue Control Register */







/* Bit definition for Ethernet DMA Mode Register */
# 8508 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet DMA SysBus Mode Register */
# 8522 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet DMA Interrupt Status Register */
# 8533 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet DMA Debug Status Register */
# 8579 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet DMA Channel Control Register */
# 8592 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet DMA Channel Tx Control Register */
# 8612 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet DMA Channel Rx Control Register */
# 8632 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet DMA CH Tx Desc List Address Register */




/* Bit definition for Ethernet DMA CH Rx Desc List Address Register */




/* Bit definition for Ethernet DMA CH Tx Desc Tail Pointer Register */




/* Bit definition for Ethernet DMA CH Rx Desc Tail Pointer Register */




/* Bit definition for Ethernet DMA CH Tx Desc Ring Length Register */




/* Bit definition for Ethernet DMA CH Rx Desc Ring Length Register */




/* Bit definition for Ethernet DMA Channel Interrupt Enable Register */
# 8703 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet DMA Channel Rx Interrupt Watchdog Timer Register */




/* Bit definition for Ethernet DMA Channel Current App Tx Desc Register */




/* Bit definition for Ethernet DMA Channel Current App Rx Desc Register */




/* Bit definition for Ethernet DMA Channel Current App Tx Buffer Register */




/* Bit definition for Ethernet DMA Channel Current App Rx Buffer Register */




/* Bit definition for Ethernet DMA Channel Status Register */
# 8775 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Bit definition for Ethernet DMA Channel missed frame count register */







/******************************************************************************/
/*                                                                            */
/*                             DMA Controller                                 */
/*                                                                            */
/******************************************************************************/
/********************  Bits definition for DMA_SxCR register  *****************/
# 8859 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMA_SxCNDTR register  **************/
# 8880 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMA_SxFCR register  ****************/
# 8899 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMA_LISR register  *****************/
# 8961 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMA_HISR register  *****************/
# 9023 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMA_LIFCR register  ****************/
# 9085 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMA_HIFCR  register  ****************/
# 9147 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for DMA_SxPAR register  ********************/




/******************  Bit definition for DMA_SxM0AR register  ********************/




/******************  Bit definition for DMA_SxM1AR register  ********************/




/******************************************************************************/
/*                                                                            */
/*                             DMAMUX Controller                              */
/*                                                                            */
/******************************************************************************/
/********************  Bits definition for DMAMUX_CxCR register  **************/
# 9210 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMAMUX_CSR register  **************/
# 9260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMAMUX_CFR register  **************/
# 9310 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMAMUX_RGxCR register  ************/
# 9339 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMAMUX_RGSR register  **************/
# 9365 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for DMAMUX_RGCFR register  **************/
# 9391 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                         AHB Master DMA2D Controller (DMA2D)                */
/*                                                                            */
/******************************************************************************/

/********************  Bit definition for DMA2D_CR register  ******************/
# 9436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_ISR register  *****************/
# 9457 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_IFCR register  ****************/
# 9478 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_FGMAR register  ***************/





/********************  Bit definition for DMA2D_FGOR register  ****************/





/********************  Bit definition for DMA2D_BGMAR register  ***************/





/********************  Bit definition for DMA2D_BGOR register  ****************/





/********************  Bit definition for DMA2D_FGPFCCR register  *************/
# 9540 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_FGCOLR register  **************/
# 9552 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_BGPFCCR register  *************/
# 9585 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_BGCOLR register  **************/
# 9597 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_FGCMAR register  **************/





/********************  Bit definition for DMA2D_BGCMAR register  **************/





/********************  Bit definition for DMA2D_OPFCCR register  **************/
# 9627 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_OCOLR register  ***************/

/*!<Mode_ARGB8888/RGB888 */
# 9644 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!<Mode_RGB565 */
# 9655 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!<Mode_ARGB1555 */
# 9669 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!<Mode_ARGB4444 */
# 9683 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_OMAR register  ****************/





/********************  Bit definition for DMA2D_OOR register  *****************/





/********************  Bit definition for DMA2D_NLR register  *****************/
# 9704 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_LWR register  *****************/





/********************  Bit definition for DMA2D_AMTCR register  ***************/
# 9720 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for DMA2D_FGCLUT register  **************/

/********************  Bit definition for DMA2D_BGCLUT register  **************/

/******************************************************************************/
/*                                                                            */
/*                     Display Serial Interface (DSI)                         */
/*                                                                            */
/******************************************************************************/
/*******************  Bit definition for DSI_VR register  *****************/




/*******************  Bit definition for DSI_CR register  *****************/




/*******************  Bit definition for DSI_CCR register  ****************/
# 9796 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_LVCIDR register  *************/
# 9807 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_LCOLCR register  *************/
# 9828 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_LPCR register  ***************/
# 9839 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_LPMCR register  **************/
# 9896 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_PCR register  ****************/
# 9913 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_GVCIDR register  *************/
# 9924 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_MCR register  ****************/




/*******************  Bit definition for DSI_VMCR register  ***************/
# 9974 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VPCR register  ***************/
# 10021 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VCCR register  ***************/
# 10065 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VNPCR register  **************/
# 10109 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VHSACR register  *************/
# 10150 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VHBPCR register  *************/
# 10191 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VLCR register  ***************/
# 10241 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VVSACR register  *************/
# 10276 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VVBPCR register  *************/
# 10311 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VVFPCR register  *************/
# 10346 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VVACR register  **************/
# 10393 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_LCCR register  ***************/
# 10446 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_CMCR register  ***************/
# 10490 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_GHCR register  ***************/
# 10579 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_GPDR register  ***************/
# 10628 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_GPSR register  ***************/
# 10651 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_TCCR0 register  **************/
# 10756 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_TCCR1 register  **************/
# 10809 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_TCCR2 register  **************/
# 10862 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_TCCR3 register  **************/
# 10919 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_TCCR4 register  **************/
# 10972 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_TCCR5 register  **************/
# 11025 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_TDCR register  ***************/
# 11044 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_CLCR register  ***************/







/*******************  Bit definition for DSI_CLTCR register  **************/
# 11121 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_DLTCR register  **************/
# 11227 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_PCTLR register  **************/







/*******************  Bit definition for DSI_PCONFR register  *************/
# 11274 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_PUCR register  ***************/
# 11288 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_PTTCR register  **************/
# 11305 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_PSR register  ****************/
# 11331 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_ISR0 register  ***************/
# 11396 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_ISR1 register  ***************/
# 11437 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_IER0 register  ***************/
# 11502 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_IER1 register  ***************/
# 11543 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_FIR0 register  ***************/
# 11608 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_FIR1 register  ***************/
# 11649 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VSCR register  ***************/







/*******************  Bit definition for DSI_LCVCIDR register  ************/
# 11668 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_LCCCR register  **************/
# 11689 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_LPMCCR register  *************/
# 11746 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VMCCR register  **************/
# 11782 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VPCCR register  **************/
# 11829 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VCCCR register  **************/
# 11873 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VNPCCR register  *************/
# 11917 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VHSACCR register  ************/
# 11958 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VHBPCCR register  ************/
# 11999 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VLCCR register  **************/
# 12049 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VVSACCR register  ***************/
# 12084 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VVBPCCR register  ************/
# 12119 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VVFPCCR register  ************/
# 12154 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_VVACCR register  *************/
# 12201 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_TDCCR register  **************/
# 12220 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WCFGR register  ***************/
# 12250 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WCR register  *****************/
# 12264 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WIER register  ****************/
# 12281 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WISR register  ****************/
# 12307 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WIFCR register  ***************/
# 12324 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WPCR0 register  ***************/
# 12396 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WPCR1 register  ***************/
# 12485 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WPCR2 register  ***************/
# 12598 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WPCR3 register  ***************/
# 12711 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WPCR4 register  ***************/
# 12740 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DSI_WRPCR register  ***************/
# 12799 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                    External Interrupt/Event Controller                     */
/*                                                                            */
/******************************************************************************/
/******************  Bit definition for EXTI_RTSR1 register  *******************/
# 12875 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for EXTI_FTSR1 register  *******************/
# 12946 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for EXTI_SWIER1 register  ******************/
# 13014 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for EXTI_D3PMR1 register  ******************/
# 13076 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_D3PCR1L register  ****************/
# 13126 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_D3PCR1H register  ****************/
# 13140 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for EXTI_RTSR2 register  *******************/
# 13151 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for EXTI_FTSR2 register  *******************/
# 13162 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for EXTI_SWIER2 register  ******************/







/******************  Bit definition for EXTI_D3PMR2 register  ******************/
# 13198 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_D3PCR2L register  ****************/
# 13210 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_D3PCR2H register  ****************/
# 13229 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for EXTI_RTSR3 register  *******************/
# 13246 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for EXTI_FTSR3 register  *******************/
# 13263 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for EXTI_SWIER3 register  ******************/
# 13280 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_IMR1 register  *******************/
# 13381 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_EMR1 register  *******************/
# 13479 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_PR1 register  ********************/
# 13550 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_IMR2 register  *******************/
# 13648 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_EMR2 register  *******************/
# 13746 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_PR2 register  ********************/
# 13757 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_IMR3 register  *******************/
# 13829 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_EMR3 register  *******************/
# 13903 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for EXTI_PR3 register  ********************/
# 13919 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                                    FLASH                                   */
/*                                                                            */
/******************************************************************************/
/*
* @brief FLASH Global Defines
*/
# 13942 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_ACR register  **********************/
# 13961 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy FLASH Latency defines */
# 13970 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_CR register  ***********************/
# 14040 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_SR register  ***********************/
# 14090 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_CCR register  *******************/
# 14128 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_OPTCR register  *******************/
# 14145 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_OPTSR register  ***************/
# 14205 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_OPTCCR register  *******************/




/*******************  Bits definition for FLASH_PRAR register  *********************/
# 14221 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_SCAR register  *********************/
# 14232 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_WPSN register  *********************/




/*******************  Bits definition for FLASH_BOOT7_CUR register  ****************/







/*******************  Bits definition for FLASH_BOOT4 register  ********************/







/*******************  Bits definition for FLASH_CRCCR register  ********************/
# 14281 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bits definition for FLASH_CRCSADD register  ****************/




/*******************  Bits definition for FLASH_CRCEADD register  ****************/




/*******************  Bits definition for FLASH_CRCDATA register  ***************/




/*******************  Bits definition for FLASH_ECC_FA register  *******************/




/******************************************************************************/
/*                                                                            */
/*                          Flexible Memory Controller                        */
/*                                                                            */
/******************************************************************************/
/******************  Bit definition for FMC_BCR1 register  *******************/
# 14323 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_BCRx registers (x=1..4)  *********/
# 14379 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_BTRx registers (x=1..4)  *********/
# 14438 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_BWTRx registers (x=1..4)  *********/
# 14481 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_PCR register  *******************/
# 14522 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for FMC_SR register  *******************/
# 14545 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_PMEM register  ******************/
# 14594 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_PATT register  ******************/
# 14643 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_ECCR3 register  ******************/




/******************  Bit definition for FMC_SDCRx registers (x=1..4)  *********/
# 14697 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_SDTRx(1,2) register  ******************/
# 14750 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_SDCMR register  ******************/
# 14778 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_SDRTR register  ******************/
# 14791 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for FMC_SDSR register  ******************/
# 14808 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                            General Purpose I/O                             */
/*                                                                            */
/******************************************************************************/
/******************  Bits definition for GPIO_MODER register  *****************/
# 14910 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy Defines */
# 15007 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bits definition for GPIO_OTYPER register  ****************/
# 15057 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bits definition for GPIO_OSPEEDR register  ***************/
# 15154 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bits definition for GPIO_PUPDR register  *****************/
# 15251 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bits definition for GPIO_IDR register  *******************/
# 15301 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bits definition for GPIO_ODR register  *******************/
# 15351 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bits definition for GPIO_BSRR register  ******************/
# 15449 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** Bit definition for GPIO_LCKR register *********************/
# 15502 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** Bit definition for GPIO_AFRL register  ********************/
# 15560 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy defines */
# 15570 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** Bit definition for GPIO_AFRH register  ********************/
# 15628 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy defines */
# 15638 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                        HSEM HW Semaphore                                   */
/*                                                                            */
/******************************************************************************/
/********************  Bit definition for HSEM_R register  ********************/
# 15654 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_RLR register  ******************/
# 15665 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_C1IER register  *****************/
# 15763 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_C1ICR register  *****************/
# 15861 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_C1ISR register  *****************/
# 15959 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_C1MISR register  *****************/
# 16057 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_C2IER register  *****************/
# 16155 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_C2ICR register  *****************/
# 16253 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_C2ISR register  *****************/
# 16351 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_C2MISR register  *****************/
# 16448 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for HSEM_CR register  *****************/







/********************  Bit definition for HSEM_KEYR register  *****************/




/******************************************************************************/
/*                                                                            */
/*                      Inter-integrated Circuit Interface (I2C)              */
/*                                                                            */
/******************************************************************************/
/*******************  Bit definition for I2C_CR1 register  *******************/
# 16528 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for I2C_CR2 register  ********************/
# 16563 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for I2C_OAR1 register  ******************/
# 16574 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for I2C_OAR2 register  ******************/
# 16607 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for I2C_TIMINGR register *******************/
# 16624 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************* Bit definition for I2C_TIMEOUTR register *******************/
# 16641 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for I2C_ISR register  *********************/
# 16694 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for I2C_ICR register  *********************/
# 16723 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for I2C_PECR register  *********************/




/******************  Bit definition for I2C_RXDR register  *********************/




/******************  Bit definition for I2C_TXDR register  *********************/




/******************************************************************************/
/*                                                                            */
/*                           Independent WATCHDOG                             */
/*                                                                            */
/******************************************************************************/
/*******************  Bit definition for IWDG_KR register  ********************/




/*******************  Bit definition for IWDG_PR register  ********************/







/*******************  Bit definition for IWDG_RLR register  *******************/




/*******************  Bit definition for IWDG_SR register  ********************/
# 16772 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for IWDG_KR register  ********************/




/******************************************************************************/
/*                                                                            */
/*                        JPEG Encoder/Decoder                                */
/*                                                                            */
/******************************************************************************/
/********************  Bit definition for CONFR0 register  ********************/




/********************  Bit definition for CONFR1 register  ********************/
# 16813 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for CONFR2 register  ********************/




/********************  Bit definition for CONFR3 register  ********************/




/********************  Bit definition for CONFR4 register  ********************/
# 16857 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for CONFR5 register  ********************/
# 16891 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for CONFR6 register  ********************/
# 16925 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for CONFR7 register  ********************/
# 16959 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for CR register  ********************/
# 16988 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for SR register  ********************/
# 17011 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for CFR register  ********************/







/********************  Bit definition for DIR register  ********************/




/********************  Bit definition for DOR register  ********************/




/******************************************************************************/
/*                                                                            */
/*                      LCD-TFT Display Controller (LTDC)                     */
/*                                                                            */
/******************************************************************************/

/********************  Bit definition for LTDC_SSCR register  *****************/
# 17044 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_BPCR register  *****************/
# 17053 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_AWCR register  *****************/
# 17062 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_TWCR register  *****************/
# 17071 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_GCR register  ******************/
# 17102 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_SRCR register  *****************/
# 17111 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_BCCR register  *****************/
# 17123 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_IER register  ******************/
# 17138 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_ISR register  ******************/
# 17153 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_ICR register  ******************/
# 17168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_LIPCR register  ****************/





/********************  Bit definition for LTDC_CPSR register  *****************/
# 17183 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_CDSR register  *****************/
# 17198 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_LxCR register  *****************/
# 17210 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_LxWHPCR register  **************/
# 17219 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_LxWVPCR register  **************/
# 17228 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_LxCKCR register  ***************/
# 17240 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_LxPFCR register  ***************/





/********************  Bit definition for LTDC_LxCACR register  ***************/





/********************  Bit definition for LTDC_LxDCCR register  ***************/
# 17267 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_LxBFCR register  ***************/
# 17276 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_LxCFBAR register  **************/





/********************  Bit definition for LTDC_LxCFBLR register  **************/
# 17291 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for LTDC_LxCFBLNR register  *************/





/********************  Bit definition for LTDC_LxCLUTWR register  *************/
# 17312 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                                     MDMA                                   */
/*                                                                            */
/******************************************************************************/
/********************  Bit definition for MDMA_GISR0 register  ****************/
# 17367 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDMA_CxISR register  ****************/
# 17387 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDMA_CxIFCR register  ****************/
# 17404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDMA_CxESR register  ****************/
# 17424 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDMA_CxCR register  ****************/
# 17461 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDMA_CxTCR register  ****************/
# 17527 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDMA_CxBNDTR register  ****************/
# 17541 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDMA_CxSAR register  ****************/




/********************  Bit definition for MDMA_CxDAR register  ****************/




/********************  Bit definition for MDMA_CxBRUR  ************************/







/********************  Bit definition for MDMA_CxLAR  *************************/




/********************  Bit definition for MDMA_CxTBR)  ************************/
# 17575 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDMA_CxMAR)  ************************/




/********************  Bit definition for MDMA_CxMDR)  ************************/




/******************************************************************************/
/*                                                                            */
/*                         Operational Amplifier (OPAMP)                      */
/*                                                                            */
/******************************************************************************/
/*********************  Bit definition for OPAMPx_CSR register  ***************/
# 17641 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*********************  Bit definition for OPAMP1_CSR register  ***************/
# 17692 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*********************  Bit definition for OPAMP2_CSR register  ***************/
# 17743 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for OPAMP_OTR register  ******************/







/*******************  Bit definition for OPAMP1_OTR register  ******************/







/*******************  Bit definition for OPAMP2_OTR register  ******************/







/*******************  Bit definition for OPAMP_HSOTR register  ****************/







/*******************  Bit definition for OPAMP1_HSOTR register  ****************/







/*******************  Bit definition for OPAMP2_HSOTR register  ****************/







/******************************************************************************/
/*                                                                            */
/*                             Power Control                                  */
/*                                                                            */
/******************************************************************************/
/*************************  NUMBER OF POWER DOMAINS  **************************/


/********************  Bit definition for PWR_CR1 register  *******************/
# 17832 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< PVD level configuration */
# 17856 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< AVD level configuration */
# 17868 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for PWR_CSR1 register  ******************/
# 17884 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for PWR_CR2 register  *******************/
# 17907 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for PWR_CR3 register  *******************/
# 17944 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for PWR_CPUCR register  *****************/
# 17979 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for PWR_CPU2CR register  ****************/
# 18015 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for PWR_D3CR register  ******************/
# 18025 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for PWR_WKUPCR register  ******************/
# 18045 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for PWR_WKUPFR register  ****************/
# 18065 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for PWR_WKUPEPR register  *****************/
# 18136 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                         Reset and Clock Control                            */
/*                                                                            */
/******************************************************************************/
/*******************************  RCC VERSION  ********************************/


/********************  Bit definition for RCC_CR register  ********************/
# 18221 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*Legacy */







/********************  Bit definition for RCC_HSICFGR register  ***************/
/*!< HSICAL configuration */
# 18247 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< HSITRIM configuration */
# 18260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_CRRCR register  *****************/

/*!< HSI48CAL configuration */
# 18278 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_CSICFGR register  *****************/
/*!< CSICAL configuration */
# 18292 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< CSITRIM configuration */
# 18303 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_CFGR register  ******************/
/*!< SW configuration */
# 18317 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< SWS configuration */
# 18338 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< RTCPRE configuration */
# 18349 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< HRTIMSEL configuration */




/*!< TIMPRE configuration */




/*!< MCO1 configuration */
# 18390 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_D1CFGR register  ******************/
/*!< D1HPRE configuration */
# 18427 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< D1PPRE configuration */
# 18483 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_D2CFGR register  ******************/
/*!< D2PPRE1 configuration */
# 18506 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< D2PPRE2 configuration */
# 18528 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_D3CFGR register  ******************/
/*!< D3PPRE configuration */
# 18551 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_PLLCKSELR register  *************/
# 18598 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_PLLCFGR register  ***************/
# 18673 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_PLL1DIVR register  ***************/
# 18687 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_PLL1FRACR register  ***************/




/********************  Bit definition for RCC_PLL2DIVR register  ***************/
# 18706 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_PLL2FRACR register  ***************/




/********************  Bit definition for RCC_PLL3DIVR register  ***************/
# 18725 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_PLL3FRACR register  ***************/




/********************  Bit definition for RCC_D1CCIPR register  ***************/
# 18753 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_D2CCIP1R register  ***************/
# 18802 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_D2CCIP2R register  ***************/
# 18848 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_D3CCIPR register  ***************/
# 18902 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_CIER register  ******************/
# 18934 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_CIFR register  ******************/
# 18969 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_CICR register  ******************/
# 19004 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_BDCR register  ******************/
# 19040 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_CSR register  *******************/
# 19049 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_AHB3ENR register  **************/
# 19084 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */




/********************  Bit definition for RCC_AHB1ENR register  ***************/
# 19124 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */
# 19133 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_AHB2ENR register  ***************/
# 19153 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */
# 19164 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_AHB4ENR register  ******************/
# 19214 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB3ENR register  ******************/
# 19225 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB1LENR register  ******************/
# 19305 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */



/********************  Bit definition for RCC_APB1HENR register  ******************/
# 19326 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB2ENR register  ******************/
# 19373 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB4ENR register  ******************/
# 19412 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_AHB3RSTR register  ***************/
# 19433 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_AHB1RSTR register  ***************/
# 19456 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */




/********************  Bit definition for RCC_AHB2RSTR register  ***************/
# 19472 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_AHB4RSTR register  ******************/
# 19520 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB3RSTR register  ******************/







/********************  Bit definition for RCC_APB1LRSTR register  ******************/
# 19603 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */



/********************  Bit definition for RCC_APB1HRSTR register  ******************/
# 19624 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB2RSTR register  ******************/
# 19671 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB4RSTR register  ******************/
# 19707 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_GCR register  ********************/
# 19721 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_D3AMR register  ********************/
# 19772 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_AHB3LPENR register  **************/
# 19808 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_AHB1LPENR register  ***************/
# 19843 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */







/********************  Bit definition for RCC_AHB2LPENR register  ***************/
# 19871 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */
# 19882 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_AHB4LPENR register  ******************/
# 19932 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */



/********************  Bit definition for RCC_APB3LPENR register  ******************/
# 19947 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB1LLPENR register  ******************/
# 20027 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */



/********************  Bit definition for RCC_APB1HLPENR register  ******************/
# 20048 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB2LPENR register  ******************/
# 20095 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_APB4LPENR register  ******************/
# 20133 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for RCC_D1CCIPR register  ****************/




/********************  Bit definition for RCC_RSR register  *******************/
# 20190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                                    RNG                                     */
/*                                                                            */
/******************************************************************************/
/********************  Bits definition for RNG_CR register  *******************/
# 20206 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RNG_SR register  *******************/
# 20223 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                           Real-Time Clock (RTC)                            */
/*                                                                            */
/******************************************************************************/
/********************  Bits definition for RTC_TR register  *******************/
# 20271 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_DR register  *******************/
# 20315 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_CR register  *******************/
# 20385 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_ISR register  ******************/
# 20441 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_PRER register  *****************/







/********************  Bits definition for RTC_WUTR register  *****************/




/********************  Bits definition for RTC_ALRMAR register  ***************/
# 20524 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_ALRMBR register  ***************/
# 20594 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_WPR register  ******************/




/********************  Bits definition for RTC_SSR register  ******************/




/********************  Bits definition for RTC_SHIFTR register  ***************/







/********************  Bits definition for RTC_TSTR register  *****************/
# 20655 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_TSDR register  *****************/
# 20685 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_TSSSR register  ****************/




/********************  Bits definition for RTC_CALR register  *****************/
# 20713 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_TAMPCR register  ***************/
# 20785 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_ALRMASSR register  *************/
# 20797 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_ALRMBSSR register  *************/
# 20809 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bits definition for RTC_OR register  *******************/







/********************  Bits definition for RTC_BKP0R register  ****************/




/********************  Bits definition for RTC_BKP1R register  ****************/




/********************  Bits definition for RTC_BKP2R register  ****************/




/********************  Bits definition for RTC_BKP3R register  ****************/




/********************  Bits definition for RTC_BKP4R register  ****************/




/********************  Bits definition for RTC_BKP5R register  ****************/




/********************  Bits definition for RTC_BKP6R register  ****************/




/********************  Bits definition for RTC_BKP7R register  ****************/




/********************  Bits definition for RTC_BKP8R register  ****************/




/********************  Bits definition for RTC_BKP9R register  ****************/




/********************  Bits definition for RTC_BKP10R register  ***************/




/********************  Bits definition for RTC_BKP11R register  ***************/




/********************  Bits definition for RTC_BKP12R register  ***************/




/********************  Bits definition for RTC_BKP13R register  ***************/




/********************  Bits definition for RTC_BKP14R register  ***************/




/********************  Bits definition for RTC_BKP15R register  ***************/




/********************  Bits definition for RTC_BKP16R register  ***************/




/********************  Bits definition for RTC_BKP17R register  ***************/




/********************  Bits definition for RTC_BKP18R register  ***************/




/********************  Bits definition for RTC_BKP19R register  ***************/




/********************  Bits definition for RTC_BKP20R register  ***************/




/********************  Bits definition for RTC_BKP21R register  ***************/




/********************  Bits definition for RTC_BKP22R register  ***************/




/********************  Bits definition for RTC_BKP23R register  ***************/




/********************  Bits definition for RTC_BKP24R register  ***************/




/********************  Bits definition for RTC_BKP25R register  ***************/




/********************  Bits definition for RTC_BKP26R register  ***************/




/********************  Bits definition for RTC_BKP27R register  ***************/




/********************  Bits definition for RTC_BKP28R register  ***************/




/********************  Bits definition for RTC_BKP29R register  ***************/




/********************  Bits definition for RTC_BKP30R register  ***************/




/********************  Bits definition for RTC_BKP31R register  ***************/




/******************** Number of backup registers ******************************/




/******************************************************************************/
/*                                                                            */
/*                              SPDIF-RX Interface                            */
/*                                                                            */
/******************************************************************************/
/********************  Bit definition for SPDIF_CR register  ******************/
# 21034 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPDIFRX_IMR register  *******************/
# 21057 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPDIFRX_SR register  *******************/
# 21089 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPDIFRX_IFCR register  *******************/
# 21103 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPDIFRX_DR register  (DRFMT = 0b00 case) *******************/
# 21123 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPDIFRX_DR register  (DRFMT = 0b01 case) *******************/
# 21143 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPDIFRX_DR register  (DRFMT = 0b10 case) *******************/







/*******************  Bit definition for SPDIFRX_CSR register   *******************/
# 21162 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPDIFRX_DIR register    *******************/







/*******************  Bit definition for SPDIFRX_VERR register    *******************/







/*******************  Bit definition for SPDIFRX_IDR register    *******************/




/*******************  Bit definition for SPDIFRX_SIDR register    *******************/




/******************************************************************************/
/*                                                                            */
/*                          Serial Audio Interface                            */
/*                                                                            */
/******************************************************************************/
/*******************************  SAI VERSION  ********************************/


/********************  Bit definition for SAI_GCR register  *******************/
# 21209 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SAI_xCR1 register  *******************/
# 21276 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */


/*******************  Bit definition for SAI_xCR2 register  *******************/
# 21320 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SAI_xFRCR register  *******************/
# 21354 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */


/******************  Bit definition for SAI_xSLOTR register  *******************/
# 21385 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SAI_xIMR register  *******************/
# 21408 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for SAI_xSR register  *******************/
# 21438 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SAI_xCLRFR register  ******************/
# 21461 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SAI_xDR register  *********************/




/*******************  Bit definition for SAI_PDMCR register  ******************/
# 21490 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SAI_PDMDLY register  ******************/
# 21547 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                           SDMMC Interface                                  */
/*                                                                            */
/******************************************************************************/
/******************  Bit definition for SDMMC_POWER register  ******************/
# 21568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SDMMC_CLKCR register  ******************/
# 21600 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SDMMC_ARG register  *******************/




/*******************  Bit definition for SDMMC_CMD register  *******************/
# 21644 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for SDMMC_RESPCMD register  *****************/




/******************  Bit definition for SDMMC_RESP0 register  ******************/




/******************  Bit definition for SDMMC_RESP1 register  ******************/




/******************  Bit definition for SDMMC_RESP2 register  ******************/




/******************  Bit definition for SDMMC_RESP3 register  ******************/




/******************  Bit definition for SDMMC_RESP4 register  ******************/




/******************  Bit definition for SDMMC_DTIMER register  *****************/




/******************  Bit definition for SDMMC_DLEN register  *******************/




/******************  Bit definition for SDMMC_DCTRL register  ******************/
# 21724 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SDMMC_DCOUNT register  *****************/




/******************  Bit definition for SDMMC_STA register  ********************/
# 21818 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SDMMC_ICR register  *******************/
# 21880 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SDMMC_MASK register  *******************/
# 21954 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for SDMMC_ACKTIME register  *****************/




/******************  Bit definition for SDMMC_FIFO register  *******************/




/******************  Bit definition for SDMMC_IDMACTRL register ****************/
# 21975 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for SDMMC_IDMABSIZE register  ***************/




/*****************  Bit definition for SDMMC_IDMABASE0 register  ***************/


/*****************  Bit definition for SDMMC_IDMABASE1 register  ***************/


/******************************************************************************/
/*                                                                            */
/*                        Delay Block Interface (DLYB)                        */
/*                                                                            */
/******************************************************************************/
/*******************  Bit definition for DLYB_CR register  ********************/
# 22000 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for DLYB_CFGR register  ********************/
# 22040 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                   Serial Peripheral Interface (SPI/I2S)                    */
/*                                                                            */
/******************************************************************************/
/*******************  Bit definition for SPI_CR1 register  ********************/
# 22077 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPI_CR2 register  ********************/







/*******************  Bit definition for SPI_CFG1 register  ********************/
# 22143 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPI_CFG2 register  ********************/
# 22207 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPI_IER register  ********************/
# 22242 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPI_SR register  ********************/
# 22294 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPI_IFCR register  ********************/
# 22323 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SPI_TXDR register  ********************/




/*******************  Bit definition for SPI_RXDR register  ********************/




/*******************  Bit definition for SPI_CRCPOLY register  ********************/




/*******************  Bit definition for SPI_TXCRC register  ********************/




/*******************  Bit definition for SPI_RXCRC register  ********************/




/*******************  Bit definition for SPI_UDRDR register  ********************/




/******************  Bit definition for SPI_I2SCFGR register  *****************/
# 22402 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                                    QUADSPI                                 */
/*                                                                            */
/******************************************************************************/
/*****************  Bit definition for QUADSPI_CR register  *******************/
# 22470 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for QUADSPI_DCR register  ******************/
# 22489 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for QUADSPI_SR register  *******************/
# 22518 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for QUADSPI_FCR register  ******************/
# 22532 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for QUADSPI_DLR register  ******************/




/******************  Bit definition for QUADSPI_CCR register  ******************/
# 22602 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for QUADSPI_AR register  *******************/




/******************  Bit definition for QUADSPI_ABR register  ******************/




/******************  Bit definition for QUADSPI_DR register  *******************/




/******************  Bit definition for QUADSPI_PSMKR register  ****************/




/******************  Bit definition for QUADSPI_PSMAR register  ****************/




/******************  Bit definition for QUADSPI_PIR register  *****************/




/******************  Bit definition for QUADSPI_LPTR register  *****************/




/******************************************************************************/
/*                                                                            */
/*                                 SYSCFG                                     */
/*                                                                            */
/******************************************************************************/

/******************  Bit definition for SYSCFG_PMCR register  ******************/
# 22695 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for SYSCFG_EXTICR1 register  ***************/
# 22708 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI0 configuration
  */
# 22723 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI1 configuration
  */
# 22737 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI2 configuration
  */
# 22752 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI3 configuration
  */
# 22767 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for SYSCFG_EXTICR2 register  ***************/
# 22780 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI4 configuration
  */
# 22794 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI5 configuration
  */
# 22808 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI6 configuration
  */
# 22823 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI7 configuration
  */
# 22838 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for SYSCFG_EXTICR3 register  ***************/
# 22852 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI8 configuration
  */
# 22867 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI9 configuration
  */
# 22882 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI10 configuration
  */
# 22897 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI11 configuration
  */
# 22912 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*****************  Bit definition for SYSCFG_EXTICR4 register  ***************/
# 22925 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI12 configuration
  */
# 22939 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI13 configuration
  */
# 22953 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI14 configuration
  */
# 22967 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @brief   EXTI15 configuration
  */
# 22982 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SYSCFG_CFGR register  ******************/
# 23020 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SYSCFG_CCCSR register  ******************/
# 23034 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SYSCFG_CCVR register  *******************/







/******************  Bit definition for SYSCFG_CCCR register  *******************/






/******************  Bit definition for SYSCFG_PWRCR register  *******************/




/******************  Bit definition for SYSCFG_PKGR register  *******************/




/******************  Bit definition for SYSCFG_UR0 register  *******************/







/******************  Bit definition for SYSCFG_UR1 register  *******************/






/******************  Bit definition for SYSCFG_UR2 register  *******************/
# 23083 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SYSCFG_UR3 register  *******************/
# 23092 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SYSCFG_UR4 register  *******************/
# 23102 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SYSCFG_UR5 register  *******************/







/******************  Bit definition for SYSCFG_UR6 register  *******************/







/******************  Bit definition for SYSCFG_UR7 register  *******************/







/******************  Bit definition for SYSCFG_UR8 register  *******************/







/******************  Bit definition for SYSCFG_UR9 register  *******************/







/******************  Bit definition for SYSCFG_UR10 register  *******************/







/******************  Bit definition for SYSCFG_UR11 register  *******************/







/******************  Bit definition for SYSCFG_UR12 register  *******************/
# 23167 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for SYSCFG_UR13 register  *******************/







/******************  Bit definition for SYSCFG_UR14 register  *******************/







/******************  Bit definition for SYSCFG_UR15 register  *******************/







/******************  Bit definition for SYSCFG_UR16 register  *******************/







/******************  Bit definition for SYSCFG_UR17 register  *******************/





/******************************************************************************/
/*                                                                            */
/*                                    TIM                                     */
/*                                                                            */
/******************************************************************************/


/*******************  Bit definition for TIM_CR1 register  ********************/
# 23249 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_CR2 register  ********************/
# 23306 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_SMCR register  *******************/
# 23349 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_DIER register  *******************/
# 23396 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for TIM_SR register  ********************/
# 23446 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_EGR register  ********************/
# 23476 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for TIM_CCMR1 register  *******************/
# 23527 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*----------------------------------------------------------------------------*/
# 23557 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for TIM_CCMR2 register  *******************/
# 23608 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*----------------------------------------------------------------------------*/
# 23638 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_CCER register  *******************/
# 23696 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_CNT register  ********************/






/*******************  Bit definition for TIM_PSC register  ********************/




/*******************  Bit definition for TIM_ARR register  ********************/




/*******************  Bit definition for TIM_RCR register  ********************/




/*******************  Bit definition for TIM_CCR1 register  *******************/




/*******************  Bit definition for TIM_CCR2 register  *******************/




/*******************  Bit definition for TIM_CCR3 register  *******************/




/*******************  Bit definition for TIM_CCR4 register  *******************/




/*******************  Bit definition for TIM_CCR5 register  *******************/
# 23752 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_CCR6 register  *******************/




/*******************  Bit definition for TIM_BDTR register  *******************/
# 23809 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_DCR register  ********************/
# 23828 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_DMAR register  *******************/




/******************  Bit definition for TIM_CCMR3 register  *******************/
# 23871 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM1_AF1 register  *********************/
# 23902 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM1_AF2 register  *********************/
# 23925 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM_TISEL register  *********************/
# 23958 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM8_AF1 register  *********************/
# 23988 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM8_AF2 register  *********************/
# 24011 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM2_AF1 register  *********************/
# 24020 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM3_AF1 register  *********************/
# 24029 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM5_AF1 register  *********************/
# 24038 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM15_AF1 register  *********************/
# 24061 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM16_ register  *********************/
# 24084 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for TIM17_AF1 register  *********************/
# 24107 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                         Low Power Timer (LPTTIM)                           */
/*                                                                            */
/******************************************************************************/
/******************  Bit definition for LPTIM_ISR register  *******************/
# 24135 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for LPTIM_ICR register  *******************/
# 24158 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for LPTIM_IER register ********************/
# 24181 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for LPTIM_CFGR register *******************/
# 24243 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for LPTIM_CR register  ********************/
# 24261 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for LPTIM_CMP register  *******************/




/******************  Bit definition for LPTIM_ARR register  *******************/




/******************  Bit definition for LPTIM_CNT register  *******************/




/******************  Bit definition for LPTIM_CFGR2 register  *****************/
# 24288 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                      Analog Comparators (COMP)                             */
/*                                                                            */
/******************************************************************************/

/*******************  Bit definition for COMP_SR register  ********************/
# 24307 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for COMP_ICFR register  ********************/






/*******************  Bit definition for COMP_OR register  ********************/
# 24349 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*!< ******************  Bit definition for COMP_CFGRx register  ********************/
# 24398 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*      Universal Synchronous Asynchronous Receiver Transmitter (USART)       */
/*                                                                            */
/******************************************************************************/
/******************  Bit definition for USART_CR1 register  *******************/
# 24490 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Legacy define */



/******************  Bit definition for USART_CR2 register  *******************/
# 24560 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for USART_CR3 register  *******************/
# 24645 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for USART_BRR register  *******************/







/******************  Bit definition for USART_GTPR register  ******************/







/*******************  Bit definition for USART_RTOR register  *****************/







/*******************  Bit definition for USART_RQR register  ******************/
# 24686 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for USART_ISR register  ******************/
# 24772 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for USART_ICR register  ******************/
# 24819 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for USART_RDR register  ******************/




/*******************  Bit definition for USART_TDR register  ******************/




/*******************  Bit definition for USART_PRESC register  ******************/
# 24838 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*           Single Wire Protocol Master Interface (SWPMI)                    */
/*                                                                            */
/******************************************************************************/

/*******************  Bit definition for SWPMI_CR register   ********************/
# 24870 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SWPMI_BRR register  ********************/




/*******************  Bit definition for SWPMI_ISR register  ********************/
# 24913 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SWPMI_ICR register  ********************/
# 24939 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SWPMI_IER register  ********************/
# 24971 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for SWPMI_RFL register  ********************/





/*******************  Bit definition for SWPMI_TDR register  ********************/




/*******************  Bit definition for SWPMI_RDR register  ********************/





/*******************  Bit definition for SWPMI_OR register  ********************/







/******************************************************************************/
/*                                                                            */
/*                            Window WATCHDOG                                 */
/*                                                                            */
/******************************************************************************/
/*******************  Bit definition for WWDG_CR register  ********************/
# 25017 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for WWDG_CFR register  *******************/
# 25040 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for WWDG_SR register  ********************/





/******************************************************************************/
/*                                                                            */
/*                                DBG                                         */
/*                                                                            */
/******************************************************************************/
/*********************************  DEVICE ID  ********************************/


/********************  Bit definition for DBGMCU_IDCODE register  *************/







/********************  Bit definition for DBGMCU_CR register  *****************/
# 25094 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for APB3FZ1 register  ************/



/********************  Bit definition for APB3FZ2 register  ************/



/********************  Bit definition for APB1LFZ1 register  ************/
# 25146 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for APB1LFZ2 register  ************/
# 25189 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for APB1HFZ1 register  ************/



/********************  Bit definition for APB1HFZ2 register  ************/




/********************  Bit definition for APB2FZ1 register  ************/
# 25218 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for APB2FZ2 register  ************/
# 25237 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for APB4FZ1 register  ************/
# 25262 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for APB4FZ2 register  ************/
# 25287 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                        High Resolution Timer (HRTIM)                       */
/*                                                                            */
/******************************************************************************/
/******************** Master Timer control register ***************************/
# 25370 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************** Master Timer Interrupt status register ******************/
# 25393 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************** Master Timer Interrupt clear register *******************/
# 25416 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************** Master Timer DMA/Interrupt enable register **************/
# 25461 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_MCNTR register  ****************/




/*******************  Bit definition for HRTIM_MPER register  *****************/




/*******************  Bit definition for HRTIM_MREP register  *****************/




/*******************  Bit definition for HRTIM_MCMP1R register  *****************/




/*******************  Bit definition for HRTIM_MCMP2R register  *****************/




/*******************  Bit definition for HRTIM_MCMP3R register  *****************/




/*******************  Bit definition for HRTIM_MCMP4R register  *****************/




/******************** Slave control register **********************************/
# 25577 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************** Slave Interrupt status register **************************/
# 25639 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************** Slave Interrupt clear register **************************/
# 25683 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************** Slave DMA/Interrupt enable register *********************/
# 25770 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for HRTIM_CNTR register  ****************/




/*******************  Bit definition for HRTIM_PER register  *****************/




/*******************  Bit definition for HRTIM_REP register  *****************/




/*******************  Bit definition for HRTIM_CMP1R register  *****************/




/*******************  Bit definition for HRTIM_CMP1CR register  *****************/




/*******************  Bit definition for HRTIM_CMP2R register  *****************/




/*******************  Bit definition for HRTIM_CMP3R register  *****************/




/*******************  Bit definition for HRTIM_CMP4R register  *****************/




/*******************  Bit definition for HRTIM_CPT1R register  ****************/




/*******************  Bit definition for HRTIM_CPT2R register  ****************/




/******************** Bit definition for Slave Deadtime register **************/
# 25870 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Output 1 set register **************************/
# 25972 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Output 1 reset register ************************/
# 26075 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Output 2 set register **************************/
# 26177 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Output 2 reset register ************************/
# 26279 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave external event filtering  register 1 ***********/
# 26335 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave external event filtering  register 2 ***********/
# 26391 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Timer reset register ***************************/
# 26449 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Slave Timer A reset enable bits upon other slave timers events */
# 26490 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Slave Timer B reset enable bits upon other slave timers events */
# 26531 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Slave Timer C reset enable bits upon other slave timers events */
# 26572 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Slave Timer D reset enable bits upon other slave timers events */
# 26613 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Slave Timer E reset enable bits upon other slave timers events */
# 26654 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Timer Chopper register *************************/
# 26678 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Timer Capture 1 control register ***************/
# 26781 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Timer Capture 2 control register ***************/
# 26884 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Timer Output register **************************/
# 26940 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Slave Timer Fault register ***************************/
# 26960 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer control register 1 ****************/
# 27004 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer control register 2 ****************/
# 27042 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer interrupt status register *********/
# 27065 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer interrupt clear register **********/
# 27088 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer interrupt enable register *********/
# 27111 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer output enable register ************/
# 27143 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer output disable register ***********/
# 27175 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer output disable status register *****/
# 27207 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer Burst mode control register ********/
# 27253 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**** Bit definition for Common HRTIM Timer Burst mode Trigger register *******/
# 27351 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_BMCMPR register  ***************/




/*******************  Bit definition for HRTIM_BMPER register  ****************/




/*******************  Bit definition for HRTIM_EECR1 register  ****************/
# 27447 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_EECR2 register  ****************/
# 27518 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_EECR3 register  ****************/
# 27560 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_ADC1R register  ****************/
# 27658 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_ADC2R register  ****************/
# 27756 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_ADC3R register  ****************/
# 27854 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_ADC4R register  ****************/
# 27952 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_FLTINR1 register  ***************/
# 28033 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_FLTINR2 register  ***************/
# 28059 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_BDMUPR register  ***************/
# 28091 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_BDTUPR register  ***************/
# 28156 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for HRTIM_BDMADR register  ***************/




/******************************************************************************/
/*                                                                            */
/*                             RAM ECC monitoring                             */
/*                                                                            */
/******************************************************************************/
/******************  Bit definition for RAMECC_IER register  ******************/
# 28180 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for RAMECC_CR register  ******************/
# 28194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*******************  Bit definition for RAMECC_SR register  ******************/
# 28205 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************  Bit definition for RAMECC_FAR register  ******************/




/******************  Bit definition for RAMECC_FDRL register  *****************/




/******************  Bit definition for RAMECC_FDRH register  *****************/




/*****************  Bit definition for RAMECC_FECR register  ******************/




/******************************************************************************/
/*                                                                            */
/*                                MDIOS                                        */
/*                                                                            */
/******************************************************************************/
/********************  Bit definition for MDIOS_CR register  *******************/
# 28255 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDIOS_SR register  *******************/
# 28266 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for MDIOS_CLRFR register  *******************/
# 28277 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************************************************************/
/*                                                                            */
/*                                       USB_OTG                              */
/*                                                                            */
/******************************************************************************/
/********************  Bit definition forUSB_OTG_GOTGCTL register  ********************/
# 28341 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HCFG register  ********************/
# 28352 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DCFG register  ********************/
# 28394 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_PCGCR register  ********************/
# 28405 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_GOTGINT register  ********************/
# 28425 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DCTL register  ********************/
# 28467 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HFIR register  ********************/




/********************  Bit definition forUSB_OTG_HFNUM register  ********************/







/********************  Bit definition forUSB_OTG_DSTS register  ********************/
# 28497 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_GAHBCFG register  ********************/
# 28520 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_GUSBCFG register  ********************/
# 28585 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_GRSTCTL register  ********************/
# 28617 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DIEPMSK register  ********************/
# 28643 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HPTXSTS register  ********************/
# 28672 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HAINT register  ********************/




/********************  Bit definition forUSB_OTG_DOEPMSK register  ********************/
# 28715 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_GINTSTS register  ********************/
# 28801 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_GINTMSK register  ********************/
# 28887 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DAINT register  ********************/







/********************  Bit definition forUSB_OTG_HAINTMSK register  ********************/




/********************  Bit definition for USB_OTG_GRXSTSP register  ********************/
# 28914 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DAINTMSK register  ********************/







/********************  Bit definition for OTG register  ********************/
# 28965 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_GRXFSIZ register  ********************/




/********************  Bit definition forUSB_OTG_DVBUSDIS register  ********************/




/********************  Bit definition for OTG register  ********************/
# 28989 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DVBUSPULSE register  ********************/




/********************  Bit definition forUSB_OTG_GNPTXSTS register  ********************/
# 29022 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DTHRCTL register  ********************/
# 29062 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DIEPEMPMSK register  ********************/




/********************  Bit definition forUSB_OTG_DEACHINT register  ********************/







/********************  Bit definition forUSB_OTG_GCCFG register  ********************/
# 29107 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_GPWRDN) register  ********************/







/********************  Bit definition forUSB_OTG_DEACHINTMSK register  ********************/







/********************  Bit definition forUSB_OTG_CID register  ********************/




/********************  Bit definition for USB_OTG_GLPMCFG register  ********************/
# 29175 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DIEPEACHMSK1 register  ********************/
# 29204 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HPRT register  ********************/
# 29256 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DOEPEACHMSK1 register  ********************/
# 29291 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HPTXFSIZ register  ********************/







/********************  Bit definition forUSB_OTG_DIEPCTL register  ********************/
# 29348 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HCCHAR register  ********************/
# 29399 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HCSPLT register  ********************/
# 29435 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HCINT register  ********************/
# 29470 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DIEPINT register  ********************/
# 29511 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HCINTMSK register  ********************/
# 29546 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for USB_OTG_DIEPTSIZ register  ********************/
# 29557 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_HCTSIZ register  ********************/
# 29573 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DIEPDMA register  ********************/




/********************  Bit definition forUSB_OTG_HCDMA register  ********************/




/********************  Bit definition forUSB_OTG_DTXFSTS register  ********************/




/********************  Bit definition forUSB_OTG_DIEPTXF register  ********************/







/********************  Bit definition forUSB_OTG_DOEPCTL register  ********************/
# 29637 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DOEPINT register  ********************/
# 29675 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition forUSB_OTG_DOEPTSIZ register  ********************/
# 29690 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************  Bit definition for PCGCCTL register  ********************/
# 29701 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/**
  * @}
  */

/**
  * @}
  */

/** @addtogroup Exported_macros
  * @{
  */

/******************************* ADC Instances ********************************/
# 29723 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************** COMP Instances ******************************/




/******************** COMP Instances with window mode capability **************/



/******************************* CRC Instances ********************************/


/******************************* DAC Instances ********************************/

/******************************* DCMI Instances *******************************/


/******************************* DELAYBLOCK Instances *******************************/



/****************************** DFSDM Instances *******************************/
# 29758 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************************** RAMECC Instances ******************************/
# 29772 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************** DMA Instances *******************************/
# 29798 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************************** BDMA CHANNEL Instances ***************************/
# 29808 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************************** DMA DMAMUX ALL Instances ***************************/
# 29834 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************************** BDMA DMAMUX Instances ***************************/
# 29844 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************************** DMA STREAM Instances ***************************/
# 29862 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************************** DMA DMAMUX Instances ***************************/
# 29880 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************** DMA Request Generator Instances **************/
# 29898 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************* DMA2D Instances *******************************/


/******************************** MDMA Request Generator Instances **************/
# 29919 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************* QUADSPI Instances *******************************/


/******************************* FDCAN Instances ******************************/





/******************************* GPIO Instances *******************************/
# 29941 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************* GPIO AF Instances ****************************/


/**************************** GPIO Lock Instances *****************************/
/* On H7, all GPIO Bank support the Lock mechanism */


/******************************** HSEM Instances *******************************/

/********************  Bit definition for HSEM_CR register  *****************/
# 29970 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************** I2C Instances *******************************/





/****************************** SMBUS Instances *******************************/





/************** I2C Instances : wakeup capability from stop modes *************/


/******************************** I2S Instances *******************************/




/****************************** LTDC Instances ********************************/


/******************************* RNG Instances ********************************/


/****************************** RTC Instances *********************************/


/****************************** SDMMC Instances *********************************/



/******************************** SPI Instances *******************************/
# 30015 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************************** SWPMI Instances *****************************/


/****************** LPTIM Instances : All supported instances *****************/






/****************** LPTIM Instances : supporting encoder interface **************/



/****************** TIM Instances : All supported instances *******************/
# 30045 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/************* TIM Instances : at least 1 capture/compare channel *************/
# 30059 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/************ TIM Instances : at least 2 capture/compare channels *************/
# 30069 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/************ TIM Instances : at least 3 capture/compare channels *************/







/************ TIM Instances : at least 4 capture/compare channels *************/







/************ TIM Instances : at least 5 capture/compare channels *************/


/************ TIM Instances : at least 6 capture/compare channels *************/



/******************** TIM Instances : Advanced-control timers *****************/



/******************** TIM Instances : Advanced-control timers *****************/

/******************* TIM Instances : Timer input XOR function *****************/
# 30107 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : DMA requests generation (UDE) *************/
# 30120 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/************ TIM Instances : DMA requests generation (CCxDE) *****************/
# 30131 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/************ TIM Instances : DMA requests generation (COMDE) *****************/
# 30140 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************** TIM Instances : DMA burst feature ***********************/







/*************** TIM Instances : external trigger reamp input available *******/







/****************** TIM Instances : remapping capability **********************/
# 30165 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*************** TIM Instances : external trigger reamp input available *******/






/****** TIM Instances : master mode available (TIMx_CR2.MMS available )********/
# 30184 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****** TIM Instances : Salve mode available (TIMx_SMCR.TS available )*********/
# 30194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****** TIM Instances : TRGO2 available (TIMx_CR2.MMS2 available )*********/



/****** TIM Instances : TISEL available (TIMx_TISEL available )*********/
# 30209 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting commutation event *************/






/****************** TIM Instances : supporting encoder interface **************/







/****** TIM Instances : TIM_CCR5_GC5C available (TIMx_CCR5.GC5C available )*********/


/******************* TIM Instances : output(s) available **********************/
# 30289 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting the break function *************/







/************** TIM Instances : supporting Break source selection *************/



/****************** TIM Instances : supporting complementary output(s) ********/
# 30322 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting counting mode selection ********/
# 30331 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting repetition counter *************/







/****************** TIM Instances : supporting synchronization ****************/
# 30351 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting clock division *****************/
# 30363 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting external clock mode 1 for ETRF input */
# 30372 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting external clock mode 2 **********/
# 30381 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting external clock mode 1 for TIX inputs*/
# 30392 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting internal trigger inputs(ITRX) *******/
# 30403 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** TIM Instances : supporting OCxREF clear *******************/





/****************** TIM Instances : TIM_32B_COUNTER ***************************/




/****************** TIM Instances : TIM_BKIN2 ***************************/




/****************** TIM Instances : supporting Hall sensor interface **********/
# 30428 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************************** HRTIM Instances *******************************/


/******************** USART Instances : Synchronous mode **********************/





/******************** USART Instances : SPI slave mode ************************/





/******************** UART Instances : Asynchronous mode **********************/
# 30453 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************** UART Instances : FIFO mode.******************************/
# 30463 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** UART Instances : Auto Baud Rate detection *****************/
# 30473 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/*********************** UART Instances : Driver Enable ***********************/
# 30484 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************* UART Instances : Half-Duplex mode **********************/
# 30495 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/******************* UART Instances : Hardware Flow control *******************/
# 30506 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/************************* UART Instances : LIN mode **************************/
# 30516 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************** UART Instances : Wake-up from Stop mode *******************/
# 30527 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/************************* UART Instances : IRDA mode *************************/
# 30537 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/********************* USART Instances : Smard card mode **********************/





/****************************** LPUART Instance *******************************/


/****************************** IWDG Instances ********************************/

/****************************** USB Instances ********************************/


/****************************** WWDG Instances ********************************/


/****************************** MDIOS Instances ********************************/


/****************************** CEC Instances *********************************/


/****************************** SAI Instances ********************************/
# 30570 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/****************************** SPDIFRX Instances ********************************/


/****************************** OPAMP Instances *******************************/





/*********************** USB OTG PCD Instances ********************************/



/*********************** USB OTG HCD Instances ********************************/



/******************************************************************************/
/*  For a painless codes migration between the STM32H7xx device product       */
/*  lines, or with STM32F7xx devices the aliases defined below are put        */
/*   in place to overcome the differences in the interrupt handlers and IRQn  */
/*   definitions. No need to update developed interrupt code when moving      */
/*  across product lines within the same STM32H7 Family                       */
/******************************************************************************/

/* Aliases for __IRQn */
# 30604 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h747xx.h"
/* Aliases for __IRQHandler */






/* Aliases for COMP __IRQHandler */


/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 141 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h" 2
# 173 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/**
  * @}
  */

/** @addtogroup Exported_types
  * @{
  */
typedef enum
{
  RESET = 0,
  SET = !RESET
} FlagStatus, ITStatus;

typedef enum
{
  DISABLE = 0,
  ENABLE = !DISABLE
} FunctionalState;


typedef enum
{
  SUCCESS = 0,
  ERROR = !SUCCESS
} ErrorStatus;

/**
  * @}
  */


/** @addtogroup Exported_macros
  * @{
  */
# 223 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/* Use of CMSIS compiler intrinsics for register exclusive access */
/* Atomic 32-bit register access macro to set one or several bits */
# 233 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/* Atomic 32-bit register access macro to clear one or several bits */
# 242 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/* Atomic 32-bit register access macro to clear and set one or several bits */
# 251 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/* Atomic 16-bit register access macro to set one or several bits */
# 260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/* Atomic 16-bit register access macro to clear one or several bits */
# 269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/* Atomic 16-bit register access macro to clear and set one or several bits */
# 278 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/**
  * @}
  */


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal.h
  * @author  MCD Application Team
  * @brief   This file contains all the functions prototypes for the HAL
  *          module driver.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_conf_template.h
  * @author  MCD Application Team
  * @brief   HAL configuration template file.
  *          This file should be copied to the application folder and renamed
  *          to stm32h7xx_hal_conf.h.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/

/* ########################## Module Selection ############################## */
/**
  * @brief This is the list of modules to be used in the HAL driver
  */
# 100 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h"
/* ########################## Oscillator Values adaptation ####################*/
/**
  * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
  *        This value is used by the RCC HAL module to compute the system frequency
  *        (when HSE is used as system clock source, directly or through the PLL).
  */
# 114 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h"
/**
  * @brief Internal  oscillator (CSI) default value.
  *        This value is the default CSI value after Reset.
  */




/**
  * @brief Internal High Speed oscillator (HSI) value.
  *        This value is used by the RCC HAL module to compute the system frequency
  *        (when HSI is used as system clock source, directly or through the PLL).
  */




/**
  * @brief External Low Speed oscillator (LSE) value.
  *        This value is used by the UART, RTC HAL module to compute the system frequency
  */
# 150 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h"
/**
  * @brief External clock source for I2S peripheral
  *        This value is used by the I2S HAL module to compute the I2S clock source
  *        frequency, this source is inserted directly through I2S_CKIN pad.
  */




/* Tip: To avoid modifying this file each time you need to use different HSE,
   ===  you can define the HSE value in your toolchain compiler preprocessor. */

/* ########################### System Configuration ######################### */
/**
  * @brief This is the HAL system configuration section
  */
# 225 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h"
/* ########################### Ethernet Configuration ######################### */
# 236 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h"
/* ########################## Assert Selection ############################## */
/**
  * @brief Uncomment the line below to expanse the "assert_param" macro in the
  *        HAL drivers code
  */
/* #define USE_FULL_ASSERT    1 */


/* Includes ------------------------------------------------------------------*/
/**
  * @brief Include module's header file
  */


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_rcc.h
  * @author  MCD Application Team
  * @brief   Header file of RCC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file in
  * the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx.h
  * @author  MCD Application Team
  * @brief   CMSIS STM32H7xx Device Peripheral Access Layer Header File.
  *
  *          The file is the unique include file that the application programmer
  *          is using in the C source code, usually in main.c. This file contains:
  *           - Configuration section that allows to select:
  *              - The STM32H7xx device used in the target application
  *              - To use or not the peripheral's drivers in application code(i.e.
  *                code will be based on direct access to peripheral's registers
  *                rather than drivers API), this option is controlled by
  *                "#define USE_HAL_DRIVER"
  *
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/** @addtogroup CMSIS
  * @{
  */

/** @addtogroup stm32h7xx
  * @{
  */
# 292 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/**
  * @}
  */

/**
  * @}
  */
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h" 1
/**
  ******************************************************************************
  * @file    stm32_hal_legacy.h
  * @author  MCD Application Team
  * @brief   This file contains aliases definition for the STM32Cube HAL constants
  *          macros and functions maintained for legacy purpose.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2021 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/

/** @defgroup HAL_AES_Aliased_Defines HAL CRYP Aliased Defines maintained for legacy purpose
  * @{
  */
# 46 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_ADC_Aliased_Defines HAL ADC Aliased Defines maintained for legacy purpose
  * @{
  */
# 115 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_CEC_Aliased_Defines HAL CEC Aliased Defines maintained for legacy purpose
  * @{
  */



/**
  * @}
  */

/** @defgroup HAL_COMP_Aliased_Defines HAL COMP Aliased Defines maintained for legacy purpose
  * @{
  */
# 222 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_CORTEX_Aliased_Defines HAL CORTEX Aliased Defines maintained for legacy purpose
  * @{
  */






/**
  * @}
  */

/** @defgroup CRC_Aliases CRC API aliases
  * @{
  */







/**
  * @}
  */

/** @defgroup HAL_CRC_Aliased_Defines HAL CRC Aliased Defines maintained for legacy purpose
  * @{
  */




/**
  * @}
  */

/** @defgroup HAL_DAC_Aliased_Defines HAL DAC Aliased Defines maintained for legacy purpose
  * @{
  */
# 301 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_DMA_Aliased_Defines HAL DMA Aliased Defines maintained for legacy purpose
  * @{
  */
# 443 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_FLASH_Aliased_Defines HAL FLASH Aliased Defines maintained for legacy purpose
  * @{
  */
# 564 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_JPEG_Aliased_Macros HAL JPEG Aliased Macros maintained for legacy purpose
  * @{
  */
# 581 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_SYSCFG_Aliased_Defines HAL SYSCFG Aliased Defines maintained for legacy purpose
  * @{
  */
# 715 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */


/** @defgroup LL_FMC_Aliased_Defines LL FMC Aliased Defines maintained for compatibility purpose
  * @{
  */
# 734 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup LL_FSMC_Aliased_Defines LL FSMC Aliased Defines maintained for legacy purpose
  * @{
  */



/**
  * @}
  */

/** @defgroup HAL_GPIO_Aliased_Macros HAL GPIO Aliased Macros maintained for legacy purpose
  * @{
  */
# 835 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_GTZC_Aliased_Defines HAL GTZC Aliased Defines maintained for legacy purpose
  * @{
  */
# 863 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_HRTIM_Aliased_Macros HAL HRTIM Aliased Macros maintained for legacy purpose
  * @{
  */
# 1032 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_I2C_Aliased_Defines HAL I2C Aliased Defines maintained for legacy purpose
  * @{
  */
# 1056 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_IRDA_Aliased_Defines HAL IRDA Aliased Defines maintained for legacy purpose
  * @{
  */



/**
  * @}
  */

/** @defgroup HAL_IWDG_Aliased_Defines HAL IWDG Aliased Defines maintained for legacy purpose
  * @{
  */




/**
  * @}
  */

/** @defgroup HAL_LPTIM_Aliased_Defines HAL LPTIM Aliased Defines maintained for legacy purpose
  * @{
  */
# 1099 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/* The following 3 definition have also been present in a temporary version of lptim.h */
/* They need to be renamed also to the right name, just in case */





/** @defgroup HAL_LPTIM_Aliased_Defines HAL LPTIM Aliased Defines maintained for legacy purpose
  * @{
  */

/**
  * @}
  */






/**
  * @}
  */

/** @defgroup HAL_NAND_Aliased_Defines HAL NAND Aliased Defines maintained for legacy purpose
  * @{
  */
# 1138 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_NOR_Aliased_Defines HAL NOR Aliased Defines maintained for legacy purpose
  * @{
  */
# 1153 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_OPAMP_Aliased_Defines HAL OPAMP Aliased Defines maintained for legacy purpose
  * @{
  */
# 1197 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_I2S_Aliased_Defines HAL I2S Aliased Defines maintained for legacy purpose
  * @{
  */
# 1217 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_PCCARD_Aliased_Defines HAL PCCARD Aliased Defines maintained for legacy purpose
  * @{
  */

/* Compact Flash-ATA registers description */
# 1236 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/* Compact Flash-ATA commands */
# 1247 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_RTC_Aliased_Defines HAL RTC Aliased Defines maintained for legacy purpose
  * @{
  */
# 1319 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */


/** @defgroup HAL_SMARTCARD_Aliased_Defines HAL SMARTCARD Aliased Defines maintained for legacy purpose
  * @{
  */
# 1340 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */


/** @defgroup HAL_SMBUS_Aliased_Defines HAL SMBUS Aliased Defines maintained for legacy purpose
  * @{
  */
# 1359 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_SPI_Aliased_Defines HAL SPI Aliased Defines maintained for legacy purpose
  * @{
  */
# 1390 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_TIM_Aliased_Defines HAL TIM Aliased Defines maintained for legacy purpose
  * @{
  */
# 1488 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_TSC_Aliased_Defines HAL TSC Aliased Defines maintained for legacy purpose
  * @{
  */


/**
  * @}
  */

/** @defgroup HAL_UART_Aliased_Defines HAL UART Aliased Defines maintained for legacy purpose
  * @{
  */
# 1527 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */


/** @defgroup HAL_USART_Aliased_Defines HAL USART Aliased Defines maintained for legacy purpose
  * @{
  */






/**
  * @}
  */

/** @defgroup HAL_WWDG_Aliased_Defines HAL WWDG Aliased Defines maintained for legacy purpose
  * @{
  */


/**
  * @}
  */

/** @defgroup HAL_CAN_Aliased_Defines HAL CAN Aliased Defines maintained for legacy purpose
  * @{
  */
# 1568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_ETH_Aliased_Defines HAL ETH Aliased Defines maintained for legacy purpose
  * @{
  */
# 1640 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_DCMI_Aliased_Defines HAL DCMI Aliased Defines maintained for legacy purpose
  * @{
  */
# 1656 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */




/** @defgroup HAL_DMA2D_Aliased_Defines HAL DMA2D Aliased Defines maintained for legacy purpose
  * @{
  */
# 1683 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */





/** @defgroup DMA2D_Aliases DMA2D API Aliases
  * @{
  */


/**
  * @}
  */



/** @defgroup HAL_PPP_Aliased_Defines HAL PPP Aliased Defines maintained for legacy purpose
  * @{
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/

/** @defgroup HAL_CRYP_Aliased_Functions HAL CRYP Aliased Functions maintained for legacy purpose
  * @{
  */

/**
  * @}
  */

/** @defgroup HAL_DCACHE_Aliased_Functions HAL DCACHE Aliased Functions maintained for legacy purpose
  * @{
  */






/**
  * @}
  */


/** @defgroup HASH_alias HASH API alias
  * @{
  */

/**
  *
  * @}
  */

/** @defgroup HAL_HASH_Aliased_Functions HAL HASH Aliased Functions maintained for legacy purpose
  * @{
  */







/*HASH Algorithm Selection*/
# 1789 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_Aliased_Functions HAL Generic Aliased Functions maintained for legacy purpose
  * @{
  */
# 1823 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_FLASH_Aliased_Functions HAL FLASH Aliased Functions maintained for legacy purpose
  * @{
  */
# 1838 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
 */

/** @defgroup HAL_I2C_Aliased_Functions HAL I2C Aliased Functions maintained for legacy purpose
  * @{
  */
# 1881 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
 */

/** @defgroup HAL_PWR_Aliased HAL PWR Aliased maintained for legacy purpose
  * @{
  */
# 2025 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
 */

/** @defgroup HAL_RTC_Aliased_Functions HAL RTC Aliased Functions maintained for legacy purpose
  * @{
  */







/**
  * @}
  */

/** @defgroup HAL_SMBUS_Aliased_Functions HAL SMBUS Aliased Functions maintained for legacy purpose
  * @{
  */



/**
  * @}
  */

/** @defgroup HAL_SPI_Aliased_Functions HAL SPI Aliased Functions maintained for legacy purpose
  * @{
  */

/**
  * @}
  */

/** @defgroup HAL_TIM_Aliased_Functions HAL TIM Aliased Functions maintained for legacy purpose
  * @{
  */
# 2077 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_UART_Aliased_Functions HAL UART Aliased Functions maintained for legacy purpose
  * @{
  */

/**
  * @}
  */

/** @defgroup HAL_LTDC_Aliased_Functions HAL LTDC Aliased Functions maintained for legacy purpose
  * @{
  */




/**
  * @}
  */


/** @defgroup HAL_PPP_Aliased_Functions HAL PPP Aliased Functions maintained for legacy purpose
  * @{
  */

/**
  * @}
  */

/* Exported macros ------------------------------------------------------------*/

/** @defgroup HAL_AES_Aliased_Macros HAL CRYP Aliased Macros maintained for legacy purpose
  * @{
  */



/**
  * @}
  */

/** @defgroup HAL_Aliased_Macros HAL Generic Aliased Macros maintained for legacy purpose
  * @{
  */
# 2145 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */


/** @defgroup HAL_ADC_Aliased_Macros HAL ADC Aliased Macros maintained for legacy purpose
  * @{
  */
# 2230 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_DAC_Aliased_Macros HAL DAC Aliased Macros maintained for legacy purpose
  * @{
  */





/**
  * @}
  */

/** @defgroup HAL_DBGMCU_Aliased_Macros HAL DBGMCU Aliased Macros maintained for legacy purpose
  * @{
  */
# 2314 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_COMP_Aliased_Macros HAL COMP Aliased Macros maintained for legacy purpose
  * @{
  */
# 2491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */
# 2508 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/** @defgroup HAL_DAC_Aliased_Macros HAL DAC Aliased Macros maintained for legacy purpose
  * @{
  */





/**
  * @}
  */

/** @defgroup HAL_FLASH_Aliased_Macros HAL FLASH Aliased Macros maintained for legacy purpose
  * @{
  */
# 2531 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_I2C_Aliased_Macros HAL I2C Aliased Macros maintained for legacy purpose
  * @{
  */
# 2558 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_I2S_Aliased_Macros HAL I2S Aliased Macros maintained for legacy purpose
  * @{
  */
# 2573 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_IRDA_Aliased_Macros HAL IRDA Aliased Macros maintained for legacy purpose
  * @{
  */
# 2592 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */


/** @defgroup HAL_IWDG_Aliased_Macros HAL IWDG Aliased Macros maintained for legacy purpose
  * @{
  */


/**
  * @}
  */


/** @defgroup HAL_LPTIM_Aliased_Macros HAL LPTIM Aliased Macros maintained for legacy purpose
  * @{
  */





/**
  * @}
  */


/** @defgroup HAL_OPAMP_Aliased_Macros HAL OPAMP Aliased Macros maintained for legacy purpose
  * @{
  */
# 2637 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */


/** @defgroup HAL_PWR_Aliased_Macros HAL PWR Aliased Macros maintained for legacy purpose
  * @{
  */
# 2700 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */


/** @defgroup HAL_RCC_Aliased HAL RCC Aliased maintained for legacy purpose
  * @{
  */
# 3407 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/* alias define maintained for legacy */
# 3931 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_RNG_Aliased_Macros HAL RNG Aliased Macros maintained for legacy purpose
  * @{
  */


/**
  * @}
  */

/** @defgroup HAL_RTC_Aliased_Macros HAL RTC Aliased Macros maintained for legacy purpose
  * @{
  */
# 4015 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_SD_Aliased_Macros HAL SD/MMC Aliased Macros maintained for legacy purpose
  * @{
  */
# 4105 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_SMARTCARD_Aliased_Macros HAL SMARTCARD Aliased Macros maintained for legacy purpose
  * @{
  */
# 4125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_SMBUS_Aliased_Macros HAL SMBUS Aliased Macros maintained for legacy purpose
  * @{
  */
# 4140 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_SPI_Aliased_Macros HAL SPI Aliased Macros maintained for legacy purpose
  * @{
  */





/**
  * @}
  */

/** @defgroup HAL_UART_Aliased_Macros HAL UART Aliased Macros maintained for legacy purpose
  * @{
  */
# 4170 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */


/** @defgroup HAL_USART_Aliased_Macros HAL USART Aliased Macros maintained for legacy purpose
  * @{
  */
# 4194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_USB_Aliased_Macros HAL USB Aliased Macros maintained for legacy purpose
  * @{
  */
# 4271 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_TIM_Aliased_Macros HAL TIM Aliased Macros maintained for legacy purpose
  * @{
  */
# 4303 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_ETH_Aliased_Macros HAL ETH Aliased Macros maintained for legacy purpose
  * @{
  */
# 4322 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_LTDC_Aliased_Macros HAL LTDC Aliased Macros maintained for legacy purpose
  * @{
  */


/**
  * @}
  */

/** @defgroup HAL_SAI_Aliased_Macros HAL SAI Aliased Macros maintained for legacy purpose
  * @{
  */
# 4352 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_SPDIFRX_Aliased_Macros HAL SPDIFRX Aliased Macros maintained for legacy purpose
  * @{
  */





/**
  * @}
  */

/** @defgroup HAL_HRTIM_Aliased_Functions HAL HRTIM Aliased Functions maintained for legacy purpose
  * @{
  */
# 4379 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/Legacy/stm32_hal_legacy.h"
/**
  * @}
  */

/** @defgroup HAL_QSPI_Aliased_Macros HAL QSPI Aliased Macros maintained for legacy purpose
  * @{
  */



/**
  * @}
  */

/** @defgroup HAL_Generic_Aliased_Macros HAL Generic Aliased Macros maintained for legacy purpose
  * @{
  */



/**
  * @}
  */

/** @defgroup HAL_PPP_Aliased_Macros HAL PPP Aliased Macros maintained for legacy purpose
  * @{
  */

/**
  * @}
  */


}
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 1 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 2


# 34 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h"
/* Exported types ------------------------------------------------------------*/

/**
  * @brief  HAL Status structures definition
  */
typedef enum
{
  HAL_OK = 0x00,
  HAL_ERROR = 0x01,
  HAL_BUSY = 0x02,
  HAL_TIMEOUT = 0x03
} HAL_StatusTypeDef;

/**
  * @brief  HAL Lock structures definition
  */
typedef enum
{
  HAL_UNLOCKED = 0x00,
  HAL_LOCKED = 0x01
} HAL_LockTypeDef;

/* Exported macro ------------------------------------------------------------*/
# 73 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h"
/** @brief Reset the Handle's State field.
  * @param __HANDLE__: specifies the Peripheral Handle.
  * @note  This macro can be used for the following purpose:
  *          - When the Handle is declared as local variable; before passing it as parameter
  *            to HAL_PPP_Init() for the first time, it is mandatory to use this macro
  *            to set to 0 the Handle's "State" field.
  *            Otherwise, "State" field may have any random value and the first time the function
  *            HAL_PPP_Init() is called, the low level hardware initialization will be missed
  *            (i.e. HAL_PPP_MspInit() will not be executed).
  *          - When there is a need to reconfigure the low level hardware: instead of calling
  *            HAL_PPP_DeInit() then HAL_PPP_Init(), user can make a call to this macro then HAL_PPP_Init().
  *            In this later function, when the Handle's "State" field is set to 0, it will execute the function
  *            HAL_PPP_MspInit() which will reconfigure the low level hardware.
  * @retval None
  */
# 129 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h"
/* Macro to get variable aligned on 4-bytes, for __ICCARM__ the directive "#pragma data_alignment=4" must be used instead */
# 157 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h"
/* Macro to get variable aligned on 32-bytes,needed for cache maintenance purpose */
# 166 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h"
/**
  * @brief  __RAM_FUNC definition
  */
# 189 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h"
/* GNU Compiler
   ------------
  RAM functions are defined using a specific toolchain attribute
   "__attribute__((section(".RamFunc")))".
*/




/**
  * @brief  __NOINLINE definition
  */

/* ARM V4/V5 and V6 & GNU Compiler
   -------------------------------
*/
# 217 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h"
}
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup RCC
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup RCC_Exported_Types RCC Exported Types
  * @{
  */

/**
  * @brief  RCC PLL configuration structure definition
  */
typedef struct
{
  uint32_t PLLState; /*!< The new state of the PLL.
                            This parameter can be a value of @ref RCC_PLL_Config                      */

  uint32_t PLLSource; /*!< RCC_PLLSource: PLL entry clock source.
                            This parameter must be a value of @ref RCC_PLL_Clock_Source               */

  uint32_t PLLM; /*!< PLLM: Division factor for PLL VCO input clock.
                            This parameter must be a number between Min_Data = 1 and Max_Data = 63    */

  uint32_t PLLN; /*!< PLLN: Multiplication factor for PLL VCO output clock.
                            This parameter must be a number between Min_Data = 4 and Max_Data = 512
                            or between Min_Data = 8 and Max_Data = 420(*)
                            (*) : For stm32h7a3xx and stm32h7b3xx family lines.                       */

  uint32_t PLLP; /*!< PLLP: Division factor for system clock.
                            This parameter must be a number between Min_Data = 2 and Max_Data = 128
                          odd division factors are not allowed                                        */

  uint32_t PLLQ; /*!< PLLQ: Division factor for peripheral clocks.
                            This parameter must be a number between Min_Data = 1 and Max_Data = 128   */

  uint32_t PLLR; /*!< PLLR: Division factor for peripheral clocks.
                            This parameter must be a number between Min_Data = 1 and Max_Data = 128   */
  uint32_t PLLRGE; /*!<PLLRGE: PLL1 clock Input range
                         This parameter must be a value of @ref RCC_PLL1_VCI_Range                    */
  uint32_t PLLVCOSEL; /*!<PLLVCOSEL: PLL1 clock Output range
                         This parameter must be a value of @ref RCC_PLL1_VCO_Range                    */

  uint32_t PLLFRACN; /*!<PLLFRACN: Specifies Fractional Part Of The Multiplication Factor for
                        PLL1 VCO It should be a value between 0 and 8191                              */

} RCC_PLLInitTypeDef;

/**
  * @brief  RCC Internal/External Oscillator (HSE, HSI, CSI, LSE and LSI) configuration structure definition
  */
typedef struct
{
  uint32_t OscillatorType; /*!< The oscillators to be configured.
                                      This parameter can be a value of @ref RCC_Oscillator_Type                   */

  uint32_t HSEState; /*!< The new state of the HSE.
                                      This parameter can be a value of @ref RCC_HSE_Config                        */

  uint32_t LSEState; /*!< The new state of the LSE.
                                      This parameter can be a value of @ref RCC_LSE_Config                        */

  uint32_t HSIState; /*!< The new state of the HSI.
                                      This parameter can be a value of @ref RCC_HSI_Config                        */

  uint32_t HSICalibrationValue; /*!< The calibration trimming value.
                                      This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x3F for STM32H7 rev.Y
                                      This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7F for STM32H7 rev.B and above */

  uint32_t LSIState; /*!< The new state of the LSI.
                                      This parameter can be a value of @ref RCC_LSI_Config                        */

  uint32_t HSI48State; /*!< The new state of the HSI48.
                                      This parameter can be a value of @ref RCC_HSI48_Config                      */

  uint32_t CSIState; /*!< The new state of the CSI.
                                      This parameter can be a value of @ref RCC_CSI_Config */

  uint32_t CSICalibrationValue; /*!< The calibration trimming value.
                                      This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x1F for STM32H7 rev.Y
                                      This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x3F for STM32H7 rev.B and above */

  RCC_PLLInitTypeDef PLL;

} RCC_OscInitTypeDef;

/**
  * @brief  RCC System, AHB and APB busses clock configuration structure definition
  */
typedef struct
{
  uint32_t ClockType; /*!< The clock to be configured.
                                       This parameter can be a value of @ref RCC_System_Clock_Type                          */

  uint32_t SYSCLKSource; /*!< The clock source (SYSCLKS) used as system clock.
                                       This parameter can be a value of @ref RCC_System_Clock_Source                        */

  uint32_t SYSCLKDivider; /*!< The system clock  divider. This parameter can be
                                       a value of @ref RCC_SYS_Clock_Source                                                 */

  uint32_t AHBCLKDivider; /*!< The AHB clock (HCLK) divider. This clock is derived from the system clock (SYSCLK).
                                       This parameter can be a value of @ref RCC_HCLK_Clock_Source                          */

  uint32_t APB3CLKDivider; /*!< The APB3 clock (D1PCLK1) divider. This clock is derived from the AHB clock (HCLK).
                                       This parameter can be a value of @ref RCC_APB3_Clock_Source                        */

  uint32_t APB1CLKDivider; /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK).
                                       This parameter can be a value of @ref RCC_APB1_Clock_Source                        */
  uint32_t APB2CLKDivider; /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK).
                                       This parameter can be a value of @ref RCC_APB2_Clock_Source                        */
  uint32_t APB4CLKDivider; /*!< The APB4 clock (D3PCLK1) divider. This clock is derived from the AHB clock (HCLK).
                                       This parameter can be a value of @ref RCC_APB4_Clock_Source                        */
} RCC_ClkInitTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup RCC_Exported_Constants RCC Exported Constants
  * @{
  */

/** @defgroup RCC_Oscillator_Type  RCC Oscillator Type
  * @{
  */
# 168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_HSE_Config  RCC HSE Config
  * @{
  */







/**
  * @}
  */

/** @defgroup RCC_LSE_Config  RCC LSE Config
  * @{
  */







/**
  * @}
  */

/** @defgroup RCC_HSI_Config  RCC HSI Config
  * @{
  */
# 213 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_HSI48_Config  RCC HSI48 Config
  * @{
  */



/**
  * @}
  */

/** @defgroup RCC_LSI_Config  RCC LSI Config
  * @{
  */



/**
  * @}
  */

/** @defgroup RCC_CSI_Config  RCC CSI Config
  * @{
  */




/**
  * @}
  */

/** @defgroup RCC_PLL_Config  RCC PLL Config
  * @{
  */




/**
  * @}
  */


/** @defgroup RCC_PLL_Clock_Source  RCC PLL Clock Source
  * @{
  */




/**
  * @}
  */

/** @defgroup RCC_PLL_Clock_Output  RCC PLL Clock Output
  * @{
  */




/**
  * @}
  */



/** @defgroup RCC_PLL1_VCI_Range  RCC PLL1 VCI Range
  * @{
  */






/**
  * @}
  */


/** @defgroup RCC_PLL1_VCO_Range  RCC PLL1 VCO Range
  * @{
  */



/**
  * @}
  */


/** @defgroup RCC_System_Clock_Type  RCC System Clock Type
  * @{
  */







/**
  * @}
  */

/** @defgroup RCC_System_Clock_Source  RCC System Clock Source
  * @{
  */





/**
  * @}
  */

/** @defgroup RCC_System_Clock_Source_Status System Clock Source Status
  * @{
  */




/**
  * @}
  */

/** @defgroup RCC_SYS_Clock_Source  RCC SYS Clock Source
  * @{
  */
# 370 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */


/** @defgroup RCC_HCLK_Clock_Source  RCC HCLK Clock Source
  * @{
  */
# 399 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_APB3_Clock_Source  RCC APB3 Clock Source
  * @{
  */
# 419 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_APB1_Clock_Source  RCC APB1 Clock Source
  * @{
  */
# 440 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_APB2_Clock_Source  RCC APB2 Clock Source
  * @{
  */
# 460 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_APB4_Clock_Source  RCC APB4 Clock Source
  * @{
  */
# 480 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_RTC_Clock_Source  RCC RTC Clock Source
  * @{
  */
# 554 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */


/** @defgroup RCC_MCO_Index  RCC MCO Index
  * @{
  */



/**
  * @}
  */

/** @defgroup RCC_MCO1_Clock_Source  RCC MCO1 Clock Source
  * @{
  */






/**
  * @}
  */

/** @defgroup RCC_MCO2_Clock_Source  RCC MCO2 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCC_MCOx_Clock_Prescaler  RCC MCOx Clock Prescaler
  * @{
  */
# 616 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_Interrupt  RCC Interrupt
  * @{
  */
# 634 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_Flag  RCC Flag
  *        Elements values convention: XXXYYYYYb
  *           - YYYYY  : Flag position in the register
  *           - XXX  : Register index
  *                 - 001: CR register
  *                 - 010: BDCR register
  *                 - 011: CSR register
  *                 - 100: RSR register
  * @{
  */
/* Flags in the CR register */
# 669 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/* Flags in the BDCR register */


/* Flags in the CSR register */


/* Flags in the RSR register */
# 707 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @defgroup RCC_LSEDrive_Config LSE Drive Config
  * @{
  */




/**
  * @}
  */

/** @defgroup RCC_Stop_WakeUpClock  RCC Stop WakeUpClock
  * @{
  */



/**
  * @}
  */

/** @defgroup RCC_Stop_KernelWakeUpClock  RCC Stop KernelWakeUpClock
  * @{
  */




/**
  * @}
  */
# 750 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/

/** @defgroup RCC_Exported_Macros RCC Exported Macros
  * @{
  */

/** @brief  Enable or disable the AHB3 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 901 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the AHB3 peripheral clock
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 964 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB1 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 1095 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the AHB1 peripheral clock
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 1143 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB2 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 1331 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the AHB2 peripheral clock
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 1417 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB4 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 1616 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the AHB4 peripheral clock
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 1690 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB3 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 1732 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the APB3 peripheral clock
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 1754 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB1 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 2077 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the APB1 peripheral clock
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 2168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB2 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 2348 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the APB2 peripheral clock
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 2410 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB4 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 2576 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the APB4 peripheral clock
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 2640 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/* Exported macros for RCC_C1 -------------------------------------------------*/

/** @brief  Enable or disable the AHB3 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 2710 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB1 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 2817 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB2 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 2903 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB4 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 3056 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB3 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 3090 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB1 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 3368 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB2 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 3510 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB4 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 3627 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/* Exported macros for RCC_C2 -------------------------------------------------*/

/** @brief  Enable or disable the AHB3 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 3739 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB1 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 3846 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB2 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 3933 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB4 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 4086 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB3 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 4120 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB1 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 4398 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB2 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 4540 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the APB4 peripheral clock.
  * @note   After reset, the peripheral clock (used for registers read/write access)
  *         is disabled and the application software has to enable this clock before
  *         using it.
  */
# 4659 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB3 peripheral reset.
  */
# 4730 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Force or release the AHB1 peripheral reset.
  */
# 4774 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Force or release the AHB2 peripheral reset.
  */
# 4839 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Force or release the AHB4 peripheral reset.
  */
# 4908 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Force or release the APB3 peripheral reset.
  */
# 4930 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Force or release the APB1 peripheral reset.
  */
# 5022 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Force or release the APB2 peripheral reset.
  */
# 5088 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Force or release the APB4 peripheral reset.
  */
# 5153 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the AHB3 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 5253 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the AHB3 peripheral clock during Low Poser (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 5348 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the AHB1 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 5401 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the AHB1 peripheral clock during Low Poser (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 5455 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the AHB2 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 5536 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the AHB2 peripheral clock during Low Poser (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 5618 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the AHB4 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 5692 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the AHB4 peripheral clock during Low Poser (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 5766 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB3 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 5790 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the APB3 peripheral clock during Low Poser (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 5814 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB1 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 5911 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the APB1 peripheral clock during Low Poser (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 6003 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB2 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6067 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the APB2 peripheral clock during Low Poser (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 6130 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB4 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Get the enable or disable status of the APB4 peripheral clock during Low Poser (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 6260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the RCC_C1 AHB3 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 6293 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the AHB1 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6322 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the AHB2 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6355 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the AHB4 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6396 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB3 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6411 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB1 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6481 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB2 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6520 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB4 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6554 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable the RCC_C2 AHB3 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is enabled again.
  * @note   By default, all peripheral clocks are enabled during SLEEP mode.
  */
# 6589 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the AHB1 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6618 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the AHB2 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6651 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the AHB4 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6692 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB3 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6707 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB1 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6777 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB2 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6816 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  ENABLE or disable the APB4 peripheral clock during Low Power (Sleep) mode.
  * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
  *         power consumption.
  * @note   After wakeup from SLEEP mode, the peripheral clock is ENABLEd again.
  * @note   By default, all peripheral clocks are ENABLEd during SLEEP mode.
  */
# 6852 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Enable or disable peripheral bus clock  when D3 domain is in DRUN
  * @note   After reset (default config), peripheral clock is disabled when both CPUs are in CSTOP
  */
# 7112 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Macro to enable or disable the Internal High Speed oscillator (HSI).
  * @note     After enabling the HSI, the application software should wait on
  *           HSIRDY flag to be set indicating that HSI clock is stable and can
  *           be used to clock the PLL and/or system clock.
  * @note     HSI can not be stopped if it is used directly or through the PLL
  *           as system clock. In this case, you have to select another source
  *           of the system clock then stop the HSI.
  * @note     The HSI is stopped by hardware when entering STOP and STANDBY modes.
  * @param    __STATE__ specifies the new state of the HSI.
  *           This parameter can be one of the following values:
  *            @arg RCC_HSI_OFF turn OFF the HSI oscillator
  *            @arg RCC_HSI_ON turn ON the HSI oscillator
  *            @arg RCC_HSI_DIV1 turn ON the HSI oscillator and divide it by 1 (default after reset)
  *            @arg RCC_HSI_DIV2 turn ON the HSI oscillator and divide it by 2
  *            @arg RCC_HSI_DIV4 turn ON the HSI oscillator and divide it by 4
  *            @arg RCC_HSI_DIV8 turn ON the HSI oscillator and divide it by 8
  * @note   When the HSI is stopped, HSIRDY flag goes low after 6 HSI oscillator
  *         clock cycles.
  */




/** @brief  Macro to get the HSI divider.
  * @retval The HSI divider. The returned value can be one
  *         of the following:
  *            - RCC_CR_HSIDIV_1  HSI oscillator divided by 1 (default after reset)
  *            - RCC_CR_HSIDIV_2  HSI oscillator divided by 2
  *            - RCC_CR_HSIDIV_4  HSI oscillator divided by 4
  *            - RCC_CR_HSIDIV_8  HSI oscillator divided by 8
  */


/** @brief  Macros to enable or disable the Internal High Speed oscillator (HSI).
  * @note   The HSI is stopped by hardware when entering STOP and STANDBY modes.
  *         It is used (enabled by hardware) as system clock source after start-up
  *         from Reset, wakeup from STOP and STANDBY mode, or in case of failure
  *         of the HSE used directly or indirectly as system clock (if the Clock
  *         Security System CSS is enabled).
  * @note   HSI can not be stopped if it is used as system clock source. In this case,
  *         you have to select another source of the system clock then stop the HSI.
  * @note   After enabling the HSI, the application software should wait on HSIRDY
  *         flag to be set indicating that HSI clock is stable and can be used as
  *         system clock source.
  *         This parameter can be: ENABLE or DISABLE.
  * @note   When the HSI is stopped, HSIRDY flag goes low after 6 HSI oscillator
  *         clock cycles.
  */




/** @brief  Macro to adjust the Internal High Speed oscillator (HSI) calibration value.
  * @note   The calibration is used to compensate for the variations in voltage
  *         and temperature that influence the frequency of the internal HSI RC.
  * @param  __HSICalibrationValue__: specifies the calibration trimming value.
  *         This parameter must be a number between 0 and 0x7F (3F for Rev Y device).
  */
# 7194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @brief    Macros to enable or disable the force of the Internal High Speed oscillator (HSI)
  *           in STOP mode to be quickly available as kernel clock for some peripherals.
  * @note     Keeping the HSI ON in STOP mode allows to avoid slowing down the communication
  *           speed because of the HSI start-up time.
  * @note     The enable of this function has not effect on the HSION bit.
  *           This parameter can be: ENABLE or DISABLE.
  * @retval None
  */




/**
  * @brief  Macro to enable or disable the Internal High Speed oscillator for USB (HSI48).
  * @note   After enabling the HSI48, the application software should wait on
  *         HSI48RDY flag to be set indicating that HSI48 clock is stable and can
  *         be used to clock the USB.
  * @note   The HSI48 is stopped by hardware when entering STOP and STANDBY modes.
  */




/**
  * @brief  Macros to enable or disable the Internal  oscillator (CSI).
  * @note     The CSI is stopped by hardware when entering STOP and STANDBY modes.
  *           It is used (enabled by hardware) as system clock source after
  *           start-up from Reset, wakeup from STOP and STANDBY mode, or in case
  *           of failure of the HSE used directly or indirectly as system clock
  *           (if the Clock Security System CSS is enabled).
  * @note     CSI can not be stopped if it is used as system clock source.
  *           In this case, you have to select another source of the system
  *           clock then stop the CSI.
  * @note     After enabling the CSI, the application software should wait on
  *           CSIRDY flag to be set indicating that CSI clock is stable and can
  *           be used as system clock source.
  * @note     When the CSI is stopped, CSIRDY flag goes low after 6 CSI oscillator
  *           clock cycles.
  */



/** @brief  Macro Adjusts the Internal  oscillator (CSI) calibration value.
  * @note   The calibration is used to compensate for the variations in voltage
  *         and temperature that influence the frequency of the internal CSI RC.
  * @param  __CSICalibrationValue__: specifies the calibration trimming value.
  *         This parameter must be a number between 0 and 0x1F.
  */
# 7270 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @brief    Macros to enable or disable the force of the Low-power Internal oscillator (CSI)
  *           in STOP mode to be quickly available as kernel clock for USARTs and I2Cs.
  * @note     Keeping the CSI ON in STOP mode allows to avoid slowing down the communication
  *           speed because of the CSI start-up time.
  * @note     The enable of this function has not effect on the CSION bit.
  *           This parameter can be: ENABLE or DISABLE.
  * @retval None
  */




/** @brief  Macros to enable or disable the Internal Low Speed oscillator (LSI).
  * @note   After enabling the LSI, the application software should wait on
  *         LSIRDY flag to be set indicating that LSI clock is stable and can
  *         be used to clock the IWDG and/or the RTC.
  * @note   LSI can not be disabled if the IWDG is running.
  * @note   When the LSI is stopped, LSIRDY flag goes low after 6 LSI oscillator
  *         clock cycles.
  */



/**
  * @brief  Macro to configure the External High Speed oscillator (__HSE__).
  * @note   After enabling the HSE (RCC_HSE_ON, RCC_HSE_BYPASS or RCC_HSE_BYPASS_DIGITAL),
  *         the application software should wait on HSERDY flag to be set indicating
  *         that HSE clock is stable and can be used to clock the PLL and/or system clock.
  * @note   HSE state can not be changed if it is used directly or through the
  *         PLL as system clock. In this case, you have to select another source
  *         of the system clock then change the HSE state (ex. disable it).
  * @note   The HSE is stopped by hardware when entering STOP and STANDBY modes.
  * @note   This function reset the CSSON bit, so if the clock security system(CSS)
  *         was previously enabled you have to enable it again after calling this
  *         function.
  * @param  __STATE__: specifies the new state of the HSE.
  *         This parameter can be one of the following values:
  *            @arg RCC_HSE_OFF: turn OFF the HSE oscillator, HSERDY flag goes low after
  *                              6 HSE oscillator clock cycles.
  *            @arg RCC_HSE_ON: turn ON the HSE oscillator.
  *            @arg RCC_HSE_BYPASS: HSE oscillator bypassed with external clock.
  *            @arg RCC_HSE_BYPASS_DIGITAL: HSE oscillator bypassed with digital external clock. (*)
  *
  * (*): Only available on stm32h7a3xx, stm32h7b3xx and stm32h7b0xx family lines.
  */
# 7373 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @defgroup RCC_LSE_Configuration LSE Configuration
  * @{
  */

/**
  * @brief  Macro to configure the External Low Speed oscillator (LSE).
  * @note   Transition LSE Bypass to LSE On and LSE On to LSE Bypass are not supported by this macro.
  *         User should request a transition to LSE Off first and then LSE On or LSE Bypass.
  * @note   The external input clock can have a frequency up to 1 MHz and be low swing (analog) or digital(*).
            A duty cycle close to 50% is recommended.
  * @note   As the LSE is in the Backup domain and write access is denied to
  *         this domain after reset, you have to enable write access using
  *         HAL_PWR_EnableBkUpAccess() function before to configure the LSE
  *         (to be done once after reset).
  * @note   After enabling the LSE (RCC_LSE_ON, RCC_LSE_BYPASS or RCC_LSE_BYPASS_DIGITAL*), the application
  *         software should wait on LSERDY flag to be set indicating that LSE clock
  *         is stable and can be used to clock the RTC.
  * @note   If the RTC is used, the LSE bypass must not be configured in digital mode but in low swing analog mode (*)
  * @param  __STATE__: specifies the new state of the LSE.
  *         This parameter can be one of the following values:
  *            @arg RCC_LSE_OFF: turn OFF the LSE oscillator, LSERDY flag goes low after
  *                              6 LSE oscillator clock cycles.
  *            @arg RCC_LSE_ON: turn ON the LSE oscillator.
  *            @arg RCC_LSE_BYPASS: LSE oscillator bypassed with external clock.
  *            @arg RCC_LSE_BYPASS_DIGITAL: LSE oscillator bypassed with external digital clock. (*)
  *
  *         (*) Available on some STM32H7 lines only.
  */
# 7459 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/** @brief  Macros to enable or disable the the RTC clock.
  * @note   These macros must be used only after the RTC clock source was selected.
  */



/** @brief  Macros to configure the RTC clock (RTCCLK).
  * @note   As the RTC clock configuration bits are in the Backup domain and write
  *         access is denied to this domain after reset, you have to enable write
  *         access using the Power Backup Access macro before to configure
  *         the RTC clock source (to be done once after reset).
  * @note   Once the RTC clock is configured it can't be changed unless the
  *         Backup domain is reset using __HAL_RCC_BackupReset_RELEASE() macro, or by
  *         a Power On Reset (POR).
  * @param  __RTCCLKSource__: specifies the RTC clock source.
  *         This parameter can be one of the following values:
  *            @arg RCC_RTCCLKSOURCE_LSE: LSE selected as RTC clock.
  *            @arg RCC_RTCCLKSOURCE_LSI: LSI selected as RTC clock.
  *            @arg RCC_RTCCLKSOURCE_HSE_DIVx: HSE clock divided by x selected
  *                                            as RTC clock, where x:[2,31]
  * @note   If the LSE or LSI is used as RTC clock source, the RTC continues to
  *         work in STOP and STANDBY modes, and can be used as wakeup source.
  *         However, when the HSE clock is used as RTC clock source, the RTC
  *         cannot be used in STOP and STANDBY modes.
  * @note   The maximum input clock frequency for RTC is 1MHz (when using HSE as
  *         RTC clock source).
  */
# 7500 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Macros to force or release the Backup domain reset.
  * @note   This function resets the RTC peripheral (including the backup registers)
  *         and the RTC clock source selection in RCC_BDCR register.
  * @note   The BKPSRAM is not affected by this reset.
  */



/** @brief  Macros to enable or disable the main PLL.
  * @note   After enabling the main PLL, the application software should wait on
  *         PLLRDY flag to be set indicating that PLL clock is stable and can
  *         be used as system clock source.
  * @note   The main PLL can not be disabled if it is used as system clock source
  * @note   The main PLL is disabled by hardware when entering STOP and STANDBY modes.
  */



/**
  * @brief  Enables or disables each clock output (PLL_P_CLK, PLL_Q_CLK, PLL_R_CLK)
  * @note   Enabling/disabling  those Clocks can be done only when the PLL is disabled.
  *         This is mainly used to save Power.
  *        (The ck_pll_p of the System PLL cannot be stopped if used as System Clock).
  * @param  __RCC_PLL1ClockOut__: specifies the PLL clock to be outputted
  *          This parameter can be one of the following values:
  *            @arg RCC_PLL1_DIVP: This clock is used to generate system clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *            @arg RCC_PLL1_DIVQ: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *            @arg RCC_PLL1_DIVR: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *
  * (*) : For stm32h72xxx and stm32h73xxx family lines and requires to enable the CPU_FREQ_BOOST flash option byte, 520MHZ otherwise.
  * (**) : For stm32h74xx and stm32h75xx family lines and requires the board to be connected on LDO regulator not SMPS, 400MHZ otherwise.
  * (***): For stm32h7a3xx, stm32h7b3xx and stm32h7b0xx family lines.
  *
  * @retval None
  */





/**
  * @brief  Enables or disables Fractional Part Of The Multiplication Factor of PLL1 VCO
  * @note   Enabling/disabling  Fractional Part can be any time  without the need to stop the PLL1
  * @retval None
  */





/**
  * @brief  Macro to configures the main PLL clock source, multiplication and division factors.
  * @note   This function must be used only when the main PLL is disabled.
  *
  * @param  __RCC_PLLSOURCE__: specifies the PLL entry clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_PLLSOURCE_CSI: CSI oscillator clock selected as PLL clock entry
  *            @arg RCC_PLLSOURCE_HSI: HSI oscillator clock selected as PLL clock entry
  *            @arg RCC_PLLSOURCE_HSE: HSE oscillator clock selected as PLL clock entry
  * @note   This clock source (__RCC_PLLSource__) is common for the main PLL1 (main PLL) and PLL2 & PLL3 .
  *
  * @param  __PLLM1__: specifies the division factor for PLL VCO input clock
  *          This parameter must be a number between 1 and 63.
  * @note   You have to set the PLLM parameter correctly to ensure that the VCO input
  *         frequency ranges from 1 to 16 MHz.
  *
  * @param  __PLLN1__: specifies the multiplication factor for PLL VCO output clock
  *          This parameter must be a number between 4 and 512 or between 8 and 420(*).
  * @note   You have to set the PLLN parameter correctly to ensure that the VCO
  *         output frequency is between 150 and 420 MHz (when in medium VCO range) or
  *         between 192 and 836 MHZ or between 128 and 560 MHZ(*) (when in wide VCO range)
  *
  * @param  __PLLP1__: specifies the division factor for system  clock.
  *          This parameter must be a number between 2 or 1(**) and 128 (where odd numbers are not allowed)
  *
  * @param  __PLLQ1__: specifies the division factor for peripheral kernel clocks
  *          This parameter must be a number between 1 and 128
  *
  * @param  __PLLR1__: specifies the division factor for peripheral kernel clocks
  *          This parameter must be a number between 1 and 128
  *
  * @note   To insure an optimal behavior of the PLL when one of the post-divider (DIVP, DIVQ or DIVR)
  *         is not used, application shall clear the enable bit (DIVyEN) and assign lowest possible
  *         value to  __PLL1P__, __PLL1Q__ or __PLL1R__ parameters.
  * @retval None
  *
  *  (*) : For stm32h7a3xx and stm32h7b3xx family lines.
  *  (**): For stm32h72xxx and stm32h73xxx family lines.
  */
# 7598 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Macro to configure the PLLs clock source.
  * @note   This function must be used only when all PLLs are disabled.
  * @param  __PLLSOURCE__: specifies the PLLs entry clock source.
  *         This parameter can be one of the following values:
  *            @arg RCC_PLLSOURCE_CSI: CSI oscillator clock selected as PLL clock entry
  *            @arg RCC_PLLSOURCE_HSI: HSI oscillator clock selected as PLL clock entry
  *            @arg RCC_PLLSOURCE_HSE: HSE oscillator clock selected as PLL clock entry
  *
  */



/**
  * @brief  Macro to configures the main PLL clock Fractional Part Of The Multiplication Factor
  *
  * @note   These bits can be written at any time, allowing dynamic fine-tuning of the PLL1 VCO
  *
  * @param  __RCC_PLL1FRACN__: specifies Fractional Part Of The Multiplication Factor for PLL1 VCO
  *                            It should be a value between 0 and 8191
  * @note   Warning: The software has to set correctly these bits to insure that the VCO
  *                  output frequency is between its valid frequency range, which is:
  *                   192 to 836 MHz or 128 to 560 MHz(*) if PLL1VCOSEL = 0
  *                   150 to 420 MHz if PLL1VCOSEL = 1.
  *
  * (*) : For stm32h7a3xx and stm32h7b3xx family lines.
  *
  * @retval None
  */



/** @brief  Macro to select  the PLL1  reference frequency range.
  * @param  __RCC_PLL1VCIRange__: specifies the PLL1 input frequency range
  *         This parameter can be one of the following values:
  *            @arg RCC_PLL1VCIRANGE_0: Range frequency is between 1 and 2 MHz
  *            @arg RCC_PLL1VCIRANGE_1: Range frequency is between 2 and 4 MHz
  *            @arg RCC_PLL1VCIRANGE_2: Range frequency is between 4 and 8 MHz
  *            @arg RCC_PLL1VCIRANGE_3: Range frequency is between 8 and 16 MHz
  * @retval None
  */




/** @brief  Macro to select  the PLL1  reference frequency range.
  * @param  __RCC_PLL1VCORange__: specifies the PLL1 input frequency range
  *         This parameter can be one of the following values:
  *            @arg RCC_PLL1VCOWIDE: Range frequency is between 192 and 836 MHz or between 128 to 560 MHz(*)
  *            @arg RCC_PLL1VCOMEDIUM: Range frequency is between 150 and 420 MHz
  *
  * (*) : For stm32h7a3xx and stm32h7b3xx family lines.
  *
  * @retval None
  */





/** @brief  Macro to get the clock source used as system clock.
  * @retval The clock source used as system clock. The returned value can be one
  *         of the following:
  *              - RCC_CFGR_SWS_CSI: CSI used as system clock.
  *              - RCC_CFGR_SWS_HSI: HSI used as system clock.
  *              - RCC_CFGR_SWS_HSE: HSE used as system clock.
  *              - RCC_CFGR_SWS_PLL: PLL used as system clock.
  */



/**
  * @brief Macro to configure the system clock source.
  * @param __RCC_SYSCLKSOURCE__: specifies the system clock source.
  * This parameter can be one of the following values:
  *              - RCC_SYSCLKSOURCE_HSI: HSI oscillator is used as system clock source.
  *              - RCC_SYSCLKSOURCE_CSI: CSI oscillator is used as system clock source.
  *              - RCC_SYSCLKSOURCE_HSE: HSE oscillator is used as system clock source.
  *              - RCC_SYSCLKSOURCE_PLLCLK: PLL output is used as system clock source.
  */


/** @brief  Macro to get the oscillator used as PLL clock source.
  * @retval The oscillator used as PLL clock source. The returned value can be one
  *         of the following:
  *              - RCC_PLLSOURCE_NONE: No oscillator is used as PLL clock source.
  *              - RCC_PLLSOURCE_CSI: CSI oscillator is used as PLL clock source.
  *              - RCC_PLLSOURCE_HSI: HSI oscillator is used as PLL clock source.
  *              - RCC_PLLSOURCE_HSE: HSE oscillator is used as PLL clock source.
  */


/** @defgroup RCCEx_MCOx_Clock_Config RCC Extended MCOx Clock Config
  * @{
  */

/** @brief  Macro to configure the MCO1 clock.
  * @param  __MCOCLKSOURCE__ specifies the MCO clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_MCO1SOURCE_HSI: HSI clock selected as MCO1 source
  *            @arg RCC_MCO1SOURCE_LSE: LSE clock selected as MCO1 source
  *            @arg RCC_MCO1SOURCE_HSE: HSE clock selected as MCO1 source
  *            @arg RCC_MCO1SOURCE_PLL1QCLK:  PLL1Q clock selected as MCO1 source
  *            @arg RCC_MCO1SOURCE_HSI48: HSI48 (48MHZ) selected as MCO1 source
  * @param  __MCODIV__ specifies the MCO clock prescaler.
  *          This parameter can be one of the following values:
  *            @arg RCC_MCODIV_1 up to RCC_MCODIV_15  : divider applied to MCO1 clock
  */



/** @brief  Macro to configure the MCO2 clock.
  * @param  __MCOCLKSOURCE__ specifies the MCO clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_MCO2SOURCE_SYSCLK: System clock (SYSCLK) selected as MCO2 source
  *            @arg RCC_MCO2SOURCE_PLL2PCLK: PLL2P clock selected as MCO2 source
  *            @arg RCC_MCO2SOURCE_HSE: HSE clock selected as MCO2 source
  *            @arg RCC_MCO2SOURCE_PLLCLK:  PLL1P clock selected as MCO2 source
  *            @arg RCC_MCO2SOURCE_CSICLK:  CSI clock selected as MCO2 source
  *            @arg RCC_MCO2SOURCE_LSICLK:  LSI clock selected as MCO2 source
  * @param  __MCODIV__ specifies the MCO clock prescaler.
  *          This parameter can be one of the following values:
  *            @arg RCC_MCODIV_1 up to RCC_MCODIV_15  : divider applied to MCO2 clock
  */



/**
  * @}
  */

/**
  * @brief  Macro to configure the External Low Speed oscillator (LSE) drive capability.
  * @note   As the LSE is in the Backup domain and write access is denied to
  *         this domain after reset, you have to enable write access using
  *         HAL_PWR_EnableBkUpAccess() function before to configure the LSE
  *         (to be done once after reset).
  * @note   On STM32H7 Rev.B and above devices this can't be updated while LSE is ON.
  * @param  __LSEDRIVE__: specifies the new state of the LSE drive capability.
  *          This parameter can be one of the following values:
  *            @arg RCC_LSEDRIVE_LOW: LSE oscillator low drive capability.
  *            @arg RCC_LSEDRIVE_MEDIUMLOW: LSE oscillator medium low drive capability.
  *            @arg RCC_LSEDRIVE_MEDIUMHIGH: LSE oscillator medium high drive capability.
  *            @arg RCC_LSEDRIVE_HIGH: LSE oscillator high drive capability.
  * @retval None
  */
# 7759 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @brief  Macro to configure the wake up from stop clock.
  * @param  __RCC_STOPWUCLK__: specifies the clock source used after wake up from stop
  *         This parameter can be one of the following values:
  *            @arg RCC_STOP_WAKEUPCLOCK_CSI: CSI selected as system clock source
  *            @arg RCC_STOP_WAKEUPCLOCK_HSI: HSI selected as system clock source
  * @retval None
  */



/**
  * @brief  Macro to configure the Kernel wake up from stop clock.
  * @param  __RCC_STOPKERWUCLK__: specifies the Kernel clock source used after wake up from stop
  *         This parameter can be one of the following values:
  *            @arg RCC_STOP_KERWAKEUPCLOCK_CSI: CSI selected as Kernel clock source
  *            @arg RCC_STOP_KERWAKEUPCLOCK_HSI: HSI selected as Kernel clock source
  * @retval None
  */



/** @defgroup RCC_Flags_Interrupts_Management Flags Interrupts Management
  * @brief macros to manage the specified RCC Flags and interrupts.
  * @{
  */
/** @brief  Enable RCC interrupt.
  * @param  __INTERRUPT__: specifies the RCC interrupt sources to be enabled.
  *         This parameter can be any combination of the following values:
  *            @arg RCC_IT_LSIRDY: LSI ready interrupt
  *            @arg RCC_IT_LSERDY: LSE ready interrupt
  *            @arg RCC_IT_CSIRDY: HSI ready interrupt
  *            @arg RCC_IT_HSIRDY: HSI ready interrupt
  *            @arg RCC_IT_HSERDY: HSE ready interrupt
  *            @arg RCC_IT_HSI48RDY: HSI48 ready interrupt
  *            @arg RCC_IT_PLLRDY: main PLL ready interrupt
  *            @arg RCC_IT_PLL2RDY: PLL2 ready interrupt
  *            @arg RCC_IT_PLL3RDY: PLL3 ready interrupt
  *            @arg RCC_IT_LSECSS: Clock security system interrupt
  */


/** @brief Disable RCC interrupt
  * @param  __INTERRUPT__: specifies the RCC interrupt sources to be disabled.
  *         This parameter can be any combination of the following values:
  *            @arg RCC_IT_LSIRDY: LSI ready interrupt
  *            @arg RCC_IT_LSERDY: LSE ready interrupt
  *            @arg RCC_IT_CSIRDY: HSI ready interrupt
  *            @arg RCC_IT_HSIRDY: HSI ready interrupt
  *            @arg RCC_IT_HSERDY: HSE ready interrupt
  *            @arg RCC_IT_HSI48RDY: HSI48 ready interrupt
  *            @arg RCC_IT_PLLRDY: main PLL ready interrupt
  *            @arg RCC_IT_PLL2RDY: PLL2 ready interrupt
  *            @arg RCC_IT_PLL3RDY: PLL3 ready interrupt
  *            @arg RCC_IT_LSECSS: Clock security system interrupt
  */


/** @brief  Clear the RCC's interrupt pending bits
  * @param  __INTERRUPT__: specifies the interrupt pending bit to clear.
  *         This parameter can be any combination of the following values:
  *            @arg RCC_IT_LSIRDY: LSI ready interrupt
  *            @arg RCC_IT_LSERDY: LSE ready interrupt
  *            @arg RCC_IT_CSIRDY: CSI ready interrupt
  *            @arg RCC_IT_HSIRDY: HSI ready interrupt
  *            @arg RCC_IT_HSERDY: HSE ready interrupt
  *            @arg RCC_IT_HSI48RDY: HSI48 ready interrupt
  *            @arg RCC_IT_PLLRDY: main PLL ready interrupt
  *            @arg RCC_IT_PLL2RDY: PLL2 ready interrupt
  *            @arg RCC_IT_PLL3RDY: PLL3 ready interrupt
  *            @arg RCC_IT_HSECSS: HSE Clock Security interrupt
  *            @arg RCC_IT_LSECSS: Clock security system interrupt
  */


/** @brief  Check the RCC's interrupt has occurred or not.
  * @param  __INTERRUPT__: specifies the RCC interrupt source to check.
  *         This parameter can be any combination of the following values:
  *            @arg RCC_IT_LSIRDY: LSI ready interrupt
  *            @arg RCC_IT_LSERDY: LSE ready interrupt
  *            @arg RCC_IT_CSIRDY: CSI ready interrupt
  *            @arg RCC_IT_HSIRDY: HSI ready interrupt
  *            @arg RCC_IT_HSERDY: HSE ready interrupt
  *            @arg RCC_IT_HSI48RDY: HSI48 ready interrupt
  *            @arg RCC_IT_PLLRDY: main PLL ready interrupt
  *            @arg RCC_IT_PLL2RDY: PLL2 ready interrupt
  *            @arg RCC_IT_PLL3RDY: PLL3 ready interrupt
  *            @arg RCC_IT_HSECSS: HSE Clock Security interrupt
  *            @arg RCC_IT_LSECSS: Clock security system interrupt
  * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  */


/** @brief Set RMVF bit to clear the reset flags.
  */
# 7863 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/** @brief  Check RCC flag is set or not.
  * @param  __FLAG__: specifies the flag to check.
  *         This parameter can be one of the following values:
  *            @arg RCC_FLAG_HSIRDY: HSI oscillator clock ready
  *            @arg RCC_FLAG_HSIDIV: HSI divider flag
  *            @arg RCC_FLAG_CSIRDY: CSI oscillator clock ready
  *            @arg RCC_FLAG_HSI48RDY: HSI48 oscillator clock ready
  *            @arg RCC_FLAG_HSERDY:  HSE oscillator clock ready
  *            @arg RCC_FLAG_D1CKRDY:  Domain1 clock ready
  *            @arg RCC_FLAG_D2CKRDY:  Domain2 clock ready
  *            @arg RCC_FLAG_PLLRDY:  PLL1 clock ready
  *            @arg RCC_FLAG_PLL2RDY: PLL2 clock ready
  *            @arg RCC_FLAG_PLL3RDY: PLL3 clock ready
  *            @arg RCC_FLAG_LSERDY: LSE oscillator clock ready
  *            @arg RCC_FLAG_LSIRDY: LSI oscillator clock ready
  *            @arg RCC_FLAG_C1RST:  CPU reset flag
  *            @arg RCC_FLAG_C2RST:  CPU2 reset flag
  *            @arg RCC_FLAG_D1RST:  D1 domain power switch reset flag
  *            @arg RCC_FLAG_D2RST:  D2 domain power switch reset flag
  *            @arg RCC_FLAG_BORRST: BOR reset flag
  *            @arg RCC_FLAG_PINRST: Pin reset
  *            @arg RCC_FLAG_PORRST: POR/PDR  reset
  *            @arg RCC_FLAG_SFTR1ST: System reset from CPU reset flag
  *            @arg RCC_FLAG_SFTR2ST: System reset from CPU2 reset flag
  *            @arg RCC_FLAG_BORRST:   D2 domain power switch reset flag
  *            @arg RCC_FLAG_IWDG1RST: CPU Independent Watchdog reset
  *            @arg RCC_FLAG_IWDG2RST: CPU2 Independent Watchdog reset
  *            @arg RCC_FLAG_WWDG2RST: Window Watchdog2 reset
  *            @arg RCC_FLAG_WWDG1RST: Window Watchdog1 reset
  *            @arg RCC_FLAG_LPWR1RST: Reset due to illegal D1 DSTANDBY or CPU CSTOP flag
  *            @arg RCC_FLAG_LPWR2RST: Reset due to illegal D2 DSTANDBY or CPU2 CSTOP flag
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */
# 7947 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */



/**
  * @}
  */

/* Include RCC HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_rcc_ex.h
  * @author  MCD Application Team
  * @brief   Header file of RCC HAL Extension module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file in
  * the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup RCCEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup RCCEx_Exported_Types RCCEx Exported Types
  * @{
  */

/**
  * @brief  PLL2 Clock structure definition
  */
typedef struct
{

  uint32_t PLL2M; /*!< PLL2M: Division factor for PLL2 VCO input clock.
                             This parameter must be a number between Min_Data = 1 and Max_Data = 63    */

  uint32_t PLL2N; /*!< PLL2N: Multiplication factor for PLL2 VCO output clock.
                             This parameter must be a number between Min_Data = 4 and Max_Data = 512
                             or between Min_Data = 8 and Max_Data = 420(*)
                             (*) : For stm32h7a3xx and stm32h7b3xx family lines.                       */

  uint32_t PLL2P; /*!< PLL2P: Division factor for system clock.
                             This parameter must be a number between Min_Data = 2 and Max_Data = 128
                             odd division factors are not allowed                                      */

  uint32_t PLL2Q; /*!< PLL2Q: Division factor for peripheral clocks.
                             This parameter must be a number between Min_Data = 1 and Max_Data = 128   */

  uint32_t PLL2R; /*!< PLL2R: Division factor for peripheral clocks.
                             This parameter must be a number between Min_Data = 1 and Max_Data = 128   */
  uint32_t PLL2RGE; /*!<PLL2RGE: PLL2 clock Input range
                          This parameter must be a value of @ref RCC_PLL2_VCI_Range                    */
  uint32_t PLL2VCOSEL; /*!<PLL2VCOSEL: PLL2 clock Output range
                          This parameter must be a value of @ref RCC_PLL2_VCO_Range                    */

  uint32_t PLL2FRACN; /*!<PLL2FRACN: Specifies Fractional Part Of The Multiplication Factor for
                            PLL2 VCO It should be a value between 0 and 8191                           */
} RCC_PLL2InitTypeDef;

/**
  * @brief  PLL3 Clock structure definition
  */
typedef struct
{

  uint32_t PLL3M; /*!< PLL3M: Division factor for PLL3 VCO input clock.
                             This parameter must be a number between Min_Data = 1 and Max_Data = 63    */

  uint32_t PLL3N; /*!< PLL3N: Multiplication factor for PLL3 VCO output clock.
                             This parameter must be a number between Min_Data = 4 and Max_Data = 512
                             or between Min_Data = 8 and Max_Data = 420(*)
                             (*) : For stm32h7a3xx and stm32h7b3xx family lines.                       */

  uint32_t PLL3P; /*!< PLL3P: Division factor for system clock.
                             This parameter must be a number between Min_Data = 2 and Max_Data = 128
                             odd division factors are not allowed                                      */

  uint32_t PLL3Q; /*!< PLL3Q: Division factor for peripheral clocks.
                             This parameter must be a number between Min_Data = 1 and Max_Data = 128   */

  uint32_t PLL3R; /*!< PLL3R: Division factor for peripheral clocks.
                             This parameter must be a number between Min_Data = 1 and Max_Data = 128   */
  uint32_t PLL3RGE; /*!<PLL3RGE: PLL3 clock Input range
                          This parameter must be a value of @ref RCC_PLL3_VCI_Range                    */
  uint32_t PLL3VCOSEL; /*!<PLL3VCOSEL: PLL3 clock Output range
                          This parameter must be a value of @ref RCC_PLL3_VCO_Range                    */

  uint32_t PLL3FRACN; /*!<PLL3FRACN: Specifies Fractional Part Of The Multiplication Factor for
                            PLL3 VCO It should be a value between 0 and 8191                           */
} RCC_PLL3InitTypeDef;

/**
  * @brief  RCC PLL1 Clocks structure definition
  */
typedef struct
{
  uint32_t PLL1_P_Frequency;
  uint32_t PLL1_Q_Frequency;
  uint32_t PLL1_R_Frequency;
} PLL1_ClocksTypeDef;

/**
  * @brief  RCC PLL2 Clocks structure definition
  */
typedef struct
{
  uint32_t PLL2_P_Frequency;
  uint32_t PLL2_Q_Frequency;
  uint32_t PLL2_R_Frequency;
} PLL2_ClocksTypeDef;

/**
  * @brief  RCC PLL3 Clocks structure definition
  */
typedef struct
{
  uint32_t PLL3_P_Frequency;
  uint32_t PLL3_Q_Frequency;
  uint32_t PLL3_R_Frequency;
} PLL3_ClocksTypeDef;


/**
  * @brief  RCC extended clocks structure definition
  */
typedef struct
{
  uint64_t PeriphClockSelection; /*!< The Extended Clock to be configured.
                                        This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */

  RCC_PLL2InitTypeDef PLL2; /*!< PLL2structure parameters.
                                        This parameter will be used only when PLL2 is selected as kernel clock Source for some peripherals */

  RCC_PLL3InitTypeDef PLL3; /*!< PLL3 structure parameters.
                                        This parameter will be used only when PLL2 is selected as kernel clock Source for some peripherals */

  uint32_t FmcClockSelection; /*!< Specifies FMC clock source
                                        This parameter can be a value of @ref RCCEx_FMC_Clock_Source     */


  uint32_t QspiClockSelection; /*!< Specifies QSPI clock source
                                        This parameter can be a value of @ref RCCEx_QSPI_Clock_Source    */
# 166 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
  uint32_t DsiClockSelection; /*!< Specifies DSI clock source
                                     This parameter can be a value of @ref RCCEx_DSI_Clock_Source        */


  uint32_t SdmmcClockSelection; /*!< Specifies SDMMC clock source
                                        This parameter can be a value of @ref RCCEx_SDMMC_Clock_Source   */

  uint32_t CkperClockSelection; /*!< Specifies CKPER clock source
                                        This parameter can be a value of @ref RCCEx_CLKP_Clock_Source   */

  uint32_t Sai1ClockSelection; /*!< Specifies SAI1 clock source
                                        This parameter can be a value of @ref RCCEx_SAI1_Clock_Source    */


  uint32_t Sai23ClockSelection; /*!< Specifies SAI2/3 clock source
                                         This parameter can be a value of @ref RCCEx_SAI23_Clock_Source  */
# 194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
  uint32_t Spi123ClockSelection; /*!< Specifies SPI1/2/3 clock source
                                          This parameter can be a value of @ref RCCEx_SPI123_Clock_Source    */

  uint32_t Spi45ClockSelection; /*!< Specifies SPI4/5 clock source
                                         This parameter can be a value of @ref RCCEx_SPI45_Clock_Source    */

  uint32_t SpdifrxClockSelection; /*!< Specifies SPDIFRX Clock clock source
                                        This parameter can be a value of @ref RCCEx_SPDIFRX_Clock_Source */

  uint32_t Dfsdm1ClockSelection; /*!< Specifies DFSDM1 Clock clock source
                                        This parameter can be a value of @ref RCCEx_DFSDM1_Clock_Source  */







  uint32_t FdcanClockSelection; /*!< Specifies FDCAN Clock clock source
                                        This parameter can be a value of @ref RCCEx_FDCAN_Clock_Source   */


  uint32_t Swpmi1ClockSelection; /*!< Specifies SWPMI1 Clock clock source
                                        This parameter can be a value of @ref RCCEx_SWPMI1_Clock_Source  */

  uint32_t Usart234578ClockSelection; /*!< Specifies USART2/3/4/5/7/8 clock source
                                             This parameter can be a value of @ref RCCEx_USART234578_Clock_Source  */

  uint32_t Usart16ClockSelection; /*!< Specifies USART1/6 clock source
                                        This parameter can be a value of @ref RCCEx_USART16_Clock_Source  */

  uint32_t RngClockSelection; /*!< Specifies RNG clock source
                                        This parameter can be a value of @ref RCCEx_RNG_Clock_Source     */





  uint32_t I2c123ClockSelection; /*!< Specifies I2C1/2/3 clock source
                                        This parameter can be a value of @ref RCCEx_I2C1235_Clock_Source    */


  uint32_t UsbClockSelection; /*!< Specifies USB clock source
                                        This parameter can be a value of @ref RCCEx_USB_Clock_Source     */

  uint32_t CecClockSelection; /*!< Specifies CEC clock source
                                        This parameter can be a value of @ref RCCEx_CEC_Clock_Source     */

  uint32_t Lptim1ClockSelection; /*!< Specifies LPTIM1 clock source
                                        This parameter can be a value of @ref RCCEx_LPTIM1_Clock_Source  */

  uint32_t Lpuart1ClockSelection; /*!< Specifies LPUART1 clock source
                                        This parameter can be a value of @ref RCCEx_LPUART1_Clock_Source */

  uint32_t I2c4ClockSelection; /*!< Specifies I2C4 clock source
                                        This parameter can be a value of @ref RCCEx_I2C4_Clock_Source    */

  uint32_t Lptim2ClockSelection; /*!< Specifies LPTIM2 clock source
                                        This parameter can be a value of @ref RCCEx_LPTIM2_Clock_Source  */

  uint32_t Lptim345ClockSelection; /*!< Specifies LPTIM3/4/5 clock source
                                          This parameter can be a value of @ref RCCEx_LPTIM345_Clock_Source  */

  uint32_t AdcClockSelection; /*!< Specifies ADC interface clock source
                                        This parameter can be a value of @ref RCCEx_ADC_Clock_Source     */

  uint32_t Sai4AClockSelection; /*!< Specifies SAI4A clock source
                                        This parameter can be a value of @ref RCCEx_SAI4A_Clock_Source   */

  uint32_t Sai4BClockSelection; /*!< Specifies SAI4B clock source
                                        This parameter can be a value of @ref RCCEx_SAI4B_Clock_Source   */


  uint32_t Spi6ClockSelection; /*!< Specifies SPI6 clock source
                                        This parameter can be a value of @ref RCCEx_SPI6_Clock_Source    */

  uint32_t RTCClockSelection; /*!< Specifies RTC Clock clock source
                                        This parameter can be a value of @ref RCC_RTC_Clock_Source       */


  uint32_t Hrtim1ClockSelection; /*!< Specifies HRTIM1 Clock clock source
                                        This parameter can be a value of @ref RCCEx_HRTIM1_Clock_Source   */


  uint32_t TIMPresSelection; /*!< Specifies TIM Clock Prescalers Selection.
                                       This parameter can be a value of @ref RCCEx_TIM_Prescaler_Selection */
} RCC_PeriphCLKInitTypeDef;

/*!< Alias for Inter STM32H7 lines compatibility regarding RCC_PeriphCLKInitTypeDef field : I2C5 available on some lines only  */







/**
  * @brief RCC_CRS Init structure definition
  */
typedef struct
{
  uint32_t Prescaler; /*!< Specifies the division factor of the SYNC signal.
                                     This parameter can be a value of @ref RCCEx_CRS_SynchroDivider  */

  uint32_t Source; /*!< Specifies the SYNC signal source.
                                     This parameter can be a value of @ref RCCEx_CRS_SynchroSource   */

  uint32_t Polarity; /*!< Specifies the input polarity for the SYNC signal source.
                                     This parameter can be a value of @ref RCCEx_CRS_SynchroPolarity */

  uint32_t ReloadValue; /*!< Specifies the value to be loaded in the frequency error counter with each SYNC event.
                                      It can be calculated in using macro __HAL_RCC_CRS_RELOADVALUE_CALCULATE(__FTARGET__, __FSYNC__)
                                     This parameter must be a number between 0 and 0xFFFF or a value of @ref RCCEx_CRS_ReloadValueDefault .*/

  uint32_t ErrorLimitValue; /*!< Specifies the value to be used to evaluate the captured frequency error value.
                                     This parameter must be a number between 0 and 0xFF or a value of @ref RCCEx_CRS_ErrorLimitDefault */

  uint32_t HSI48CalibrationValue; /*!< Specifies a user-programmable trimming value to the HSI48 oscillator.
                                     This parameter must be a number between 0 and 0x3F or a value of @ref RCCEx_CRS_HSI48CalibrationDefault */

} RCC_CRSInitTypeDef;

/**
  * @brief RCC_CRS Synchronization structure definition
  */
typedef struct
{
  uint32_t ReloadValue; /*!< Specifies the value loaded in the Counter reload value.
                                     This parameter must be a number between 0 and 0xFFFF */

  uint32_t HSI48CalibrationValue; /*!< Specifies value loaded in HSI48 oscillator smooth trimming.
                                     This parameter must be a number between 0 and 0x3F */

  uint32_t FreqErrorCapture; /*!< Specifies the value loaded in the .FECAP, the frequency error counter
                                                                    value latched in the time of the last SYNC event.
                                    This parameter must be a number between 0 and 0xFFFF */

  uint32_t FreqErrorDirection; /*!< Specifies the value loaded in the .FEDIR, the counting direction of the
                                                                    frequency error counter latched in the time of the last SYNC event.
                                                                    It shows whether the actual frequency is below or above the target.
                                    This parameter must be a value of @ref RCCEx_CRS_FreqErrorDirection*/

} RCC_CRSSynchroInfoTypeDef;

/**
  * @}
  */


/* Exported constants --------------------------------------------------------*/
/** @defgroup RCCEx_Exported_Constants  RCCEx Exported Constants
  * @{
  */

/** @defgroup RCCEx_Periph_Clock_Selection  RCCEx Periph Clock Selection
  * @{
  */
# 364 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/* alias */
# 463 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */


/** @defgroup RCC_PLL2_Clock_Output  RCC PLL2 Clock Output
  * @{
  */




/**
  * @}
  */

/** @defgroup RCC_PLL3_Clock_Output  RCC PLL3 Clock Output
  * @{
  */




/**
  * @}
  */

/** @defgroup RCC_PLL2_VCI_Range  RCC PLL2 VCI Range
  * @{
  */





/**
  * @}
  */


/** @defgroup RCC_PLL2_VCO_Range  RCC PLL2 VCO Range
  * @{
  */



/**
  * @}
  */

/** @defgroup RCC_PLL3_VCI_Range  RCC PLL3 VCI Range
  * @{
  */





/**
  * @}
  */


/** @defgroup RCC_PLL3_VCO_Range  RCC PLL3 VCO Range
  * @{
  */



/**
  * @}
  */

/** @defgroup RCCEx_USART16_Clock_Source  RCCEx USART1/6 Clock Source
  * @{
  */


/* alias */
# 586 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_USART1_Clock_Source  RCCEx USART1 Clock Source
  * @{
  */






/**
  * @}
  */

/** @defgroup RCCEx_USART6_Clock_Source  RCCEx USART6 Clock Source
  * @{
  */







/**
  * @}
  */
# 647 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @defgroup RCCEx_USART234578_Clock_Source  RCCEx USART2/3/4/5/7/8 Clock Source
  * @{
  */


/* alias */
# 670 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_USART2_Clock_Source  RCCEx USART2 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_USART3_Clock_Source  RCCEx USART3 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_UART4_Clock_Source  RCCEx UART4 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_UART5_Clock_Source  RCCEx UART5 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_UART7_Clock_Source  RCCEx UART7 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_UART8_Clock_Source  RCCEx UART8 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_LPUART1_Clock_Source  RCCEx LPUART1 Clock Source
  * @{
  */


/* alias */
# 781 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_I2C1235_Clock_Source  RCCEx I2C1/2/3/5 Clock Source
  * @{
  */





/* aliases */
# 821 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_I2C1_Clock_Source  RCCEx I2C1 Clock Source
  * @{
  */
# 840 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_I2C2_Clock_Source  RCCEx I2C2 Clock Source
  * @{
  */
# 859 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_I2C3_Clock_Source  RCCEx I2C3 Clock Source
  * @{
  */
# 878 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_I2C4_Clock_Source  RCCEx I2C4 Clock Source
  * @{
  */
# 899 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */
# 916 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @defgroup RCCEx_RNG_Clock_Source  RCCEx RNG Clock Source
  * @{
  */
# 931 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */


/** @defgroup RCCEx_HRTIM1_Clock_Source RCC Extended HRTIM1 Clock Source
  * @{
  */



/**
  * @}
  */


/** @defgroup RCCEx_USB_Clock_Source  RCCEx USB Clock Source
  * @{
  */
# 960 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_SAI1_Clock_Source SAI1 Clock Source
  * @{
  */
# 980 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */


/** @defgroup RCCEx_SAI23_Clock_Source SAI2/3 Clock Source
  * @{
  */





/**
  * @}
  */

/** @defgroup RCCEx_SAI2_Clock_Source SAI2 Clock Source
  * @{
  */






/**
  * @}
  */

/** @defgroup RCCEx_SAI3_Clock_Source SAI3 Clock Source
  * @{
  */





/**
  * @}
  */
# 1054 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @defgroup RCCEx_SPI123_Clock_Source SPI1/2/3 Clock Source
  * @{
  */
# 1070 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_SPI1_Clock_Source SPI1 Clock Source
  * @{
  */






/**
  * @}
  */

/** @defgroup RCCEx_SPI2_Clock_Source SPI2 Clock Source
  * @{
  */






/**
  * @}
  */

/** @defgroup RCCEx_SPI3_Clock_Source SPI3 Clock Source
  * @{
  */






/**
  * @}
  */

/** @defgroup RCCEx_SPI45_Clock_Source SPI4/5 Clock Source
  * @{
  */
# 1135 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_SPI4_Clock_Source SPI4 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_SPI5_Clock_Source SPI5 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_SPI6_Clock_Source SPI6 Clock Source
  * @{
  */
# 1191 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */



/** @defgroup RCCEx_SAI4A_Clock_Source SAI4A Clock Source
  * @{
  */
# 1209 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */





/** @defgroup RCCEx_SAI4B_Clock_Source SAI4B Clock Source
  * @{
  */
# 1229 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */



/** @defgroup RCCEx_LPTIM1_Clock_Source  RCCEx LPTIM1 Clock Source
  * @{
  */


/* alias */
# 1259 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_LPTIM2_Clock_Source  RCCEx LPTIM2 Clock Source
  * @{
  */


/* alias */
# 1286 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_LPTIM345_Clock_Source  RCCEx LPTIM3/4/5 Clock Source
  * @{
  */


/* alias*/
# 1313 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_LPTIM3_Clock_Source  RCCEx LPTIM3 Clock Source
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_LPTIM4_Clock_Source  RCCEx LPTIM4 Clock Source
  * @{
  */






/**
  * @}
  */



/** @defgroup RCCEx_LPTIM5_Clock_Source  RCCEx LPTIM5 Clock Source
  * @{
  */







/**
  * @}
  */



/** @defgroup RCCEx_QSPI_Clock_Source  RCCEx QSPI Clock Source
  * @{
  */





/**
  * @}
  */
# 1404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @defgroup RCCEx_DSI_Clock_Source  RCCEx DSI Clock Source
  * @{
  */



/**
  * @}
  */


/** @defgroup RCCEx_FMC_Clock_Source  RCCEx FMC Clock Source
  * @{
  */
# 1433 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */


/** @defgroup RCCEx_FDCAN_Clock_Source  RCCEx FDCAN Clock Source
  * @{
  */
# 1450 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */



/** @defgroup RCCEx_SDMMC_Clock_Source  RCCEx SDMMC Clock Source
  * @{
  */







/**
  * @}
  */


/** @defgroup RCCEx_ADC_Clock_Source  RCCEx ADC Clock Source
  * @{
  */
# 1483 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_SWPMI1_Clock_Source  RCCEx SWPMI1 Clock Source
  * @{
  */
# 1499 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_DFSDM1_Clock_Source  RCCEx DFSDM1 Clock Source
  * @{
  */
# 1515 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */
# 1532 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @defgroup RCCEx_SPDIFRX_Clock_Source  RCCEx SPDIFRX Clock Source
  * @{
  */
# 1546 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_CEC_Clock_Source  RCCEx CEC Clock Source
  * @{
  */
# 1562 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */


/** @defgroup RCCEx_CLKP_Clock_Source  RCCEx CLKP Clock Source
  * @{
  */
# 1579 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_TIM_Prescaler_Selection RCCEx TIM Prescaler Selection
  * @{
  */



/**
  * @}
  */



/** @defgroup RCCEx_RCC_BootCx RCCEx RCC BootCx
  * @{
  */



/**
  * @}
  */



/** @defgroup RCCEx_RCC_WWDGx  RCCEx RCC WWDGx
  * @{
  */



/**
  * @}
  */
# 1630 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @defgroup RCCEx_EXTI_LINE_LSECSS  RCC LSE CSS external interrupt line
  * @{
  */

/**
  * @}
  */

/** @defgroup RCCEx_CRS_Status RCCEx CRS Status
  * @{
  */







/**
  * @}
  */

/** @defgroup RCCEx_CRS_SynchroSource RCCEx CRS SynchroSource
  * @{
  */






/**
  * @}
  */

/** @defgroup RCCEx_CRS_SynchroDivider RCCEx CRS SynchroDivider
  * @{
  */
# 1676 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_CRS_SynchroPolarity RCCEx CRS SynchroPolarity
  * @{
  */


/**
  * @}
  */

/** @defgroup RCCEx_CRS_ReloadValueDefault RCCEx CRS ReloadValueDefault
  * @{
  */


/**
  * @}
  */

/** @defgroup RCCEx_CRS_ErrorLimitDefault RCCEx CRS ErrorLimitDefault
  * @{
  */

/**
  * @}
  */

/** @defgroup RCCEx_CRS_HSI48CalibrationDefault RCCEx CRS HSI48CalibrationDefault
  * @{
  */



/**
  * @}
  */

/** @defgroup RCCEx_CRS_FreqErrorDirection RCCEx CRS FreqErrorDirection
  * @{
  */


/**
  * @}
  */

/** @defgroup RCCEx_CRS_Interrupt_Sources RCCEx CRS Interrupt Sources
  * @{
  */
# 1736 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/** @defgroup RCCEx_CRS_Flags RCCEx CRS Flags
  * @{
  */
# 1751 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/**
  * @}
  */



/* Exported macro ------------------------------------------------------------*/
/** @defgroup RCCEx_Exported_Macros RCCEx Exported Macros
  * @{
  */

/** @brief  Macros to enable or disable PLL2.
  * @note   After enabling PLL2, the application software should wait on
  *         PLL2RDY flag to be set indicating that PLL2 clock is stable and can
  *         be used as kernel clock source.
  * @note   PLL2 is disabled by hardware when entering STOP and STANDBY modes.
  */



/**
  * @brief  Enables or disables each clock output (PLL2_P_CLK, PLL2_Q_CLK, PLL2_R_CLK)
  * @note   Enabling/disabling  those Clocks can be done only when the PLL2 is disabled,
  *         This is mainly used to save Power.
  * @param  __RCC_PLL2ClockOut__ Specifies the PLL2 clock to be outputted
  *          This parameter can be one of the following values:
  *            @arg RCC_PLL2_DIVP: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *            @arg RCC_PLL2_DIVQ: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *            @arg RCC_PLL2_DIVR: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *
  * (*) : For stm32h72xxx and stm32h73xxx family lines and requires to enable the CPU_FREQ_BOOST flash option byte, 520MHZ otherwise.
  * (**) : For stm32h74xx and stm32h75xx family lines and requires the board to be connected on LDO regulator not SMPS, 400MHZ otherwise.
  * (***): For stm32h7a3xx, stm32h7b3xx and stm32h7b0xx family lines.
  *
  * @retval None
  */




/**
  * @brief  Enables or disables Fractional Part Of The Multiplication Factor of PLL2 VCO
  * @note   Enabling/disabling  Fractional Part can be any time  without the need to stop the PLL2
  * @retval None
  */




/**
  * @brief  Macro to configures the PLL2  multiplication and division factors.
  * @note   This function must be used only when PLL2 is disabled.
  *
  * @param  __PLL2M__ specifies the division factor for PLL2 VCO input clock
  *          This parameter must be a number between 1 and 63.
  * @note   You have to set the PLLM parameter correctly to ensure that the VCO input
  *         frequency ranges from 1 to 16 MHz.
  *
  * @param  __PLL2N__ specifies the multiplication factor for PLL2 VCO output clock
  *          This parameter must be a number between 4 and 512 or between 8 and 420(*).
  * @note   You have to set the PLL2N parameter correctly to ensure that the VCO
  *         output frequency is between 150 and 420 MHz (when in medium VCO range) or
  *         between 192 and 836 MHZ or between 128 and 560 MHZ(*) (when in wide VCO range)
  *
  * @param  __PLL2P__ specifies the division factor for peripheral kernel clocks
  *          This parameter must be a number between 1 and 128.
  *
  * @param  __PLL2Q__ specifies the division factor for peripheral kernel clocks
  *          This parameter must be a number between 1 and 128.
  *
  * @param  __PLL2R__ specifies the division factor for peripheral kernel clocks
  *          This parameter must be a number between 1 and 128.
  *
  * @note   To insure an optimal behavior of the PLL when one of the post-divider (DIVP, DIVQ or DIVR)
  *         is not used, application shall clear the enable bit (DIVyEN) and assign lowest possible
  *         value to  __PLL2P__, __PLL2Q__ or __PLL2R__ parameters.
  * @retval None
  *
  *  (*) : For stm32h7a3xx and stm32h7b3xx family lines.
  */
# 1843 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @brief  Macro to configures PLL2 clock Fractional Part Of The Multiplication Factor
  *
  * @note   These bits can be written at any time, allowing dynamic fine-tuning of the PLL2 VCO
  *
  * @param  __RCC_PLL2FRACN__ Specifies Fractional Part Of The Multiplication factor for PLL2 VCO
  *                           It should be a value between 0 and 8191
  * @note   Warning: the software has to set correctly these bits to insure that the VCO
  *                  output frequency is between its valid frequency range, which is:
  *                  192 to 836 MHz or 128 to 560 MHz(*) if PLL2VCOSEL = 0
  *                  150 to 420 MHz if PLL2VCOSEL = 1.
  *
  * (*) : For stm32h7a3xx and stm32h7b3xx family lines.
  *
  * @retval None
  */



/** @brief  Macro to select  the PLL2  reference frequency range.
  * @param  __RCC_PLL2VCIRange__ specifies the PLL2 input frequency range
  *         This parameter can be one of the following values:
  *            @arg RCC_PLL2VCIRANGE_0: Range frequency is between 1 and 2 MHz
  *            @arg RCC_PLL2VCIRANGE_1: Range frequency is between 2 and 4 MHz
  *            @arg RCC_PLL2VCIRANGE_2: Range frequency is between 4 and 8 MHz
  *            @arg RCC_PLL2VCIRANGE_3: Range frequency is between 8 and 16 MHz
  * @retval None
  */




/** @brief  Macro to select  the PLL2  reference frequency range.
  * @param  __RCC_PLL2VCORange__ Specifies the PLL2 input frequency range
  *         This parameter can be one of the following values:
  *            @arg RCC_PLL2VCOWIDE: Range frequency is between 192 and 836 MHz or between 128 to 560 MHz(*)
  *            @arg RCC_PLL2VCOMEDIUM: Range frequency is between 150 and 420 MHz
  *
  * (*) : For stm32h7a3xx and stm32h7b3xx family lines.
  *
  * @retval None
  */



/** @brief  Macros to enable or disable the main PLL3.
  * @note   After enabling  PLL3, the application software should wait on
  *         PLL3RDY flag to be set indicating that PLL3 clock is stable and can
  *         be used as kernel clock source.
  * @note   PLL3 is disabled by hardware when entering STOP and STANDBY modes.
  */



/**
  * @brief  Enables or disables Fractional Part Of The Multiplication Factor of PLL3 VCO
  * @note   Enabling/disabling  Fractional Part can be any time  without the need to stop the PLL3
  * @retval None
  */




/**
  * @brief  Enables or disables each clock output (PLL3_P_CLK, PLL3_Q_CLK, PLL3_R_CLK)
  * @note   Enabling/disabling  those Clocks can be done only when the PLL3 is disabled,
  *         This is mainly used to save Power.
  * @param  __RCC_PLL3ClockOut__ specifies the PLL3 clock to be outputted
  *          This parameter can be one of the following values:
  *            @arg RCC_PLL3_DIVP: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *            @arg RCC_PLL3_DIVQ: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *            @arg RCC_PLL3_DIVR: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *
  * (*) : For stm32h72xxx and stm32h73xxx family lines and requires to enable the CPU_FREQ_BOOST flash option byte, 520MHZ otherwise.
  * (**) : For stm32h74xx and stm32h75xx family lines and requires the board to be connected on LDO regulator not SMPS, 400MHZ otherwise.
  * (***): For stm32h7a3xx, stm32h7b3xx and stm32h7b0xx family lines.
  *
  * @retval None
  */




/**
  * @brief  Macro to configures the PLL3  multiplication and division factors.
  * @note   This function must be used only when PLL3 is disabled.
  *
  * @param  __PLL3M__ specifies the division factor for PLL3 VCO input clock
  *          This parameter must be a number between 1 and 63.
  * @note   You have to set the PLLM parameter correctly to ensure that the VCO input
  *         frequency ranges from 1 to 16 MHz.
  *
  * @param  __PLL3N__ specifies the multiplication factor for PLL3 VCO output clock
  *          This parameter must be a number between 4 and 512.
  * @note   You have to set the PLL3N parameter correctly to ensure that the VCO
  *         output frequency is between 150 and 420 MHz (when in medium VCO range) or
  *         between 192 and 836 MHZ or between 128 and 560 MHZ(*) (when in wide VCO range)
  *
  * @param  __PLL3P__ specifies the division factor for peripheral kernel clocks
  *          This parameter must be a number between 2 and 128 (where odd numbers not allowed)
  *
  * @param  __PLL3Q__ specifies the division factor for peripheral kernel clocks
  *          This parameter must be a number between 1 and 128
  *
  * @param  __PLL3R__ specifies the division factor for peripheral kernel clocks
  *          This parameter must be a number between 1 and 128
  *
  * @note   To insure an optimal behavior of the PLL when one of the post-divider (DIVP, DIVQ or DIVR)
  *         is not used, application shall clear the enable bit (DIVyEN) and assign lowest possible
  *         value to  __PLL3P__, __PLL3Q__ or __PLL3R__ parameters.
  * @retval None
  *
  *  (*) : For stm32h7a3xx and stm32h7b3xx family lines.
  */
# 1966 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @brief  Macro to configures  PLL3 clock Fractional Part of The Multiplication Factor
  *
  * @note   These bits can be written at any time, allowing dynamic fine-tuning of the PLL3 VCO
  *
  * @param  __RCC_PLL3FRACN__ specifies Fractional Part Of The Multiplication Factor for PLL3 VCO
  *                            It should be a value between 0 and 8191
  * @note   Warning: the software has to set correctly these bits to insure that the VCO
  *                  output frequency is between its valid frequency range, which is:
  *                  192 to 836 MHz or 128 to 560 MHz(*) if PLL3VCOSEL = 0
  *                  150 to 420 MHz if PLL3VCOSEL = 1.
  *
  * (*) : For stm32h7a3xx and stm32h7b3xx family lines.
  *
  * @retval None
  */


/** @brief  Macro to select  the PLL3  reference frequency range.
  * @param  __RCC_PLL3VCIRange__ specifies the PLL1 input frequency range
  *         This parameter can be one of the following values:
  *            @arg RCC_PLL3VCIRANGE_0: Range frequency is between 1 and 2 MHz
  *            @arg RCC_PLL3VCIRANGE_1: Range frequency is between 2 and 4 MHz
  *            @arg RCC_PLL3VCIRANGE_2: Range frequency is between 4 and 8 MHz
  *            @arg RCC_PLL3VCIRANGE_3: Range frequency is between 8 and 16 MHz
  * @retval None
  */




/** @brief  Macro to select  the PLL3  reference frequency range.
  * @param  __RCC_PLL3VCORange__ specifies the PLL1 input frequency range
  *         This parameter can be one of the following values:
  *            @arg RCC_PLL3VCOWIDE: Range frequency is between 192 and 836 MHz  or between 128 to 560 MHz(*)
  *            @arg RCC_PLL3VCOMEDIUM: Range frequency is between 150 and 420 MHz
  *
  * (*) : For stm32h7a3xx and stm32h7b3xx family lines.
  *
  * @retval None
  */


/**
  * @brief  Macro to Configure the SAI1 clock source.
  * @param  __RCC_SAI1CLKSource__ defines the SAI1 clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SAI1CLKSOURCE_PLL: SAI1 clock = PLL
  *             @arg RCC_SAI1CLKSOURCE_PLL2: SAI1 clock = PLL2
  *             @arg RCC_SAI1CLKSOURCE_PLL3: SAI1 clock = PLL3
  *             @arg RCC_SAI1CLKSOURCE_OSC: SAI1 clock  = OSC
  *             @arg RCC_SAI1CLKSOURCE_PIN: SAI1 clock = External Clock
  * @retval None
  */
# 2029 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the SAI1 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SAI1CLKSOURCE_PLL: SAI1 clock = PLL
  *             @arg RCC_SAI1CLKSOURCE_PLL2: SAI1 clock = PLL2
  *             @arg RCC_SAI1CLKSOURCE_PLL3: SAI1 clock = PLL3
  *             @arg RCC_SAI1CLKSOURCE_CLKP: SAI1 clock  = CLKP
  *             @arg RCC_SAI1CLKSOURCE_PIN: SAI1 clock = External Clock
  */






/**
  * @brief  Macro to Configure the SPDIFRX clock source.
  * @param  __RCC_SPDIFCLKSource__ defines the SPDIFRX clock source. This clock is derived
  *         from system PLL, PLL2, PLL3,  or internal OSC clock
  *          This parameter can be one of the following values:
  *             @arg RCC_SPDIFRXCLKSOURCE_PLL:  SPDIFRX clock = PLL
  *             @arg RCC_SPDIFRXCLKSOURCE_PLL2: SPDIFRX clock = PLL2
  *             @arg RCC_SPDIFRXCLKSOURCE_PLL3: SPDIFRX clock = PLL3
  *             @arg RCC_SPDIFRXCLKSOURCE_HSI:  SPDIFRX clock  = HSI
  * @retval None
  */
# 2062 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @brief  Macro to get the SPDIFRX clock source.
  * @retval None
  */







/**
  * @brief  Macro to Configure the SAI2/3 clock source.
  * @param  __RCC_SAI23CLKSource__ defines the SAI2/3 clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SAI23CLKSOURCE_PLL: SAI2/3 clock = PLL
  *             @arg RCC_SAI23CLKSOURCE_PLL2: SAI2/3 clock = PLL2
  *             @arg RCC_SAI23CLKSOURCE_PLL3: SAI2/3 clock = PLL3
  *             @arg RCC_SAI23CLKSOURCE_CLKP: SAI2/3 clock  = CLKP
  *             @arg RCC_SAI23CLKSOURCE_PIN: SAI2/3 clock = External Clock
  * @retval None
  */



/** @brief  Macro to get the SAI2/3 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SAI23CLKSOURCE_PLL: SAI2/3 clock = PLL
  *             @arg RCC_SAI23CLKSOURCE_PLL2: SAI2/3 clock = PLL2
  *             @arg RCC_SAI23CLKSOURCE_PLL3: SAI2/3 clock = PLL3
  *             @arg RCC_SAI23CLKSOURCE_CLKP: SAI2/3 clock  = CLKP
  *             @arg RCC_SAI23CLKSOURCE_PIN: SAI2/3 clock = External Clock
  */


/**
  * @brief  Macro to Configure the SAI2 clock source.
  * @param  __RCC_SAI2CLKSource__ defines the SAI2 clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SAI2CLKSOURCE_PLL: SAI2 clock = PLL
  *             @arg RCC_SAI2CLKSOURCE_PLL2: SAI2 clock = PLL2
  *             @arg RCC_SAI2CLKSOURCE_PLL3: SAI2 clock = PLL3
  *             @arg RCC_SAI2CLKSOURCE_CLKP: SAI2 clock  = CLKP
  *             @arg RCC_SAI2CLKSOURCE_PIN: SAI2 clock = External Clock
  * @retval None
  */


/** @brief  Macro to get the SAI2 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SAI2CLKSOURCE_PLL: SAI2 clock = PLL
  *             @arg RCC_SAI2CLKSOURCE_PLL2: SAI2 clock = PLL2
  *             @arg RCC_SAI2CLKSOURCE_PLL3: SAI2 clock = PLL3
  *             @arg RCC_SAI2CLKSOURCE_CLKP: SAI2 clock  = CLKP
  *             @arg RCC_SAI2CLKSOURCE_PIN: SAI2 clock = External Clock
  */


/**
  * @brief  Macro to Configure the SAI3 clock source.
  * @param  __RCC_SAI3CLKSource__ defines the SAI3 clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SAI3CLKSOURCE_PLL: SAI3 clock = PLL
  *             @arg RCC_SAI3CLKSOURCE_PLL2: SAI3 clock = PLL2
  *             @arg RCC_SAI3CLKSOURCE_PLL3: SAI3 clock = PLL3
  *             @arg RCC_SAI3CLKSOURCE_CLKP: SAI3 clock  = CLKP
  *             @arg RCC_SAI3CLKSOURCE_PIN: SAI3 clock = External Clock
  * @retval None
  */


/** @brief  Macro to get the SAI3 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SAI3CLKSOURCE_PLL: SAI3 clock = PLL
  *             @arg RCC_SAI3CLKSOURCE_PLL2: SAI3 clock = PLL2
  *             @arg RCC_SAI3CLKSOURCE_PLL3: SAI3 clock = PLL3
  *             @arg RCC_SAI3CLKSOURCE_CLKP: SAI3 clock  = CLKP
  *             @arg RCC_SAI3CLKSOURCE_PIN: SAI3 clock = External Clock
  */
# 2207 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @brief  Macro to Configure the SAI4A clock source.
  * @param  __RCC_SAI4ACLKSource__ defines the SAI4A clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SAI4ACLKSOURCE_PLL: SAI4A clock = PLL
  *             @arg RCC_SAI4ACLKSOURCE_PLL2: SAI4A clock = PLL2
  *             @arg RCC_SAI4ACLKSOURCE_PLL3: SAI4A clock = PLL3
  *             @arg RCC_SAI4ACLKSOURCE_CLKP: SAI4A clock  = CLKP
  *             @arg RCC_SAI4ACLKSOURCE_PIN: SAI4A clock = External Clock
  * @retval None
  */



/** @brief  Macro to get the SAI4A clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SAI4ACLKSOURCE_PLL: SAI4B clock = PLL
  *             @arg RCC_SAI4ACLKSOURCE_PLL2: SAI4B clock = PLL2
  *             @arg RCC_SAI4ACLKSOURCE_PLL3: SAI4B clock = PLL3
  *             @arg RCC_SAI4ACLKSOURCE_CLKP: SAI4B clock  = CLKP
  *             @arg RCC_SAI4ACLKSOURCE_PIN: SAI4B clock = External Clock
  */




/**
  * @brief  Macro to Configure the SAI4B clock source.
  * @param  __RCC_SAI4BCLKSource__ defines the SAI4B clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SAI4BCLKSOURCE_PLL: SAI4B clock = PLL
  *             @arg RCC_SAI4BCLKSOURCE_PLL2: SAI4B clock = PLL2
  *             @arg RCC_SAI4BCLKSOURCE_PLL3: SAI4B clock = PLL3
  *             @arg RCC_SAI4BCLKSOURCE_CLKP: SAI4B clock  = CLKP
  *             @arg RCC_SAI4BCLKSOURCE_PIN: SAI4B clock = External Clock
  * @retval None
  */



/** @brief  Macro to get the SAI4B clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SAI4BCLKSOURCE_PLL: SAI4B clock = PLL
  *             @arg RCC_SAI4BCLKSOURCE_PLL2: SAI4B clock = PLL2
  *             @arg RCC_SAI4BCLKSOURCE_PLL3: SAI4B clock = PLL3
  *             @arg RCC_SAI4BCLKSOURCE_CLKP: SAI4B clock  = CLKP
  *             @arg RCC_SAI4BCLKSOURCE_PIN: SAI4B clock = External Clock
  */



/** @brief macro to configure the I2C1/2/3/5* clock (I2C123CLK).
  *
  * @param  __I2C1235CLKSource__ specifies the I2C1/2/3/5* clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_I2C123CLKSOURCE_D2PCLK1: D2PCLK1 selected as I2C1/2/3/5* clock
  *            @arg RCC_I2C123CLKSOURCE_PLL3: PLL3 selected as I2C1/2/3/5* clock
  *            @arg RCC_I2C123CLKSOURCE_HSI: HSI selected as I2C1/2/3/5* clock
  *            @arg RCC_I2C123CLKSOURCE_CSI: CSI selected as I2C1/2/3/5* clock
  *
  * (**): Available on stm32h72xxx and stm32h73xxx family lines.
  */
# 2284 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the I2C1/2/3/5* clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_I2C123CLKSOURCE_D2PCLK1: D2PCLK1 selected as I2C1/2/3/5* clock
  *            @arg RCC_I2C123CLKSOURCE_PLL3: PLL3 selected as I2C1/2/3/5* clock
  *            @arg RCC_I2C123CLKSOURCE_HSI: HSI selected as I2C1/2/3/5* clock
  *            @arg RCC_I2C123CLKSOURCE_CSI: CSI selected as I2C1/2/3/5* clock
  *
  * (**): Available on stm32h72xxx and stm32h73xxx family lines.
  */
# 2303 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief macro to configure the I2C1 clock (I2C1CLK).
  *
  * @param  __I2C1CLKSource__ specifies the I2C1 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_I2C1CLKSOURCE_D2PCLK1: D2PCLK1 selected as I2C1 clock
  *            @arg RCC_I2C1CLKSOURCE_PLL3: PLL3 selected as I2C1 clock
  *            @arg RCC_I2C1CLKSOURCE_HSI: HSI selected as I2C1 clock
  *            @arg RCC_I2C1CLKSOURCE_CSI: CSI selected as I2C1 clock
  */






/** @brief  macro to get the I2C1 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_I2C1CLKSOURCE_D2PCLK1: D2PCLK1 selected as I2C1 clock
  *            @arg RCC_I2C1CLKSOURCE_PLL3: PLL3 selected as I2C1 clock
  *            @arg RCC_I2C1CLKSOURCE_HSI: HSI selected as I2C1 clock
  *            @arg RCC_I2C1CLKSOURCE_CSI: CSI selected as I2C1 clock
  */






/** @brief macro to configure the I2C2 clock (I2C2CLK).
  *
  * @param  __I2C2CLKSource__ specifies the I2C2 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_I2C2CLKSOURCE_D2PCLK1: D2PCLK1 selected as I2C2 clock
  *            @arg RCC_I2C2CLKSOURCE_PLL3: PLL3 selected as I2C2 clock
  *            @arg RCC_I2C2CLKSOURCE_HSI: HSI selected as I2C2 clock
  *            @arg RCC_I2C2CLKSOURCE_CSI: CSI selected as I2C2 clock
  */






/** @brief  macro to get the I2C2 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_I2C2CLKSOURCE_D2PCLK1: D2PCLK1 selected as I2C2 clock
  *            @arg RCC_I2C2CLKSOURCE_PLL3: PLL3 selected as I2C2 clock
  *            @arg RCC_I2C2CLKSOURCE_HSI: HSI selected as I2C2 clock
  *            @arg RCC_I2C2CLKSOURCE_CSI: CSI selected as I2C2 clock
  */






/** @brief macro to configure the I2C3 clock (I2C3CLK).
  *
  * @param  __I2C3CLKSource__ specifies the I2C3 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_I2C3CLKSOURCE_D2PCLK1: D2PCLK1 selected as I2C3 clock
  *            @arg RCC_I2C3CLKSOURCE_PLL3: PLL3 selected as I2C3 clock
  *            @arg RCC_I2C3CLKSOURCE_HSI: HSI selected as I2C3 clock
  *            @arg RCC_I2C3CLKSOURCE_CSI: CSI selected as I2C3 clock
  */






/** @brief  macro to get the I2C3 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_I2C3CLKSOURCE_D2PCLK1: D2PCLK1 selected as I2C3 clock
  *            @arg RCC_I2C3CLKSOURCE_PLL3: PLL3 selected as I2C3 clock
  *            @arg RCC_I2C3CLKSOURCE_HSI: HSI selected as I2C3 clock
  *            @arg RCC_I2C3CLKSOURCE_CSI: CSI selected as I2C3 clock
  */






/** @brief macro to configure the I2C4 clock (I2C4CLK).
  *
  * @param  __I2C4CLKSource__ specifies the I2C4 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_I2C4CLKSOURCE_D3PCLK1: D3PCLK1 selected as I2C4 clock
  *            @arg RCC_I2C4CLKSOURCE_PLL3: PLL3 selected as I2C4 clock
  *            @arg RCC_I2C4CLKSOURCE_HSI: HSI selected as I2C4 clock
  *            @arg RCC_I2C4CLKSOURCE_CSI: CSI selected as I2C4 clock
  */
# 2404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the I2C4 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_I2C4CLKSOURCE_D3PCLK1: D3PCLK1 selected as I2C4 clock
  *            @arg RCC_I2C4CLKSOURCE_PLL3: PLL3 selected as I2C4 clock
  *            @arg RCC_I2C4CLKSOURCE_HSI: HSI selected as I2C4 clock
  *            @arg RCC_I2C4CLKSOURCE_CSI: CSI selected as I2C4 clock
  */
# 2441 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief macro to configure the USART1/6/9* /10* clock (USART16CLK).
  *
  * @param  __USART16910CLKSource__ specifies the USART1/6/9* /10* clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_USART16CLKSOURCE_D2PCLK2: APB2 Clock selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_PLL2: PLL2_Q Clock selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_PLL3: PLL3_Q Clock selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_HSI: HSI selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_CSI: CSI Clock selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_LSE: LSE selected as USART1/6/9* /10* clock
  *
  * (*) : Available on some STM32H7 lines only.
  */
# 2469 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the USART1/6/9* /10* clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_USART16CLKSOURCE_D2PCLK2: APB2 Clock selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_PLL2: PLL2_Q Clock selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_PLL3: PLL3_Q Clock selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_HSI: HSI selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_CSI: CSI Clock selected as USART1/6/9* /10* clock
  *            @arg RCC_USART16CLKSOURCE_LSE: LSE selected as USART1/6/9* /10* clock
  *
  * (*) : Available on some STM32H7 lines only.
  */
# 2492 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief macro to configure the USART234578 clock (USART234578CLK).
  *
  * @param  __USART234578CLKSource__ specifies the USART2/3/4/5/7/8 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_USART234578CLKSOURCE_D2PCLK1: APB1 Clock selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_PLL2: PLL2_Q Clock selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_PLL3: PLL3_Q Clock selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_HSI: HSI selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_CSI: CSI Clock selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_LSE: LSE selected as USART2/3/4/5/7/8 clock
  */
# 2511 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the USART2/3/4/5/7/8 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_USART234578CLKSOURCE_D2PCLK1: APB1 Clock selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_PLL2: PLL2_Q Clock selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_PLL3: PLL3_Q Clock selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_HSI: HSI selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_CSI: CSI Clock selected as USART2/3/4/5/7/8 clock
  *            @arg RCC_USART234578CLKSOURCE_LSE: LSE selected as USART2/3/4/5/7/8 clock
  */






/** @brief macro to configure the USART1 clock (USART1CLK).
  *
  * @param  __USART1CLKSource__ specifies the USART1 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_USART1CLKSOURCE_D2PCLK2: APB2 Clock selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_PLL2: PLL2_Q Clock selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_PLL3: PLL3_Q Clock selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_HSI: HSI selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_CSI: CSI Clock selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_LSE: LSE selected as USART1 clock
  */


/** @brief  macro to get the USART1 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_USART1CLKSOURCE_D2PCLK2: APB2 Clock selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_PLL2: PLL2_Q Clock selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_PLL3: PLL3_Q Clock selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_HSI: HSI selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_CSI: CSI Clock selected as USART1 clock
  *            @arg RCC_USART1CLKSOURCE_LSE: LSE selected as USART1 clock
  */


/** @brief macro to configure the USART2 clock (USART2CLK).
  *
  * @param  __USART2CLKSource__ specifies the USART2 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_USART2CLKSOURCE_D2PCLK1: APB1 Clock selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_PLL2: PLL2_Q Clock selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_PLL3: PLL3_Q Clock selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_HSI: HSI selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_CSI: CSI Clock selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_LSE: LSE selected as USART2 clock
  */


/** @brief  macro to get the USART2 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_USART2CLKSOURCE_D2PCLK1: APB1 Clock selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_PLL2: PLL2_Q Clock selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_PLL3: PLL3_Q Clock selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_HSI: HSI selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_CSI: CSI Clock selected as USART2 clock
  *            @arg RCC_USART2CLKSOURCE_LSE: LSE selected as USART2 clock
  */


/** @brief macro to configure the USART3 clock (USART3CLK).
  *
  * @param  __USART3CLKSource__ specifies the USART3 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_USART3CLKSOURCE_D2PCLK1: APB1 Clock selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_PLL2: PLL2_Q Clock selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_PLL3: PLL3_Q Clock selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_HSI: HSI selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_CSI: CSI Clock selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_LSE: LSE selected as USART3 clock
  */


/** @brief  macro to get the USART3 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_USART2CLKSOURCE_D2PCLK1: APB1 Clock selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_PLL2: PLL2_Q Clock selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_PLL3: PLL3_Q Clock selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_HSI: HSI selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_CSI: CSI Clock selected as USART3 clock
  *            @arg RCC_USART3CLKSOURCE_LSE: LSE selected as USART3 clock
  */


/** @brief macro to configure the UART4 clock (UART4CLK).
  *
  * @param  __UART4CLKSource__ specifies the UART4 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_UART4CLKSOURCE_D2PCLK1: APB1 Clock selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_PLL2: PLL2_Q Clock selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_PLL3: PLL3_Q Clock selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_HSI: HSI selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_CSI: CSI Clock selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_LSE: LSE selected as UART4 clock
  */


/** @brief  macro to get the UART4 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_UART4CLKSOURCE_D2PCLK1: APB1 Clock selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_PLL2: PLL2_Q Clock selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_PLL3: PLL3_Q Clock selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_HSI: HSI selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_CSI: CSI Clock selected as UART4 clock
  *            @arg RCC_UART4CLKSOURCE_LSE: LSE selected as UART4 clock
  */


/** @brief macro to configure the UART5 clock (UART5CLK).
  *
  * @param  __UART5CLKSource__ specifies the UART5 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_UART5CLKSOURCE_D2PCLK1: APB1 Clock selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_PLL2: PLL2_Q Clock selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_PLL3: PLL3_Q Clock selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_HSI: HSI selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_CSI: CSI Clock selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_LSE: LSE selected as UART5 clock
  */


/** @brief  macro to get the UART5 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_UART5CLKSOURCE_D2PCLK1: APB1 Clock selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_PLL2: PLL2_Q Clock selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_PLL3: PLL3_Q Clock selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_HSI: HSI selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_CSI: CSI Clock selected as UART5 clock
  *            @arg RCC_UART5CLKSOURCE_LSE: LSE selected as UART5 clock
  */


/** @brief macro to configure the USART6 clock (USART6CLK).
  *
  * @param  __USART6CLKSource__ specifies the USART6 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_USART6CLKSOURCE_D2PCLK2: APB2 Clock selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_PLL2: PLL2_Q Clock selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_PLL3: PLL3_Q Clock selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_HSI: HSI selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_CSI: CSI Clock selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_LSE: LSE selected as USART6 clock
  */


/** @brief  macro to get the USART6 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_USART6CLKSOURCE_D2PCLK2: APB2 Clock selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_PLL2: PLL2_Q Clock selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_PLL3: PLL3_Q Clock selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_HSI: HSI selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_CSI: CSI Clock selected as USART6 clock
  *            @arg RCC_USART6CLKSOURCE_LSE: LSE selected as USART6 clock
  */


/** @brief macro to configure the UART5 clock (UART7CLK).
  *
  * @param  __UART7CLKSource__ specifies the UART7 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_UART7CLKSOURCE_D2PCLK1: APB1 Clock selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_PLL2: PLL2_Q Clock selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_PLL3: PLL3_Q Clock selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_HSI: HSI selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_CSI: CSI Clock selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_LSE: LSE selected as UART7 clock
  */


/** @brief  macro to get the UART7 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_UART7CLKSOURCE_D2PCLK1: APB1 Clock selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_PLL2: PLL2_Q Clock selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_PLL3: PLL3_Q Clock selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_HSI: HSI selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_CSI: CSI Clock selected as UART7 clock
  *            @arg RCC_UART7CLKSOURCE_LSE: LSE selected as UART7 clock
  */


/** @brief macro to configure the UART8 clock (UART8CLK).
  *
  * @param  __UART8CLKSource__ specifies the UART8 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_UART8CLKSOURCE_D2PCLK1: APB1 Clock selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_PLL2: PLL2_Q Clock selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_PLL3: PLL3_Q Clock selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_HSI: HSI selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_CSI: CSI Clock selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_LSE: LSE selected as UART8 clock
  */


/** @brief  macro to get the UART8 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_UART8CLKSOURCE_D2PCLK1: APB1 Clock selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_PLL2: PLL2_Q Clock selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_PLL3: PLL3_Q Clock selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_HSI: HSI selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_CSI: CSI Clock selected as UART8 clock
  *            @arg RCC_UART8CLKSOURCE_LSE: LSE selected as UART8 clock
  */
# 2770 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief macro to configure the LPUART1 clock (LPUART1CLK).
  *
  * @param  __LPUART1CLKSource__ specifies the LPUART1 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_LPUART1CLKSOURCE_D3PCLK1: APB4 Clock selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_PLL2: PLL2_Q Clock selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_PLL3: PLL3_Q Clock selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_HSI: HSI selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_CSI: CSI Clock selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_LSE: LSE selected as LPUART1 clock
  */
# 2789 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the LPUART1 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_LPUART1CLKSOURCE_D3PCLK1: APB4 Clock selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_PLL2: PLL2_Q Clock selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_PLL3: PLL3_Q Clock selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_HSI: HSI selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_CSI: CSI Clock selected as LPUART1 clock
  *            @arg RCC_LPUART1CLKSOURCE_LSE: LSE selected as LPUART1 clock
  */






/** @brief  macro to configure the LPTIM1 clock source.
  *
  * @param  __LPTIM1CLKSource__ specifies the LPTIM1 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_LPTIM1CLKSOURCE_D2PCLK1: APB1 Clock selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_LSE: LSE selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_LSI: LSI Clock selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_CLKP: CLKP selected as LPTIM1 clock
  */
# 2823 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the LPTIM1 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_LPTIM1CLKSOURCE_D2PCLK1: APB1 Clock selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_LSE: LSE selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_LSI: LSI Clock selected as LPTIM1 clock
  *            @arg RCC_LPTIM1CLKSOURCE_CLKP: CLKP selected as LPTIM1 clock
  */






/** @brief  macro to configure the LPTIM2 clock source.
  *
  * @param  __LPTIM2CLKSource__ specifies the LPTIM2 clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_LPTIM2CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_LSE: LSE selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_LSI: LSI Clock selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_CLKP: CLKP selected as LPTIM2 clock
  */
# 2857 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the LPTIM2 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_LPTIM2CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_LSE: LSE selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_LSI: LSI Clock selected as LPTIM2 clock
  *            @arg RCC_LPTIM2CLKSOURCE_CLKP: CLKP selected as LPTIM2 clock
  */






/** @brief  macro to configure the LPTIM3/4/5 clock source.
  *
  * @param  __LPTIM345CLKSource__ specifies the LPTIM3/4/5 clock source.
  *            @arg RCC_LPTIM345CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_LSE: LSE selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_LSI: LSI Clock selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_CLKP: CLKP selected as LPTIM3/4/5 clock
  */
# 2890 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the LPTIM3/4/5 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_LPTIM345CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_LSE: LSE selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_LSI: LSI Clock selected as LPTIM3/4/5 clock
  *            @arg RCC_LPTIM345CLKSOURCE_CLKP: CLKP selected as LPTIM3/4/5 clock
  */






/** @brief  macro to configure the LPTIM3 clock source.
  *
  * @param  __LPTIM3CLKSource__ specifies the LPTIM3 clock source.
  *            @arg RCC_LPTIM3CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_LSE: LSE selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_LSI: LSI Clock selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_CLKP: CLKP selected as LPTIM3 clock
  */


/** @brief  macro to get the LPTIM3 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_LPTIM3CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_LSE: LSE selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_LSI: LSI Clock selected as LPTIM3 clock
  *            @arg RCC_LPTIM3CLKSOURCE_CLKP: CLKP selected as LPTIM3 clock
  */



/** @brief  macro to configure the LPTIM4 clock source.
  *
  * @param  __LPTIM4CLKSource__ specifies the LPTIM4 clock source.
  *            @arg RCC_LPTIM4CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_LSE: LSE selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_LSI: LSI Clock selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_CLKP: CLKP selected as LPTIM4 clock
  */



/** @brief  macro to get the LPTIM4 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_LPTIM4CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_LSE: LSE selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_LSI: LSI Clock selected as LPTIM4 clock
  *            @arg RCC_LPTIM4CLKSOURCE_CLKP: CLKP selected as LPTIM4 clock
  */




/** @brief  macro to configure the LPTIM5 clock source.
  *
  * @param  __LPTIM5CLKSource__ specifies the LPTIM5 clock source.
  *            @arg RCC_LPTIM5CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_LSE: LSE selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_LSI: LSI Clock selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_CLKP: CLKP selected as LPTIM5 clock
  */



/** @brief  macro to get the LPTIM5 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_LPTIM5CLKSOURCE_D3PCLK1: APB4 Clock selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_PLL2: PLL2_P Clock selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_PLL3: PLL3_R Clock selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_LSE: LSE selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_LSI: LSI Clock selected as LPTIM5 clock
  *            @arg RCC_LPTIM5CLKSOURCE_CLKP: CLKP selected as LPTIM5 clock
  */




/** @brief  macro to configure the QSPI clock source.
  *
  * @param  __QSPICLKSource__ specifies the QSPI clock source.
  *            @arg RCC_RCC_QSPICLKSOURCE_D1HCLK: Domain1 HCLK Clock selected as QSPI clock
  *            @arg RCC_RCC_QSPICLKSOURCE_PLL   : PLL1_Q Clock selected as QSPI clock
  *            @arg RCC_RCC_QSPICLKSOURCE_PLL2  : PLL2_R Clock selected as QSPI clock
  *            @arg RCC_RCC_QSPICLKSOURCE_CLKP    CLKP selected as QSPI clock
  */




/** @brief  macro to get the QSPI clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_RCC_QSPICLKSOURCE_D1HCLK: Domain1 HCLK Clock selected as QSPI clock
  *            @arg RCC_RCC_QSPICLKSOURCE_PLL   : PLL1_Q Clock selected as QSPI clock
  *            @arg RCC_RCC_QSPICLKSOURCE_PLL2  : PLL2_R Clock selected as QSPI clock
  *            @arg RCC_RCC_QSPICLKSOURCE_CLKP    CLKP selected as QSPI clock
  */
# 3036 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to configure the DSI clock source.
  *
  * @param  __DSICLKSource__ specifies the DSI clock source.
  *            @arg RCC_RCC_DSICLKSOURCE_PHY:DSI clock from PHY is selected as DSI byte lane clock
  *            @arg RCC_RCC_DSICLKSOURCE_PLL2   : PLL2_Q Clock clock is selected as DSI byte lane clock
  */




/** @brief  macro to get the DSI clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_RCC_DSICLKSOURCE_PHY: DSI clock from PHY is selected as DSI byte lane clock
  *            @arg RCC_RCC_DSICLKSOURCE_PLL2: PLL2_Q Clock clock is selected as DSI byte lane clock
  */



/** @brief  macro to configure the FMC clock source.
  *
  * @param  __FMCCLKSource__ specifies the FMC clock source.
  *            @arg RCC_RCC_FMCCLKSOURCE_D1HCLK: Domain1 HCLK Clock selected as FMC clock
  *            @arg RCC_RCC_FMCCLKSOURCE_PLL   : PLL1_Q Clock selected as FMC clock
  *            @arg RCC_RCC_FMCCLKSOURCE_PLL2  : PLL2_R Clock selected as FMC clock
  *            @arg RCC_RCC_FMCCLKSOURCE_CLKP    CLKP selected as FMC clock
  */
# 3070 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the FMC clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_RCC_FMCCLKSOURCE_D1HCLK: Domain1 HCLK Clock selected as FMC clock
  *            @arg RCC_RCC_FMCCLKSOURCE_PLL   : PLL1_Q Clock selected as FMC clock
  *            @arg RCC_RCC_FMCCLKSOURCE_PLL2  : PLL2_R Clock selected as FMC clock
  *            @arg RCC_RCC_FMCCLKSOURCE_CLKP    CLKP selected as FMC clock
  */






/** @brief  Macro to configure the USB clock (USBCLK).
  * @param  __USBCLKSource__ specifies the USB clock source.
  *         This parameter can be one of the following values:
  *            @arg RCC_USBCLKSOURCE_PLL:   PLL1Q selected as USB clock
  *            @arg RCC_USBCLKSOURCE_PLL3:  PLL3Q Clock selected as USB clock
  *            @arg RCC_USBCLKSOURCE_HSI48: RC48 MHZ Clock selected as USB clock
  */
# 3098 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the USB clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_USBCLKSOURCE_PLL:   PLL1Q selected as USB clock
  *            @arg RCC_USBCLKSOURCE_PLL3:  PLL3Q Clock selected as USB clock
  *            @arg RCC_USBCLKSOURCE_HSI48: RC48 MHZ Clock selected as USB clock
  */






/** @brief  Macro to configure the ADC clock
  * @param  __ADCCLKSource__ specifies the ADC digital interface clock source.
  *         This parameter can be one of the following values:
  *            @arg RCC_ADCCLKSOURCE_PLL2: PLL2_P Clock selected as ADC clock
  *            @arg RCC_ADCCLKSOURCE_PLL3: PLL3_R Clock selected as ADC clock
  *            @arg RCC_ADCCLKSOURCE_CLKP: CLKP Clock selected as ADC clock
  */
# 3125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the ADC clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_ADCCLKSOURCE_PLL2: PLL2_P Clock selected as ADC clock
  *            @arg RCC_ADCCLKSOURCE_PLL3: PLL3_R Clock selected as ADC clock
  *            @arg RCC_ADCCLKSOURCE_CLKP: CLKP Clock selected as ADC clock
  */






/** @brief  Macro to configure the SWPMI1 clock
 * @param  __SWPMI1CLKSource__ specifies the SWPMI1  clock source.
 *         This parameter can be one of the following values:
 *            @arg RCC_SWPMI1CLKSOURCE_D2PCLK1:  D2PCLK1 Clock selected as SWPMI1 clock
 *            @arg RCC_SWPMI1CLKSOURCE_HSI: HSI Clock selected as SWPMI1 clock
 */
# 3151 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the SWPMI1 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_SWPMI1CLKSOURCE_D2PCLK1:  D2PCLK1 Clock selected as SWPMI1 clock
  *            @arg RCC_SWPMI1CLKSOURCE_HSI: HSI Clock selected as SWPMI1 clock
  */






/** @brief  Macro to configure the DFSDM1 clock
 * @param  __DFSDM1CLKSource__ specifies the DFSDM1  clock source.
 *         This parameter can be one of the following values:
 *            @arg RCC_DFSDM1CLKSOURCE_D2PCLK:  D2PCLK Clock selected as DFSDM1 clock
 *            @arg RCC_DFSDM1CLKSOURCE_SYS:     System Clock selected as DFSDM1 clock
 */
# 3176 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the DFSDM1 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_DFSDM1CLKSOURCE_D2PCLK:  D2PCLK Clock selected as DFSDM1 clock
  *            @arg RCC_DFSDM1CLKSOURCE_SYS:   System Clock selected as DFSDM1 clock
  */
# 3205 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief macro to configure the CEC clock (CECCLK).
  *
  * @param  __CECCLKSource__ specifies the CEC clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_CECCLKSOURCE_LSE: LSE selected as CEC clock
  *            @arg RCC_CECCLKSOURCE_LSI: LSI selected as CEC clock
  *            @arg RCC_CECCLKSOURCE_CSI: CSI Clock selected as CEC clock
  */
# 3221 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the CEC clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_CECCLKSOURCE_LSE: LSE selected as CEC clock
  *            @arg RCC_CECCLKSOURCE_LSI: LSI selected as CEC clock
  *            @arg RCC_CECCLKSOURCE_CSI: CSI Clock selected as CEC clock
  */






/** @brief  Macro to configure the CLKP : Oscillator clock for peripheral
  * @param  __CLKPSource__ specifies Oscillator clock for peripheral
  *         This parameter can be one of the following values:
  *            @arg RCC_CLKPSOURCE_HSI: HSI selected Oscillator clock for peripheral
  *            @arg RCC_CLKPSOURCE_CSI: CSI selected Oscillator clock for peripheral
  *            @arg RCC_CLKPSOURCE_HSE: HSE selected Oscillator clock for peripheral
  */
# 3248 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the Oscillator clock for peripheral  source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_CLKPSOURCE_HSI: HSI selected Oscillator clock for peripheral
  *            @arg RCC_CLKPSOURCE_CSI: CSI selected Oscillator clock for peripheral
  *            @arg RCC_CLKPSOURCE_HSE: HSE selected Oscillator clock for peripheral
  */







/** @brief  Macro to configure the FDCAN clock
  * @param  __FDCANCLKSource__ specifies  clock source  for FDCAN
  *         This parameter can be one of the following values:
  *            @arg RCC_FDCANCLKSOURCE_HSE: HSE selected as FDCAN clock
  *            @arg RCC_FDCANCLKSOURCE_PLL: PLL selected as FDCAN clock
  *            @arg RCC_FDCANCLKSOURCE_PLL2: PLL2 selected as FDCAN clock
  */
# 3276 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the FDCAN clock
  * @retval The clock source can be one of the following values:
  *            @arg RCC_FDCANCLKSOURCE_HSE: HSE selected as FDCAN clock
  *            @arg RCC_FDCANCLKSOURCE_PLL: PLL selected as FDCAN clock
  *            @arg RCC_FDCANCLKSOURCE_PLL2: PLL2 selected as FDCAN clock
  */
# 3290 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @brief  Macro to Configure the SPI1/2/3 clock source.
  * @param  __RCC_SPI123CLKSource__ defines the SPI1/2/3 clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SPI123CLKSOURCE_PLL: SPI1/2/3 clock = PLL
  *             @arg RCC_SPI123CLKSOURCE_PLL2: SPI1/2/3 clock = PLL2
  *             @arg RCC_SPI123CLKSOURCE_PLL3: SPI1/2/3 clock = PLL3
  *             @arg RCC_SPI123CLKSOURCE_CLKP: SPI1/2/3 clock  = CLKP
  *             @arg RCC_SPI123CLKSOURCE_PIN: SPI1/2/3 clock = External Clock
  * @retval None
  */
# 3310 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the SPI1/2/3 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SPI123CLKSOURCE_PLL: SPI1/2/3 clock = PLL
  *             @arg RCC_SPI123CLKSOURCE_PLL2: SPI1/2/3 clock = PLL2
  *             @arg RCC_SPI123CLKSOURCE_PLL3: SPI1/2/3 clock = PLL3
  *             @arg RCC_SPI123CLKSOURCE_CLKP: SPI1/2/3 clock  = CLKP
  *             @arg RCC_SPI123CLKSOURCE_PIN: SPI1/2/3 clock = External Clock
  */






/**
  * @brief  Macro to Configure the SPI1 clock source.
  * @param  __RCC_SPI1CLKSource__ defines the SPI1 clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SPI1CLKSOURCE_PLL: SPI1 clock = PLL
  *             @arg RCC_SPI1CLKSOURCE_PLL2: SPI1 clock = PLL2
  *             @arg RCC_SPI1CLKSOURCE_PLL3: SPI1 clock = PLL3
  *             @arg RCC_SPI1CLKSOURCE_CLKP: SPI1 clock  = CLKP
  *             @arg RCC_SPI1CLKSOURCE_PIN: SPI1 clock = External Clock
  * @retval None
  */


/** @brief  Macro to get the SPI1 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SPI1CLKSOURCE_PLL: SPI1 clock = PLL
  *             @arg RCC_SPI1CLKSOURCE_PLL2: SPI1 clock = PLL2
  *             @arg RCC_SPI1CLKSOURCE_PLL3: SPI1 clock = PLL3
  *             @arg RCC_SPI1CLKSOURCE_CLKP: SPI1 clock  = CLKP
  *             @arg RCC_SPI1CLKSOURCE_PIN: SPI1 clock = External Clock
  */


/**
  * @brief  Macro to Configure the SPI2 clock source.
  * @param  __RCC_SPI2CLKSource__ defines the SPI2 clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SPI2CLKSOURCE_PLL: SPI2 clock = PLL
  *             @arg RCC_SPI2CLKSOURCE_PLL2: SPI2 clock = PLL2
  *             @arg RCC_SPI2CLKSOURCE_PLL3: SPI2 clock = PLL3
  *             @arg RCC_SPI2CLKSOURCE_CLKP: SPI2 clock  = CLKP
  *             @arg RCC_SPI2CLKSOURCE_PIN: SPI2 clock = External Clock
  * @retval None
  */


/** @brief  Macro to get the SPI2 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SPI2CLKSOURCE_PLL: SPI2 clock = PLL
  *             @arg RCC_SPI2CLKSOURCE_PLL2: SPI2 clock = PLL2
  *             @arg RCC_SPI2CLKSOURCE_PLL3: SPI2 clock = PLL3
  *             @arg RCC_SPI2CLKSOURCE_CLKP: SPI2 clock  = CLKP
  *             @arg RCC_SPI2CLKSOURCE_PIN: SPI2 clock = External Clock
  */


/**
  * @brief  Macro to Configure the SPI3 clock source.
  * @param  __RCC_SPI3CLKSource__ defines the SPI3 clock source. This clock is derived
  *         from system PLL, PLL2, PLL3, OSC or external clock (through a dedicated PIN)
  *          This parameter can be one of the following values:
  *             @arg RCC_SPI3CLKSOURCE_PLL: SPI3 clock = PLL
  *             @arg RCC_SPI3CLKSOURCE_PLL2: SPI3 clock = PLL2
  *             @arg RCC_SPI3CLKSOURCE_PLL3: SPI3 clock = PLL3
  *             @arg RCC_SPI3CLKSOURCE_CLKP: SPI3 clock  = CLKP
  *             @arg RCC_SPI3CLKSOURCE_PIN: SPI3 clock = External Clock
  * @retval None
  */


/** @brief  Macro to get the SPI3 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SPI3CLKSOURCE_PLL: SPI3 clock = PLL
  *             @arg RCC_SPI3CLKSOURCE_PLL2: SPI3 clock = PLL2
  *             @arg RCC_SPI3CLKSOURCE_PLL3: SPI3 clock = PLL3
  *             @arg RCC_SPI3CLKSOURCE_CLKP: SPI3 clock  = CLKP
  *             @arg RCC_SPI3CLKSOURCE_PIN: SPI3 clock = External Clock
  */


/**
  * @brief  Macro to Configure the SPI4/5 clock source.
  * @param  __RCC_SPI45CLKSource__ defines the SPI4/5 clock source. This clock is derived
  *         from system PCLK, PLL2, PLL3, OSC
  *          This parameter can be one of the following values:
  *             @arg RCC_SPI45CLKSOURCE_D2PCLK2:SPI4/5 clock = D2PCLK2
  *             @arg RCC_SPI45CLKSOURCE_PLL2:   SPI4/5 clock = PLL2
  *             @arg RCC_SPI45CLKSOURCE_PLL3:   SPI4/5 clock = PLL3
  *             @arg RCC_SPI45CLKSOURCE_HSI:    SPI4/5 clock = HSI
  *             @arg RCC_SPI45CLKSOURCE_CSI:    SPI4/5 clock = CSI
  *             @arg RCC_SPI45CLKSOURCE_HSE:    SPI4/5 clock = HSE
  * @retval None
  */
# 3417 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the SPI4/5 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SPI45CLKSOURCE_D2PCLK2:SPI4/5 clock = D2PCLK2
  *             @arg RCC_SPI45CLKSOURCE_PLL2:   SPI4/5 clock = PLL2
  *             @arg RCC_SPI45CLKSOURCE_PLL3:   SPI4/5 clock = PLL3
  *             @arg RCC_SPI45CLKSOURCE_HSI:    SPI4/5 clock = HSI
  *             @arg RCC_SPI45CLKSOURCE_CSI:    SPI4/5 clock = CSI
  *             @arg RCC_SPI45CLKSOURCE_HSE:    SPI4/5 clock = HSE
*/






/**
  * @brief  Macro to Configure the SPI4 clock source.
  * @param  __RCC_SPI4CLKSource__ defines the SPI4 clock source. This clock is derived
  *         from system PCLK, PLL2, PLL3, OSC
  *          This parameter can be one of the following values:
  *             @arg RCC_SPI4CLKSOURCE_D2PCLK2:SPI4 clock = D2PCLK2
  *             @arg RCC_SPI4CLKSOURCE_PLL2:   SPI4 clock = PLL2
  *             @arg RCC_SPI4CLKSOURCE_PLL3:   SPI4 clock = PLL3
  *             @arg RCC_SPI4CLKSOURCE_HSI:    SPI4 clock = HSI
  *             @arg RCC_SPI4CLKSOURCE_CSI:    SPI4 clock = CSI
  *             @arg RCC_SPI4CLKSOURCE_HSE:    SPI4 clock = HSE
  * @retval None
  */


/** @brief  Macro to get the SPI4 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SPI4CLKSOURCE_D2PCLK2:SPI4 clock = D2PCLK2
  *             @arg RCC_SPI4CLKSOURCE_PLL2:   SPI4 clock = PLL2
  *             @arg RCC_SPI4CLKSOURCE_PLL3:   SPI4 clock = PLL3
  *             @arg RCC_SPI4CLKSOURCE_HSI:    SPI4 clock = HSI
  *             @arg RCC_SPI4CLKSOURCE_CSI:    SPI4 clock = CSI
  *             @arg RCC_SPI4CLKSOURCE_HSE:    SPI4 clock = HSE
*/


/**
  * @brief  Macro to Configure the SPI5 clock source.
  * @param  __RCC_SPI5CLKSource__ defines the SPI5 clock source. This clock is derived
  *         from system PCLK, PLL2, PLL3, OSC
  *          This parameter can be one of the following values:
  *             @arg RCC_SPI5CLKSOURCE_D2PCLK2:SPI5 clock = D2PCLK2
  *             @arg RCC_SPI5CLKSOURCE_PLL2:   SPI5 clock = PLL2
  *             @arg RCC_SPI5CLKSOURCE_PLL3:   SPI5 clock = PLL3
  *             @arg RCC_SPI5CLKSOURCE_HSI:    SPI5 clock = HSI
  *             @arg RCC_SPI5CLKSOURCE_CSI:    SPI5 clock = CSI
  *             @arg RCC_SPI5CLKSOURCE_HSE:    SPI5 clock = HSE
  * @retval None
  */


/** @brief  Macro to get the SPI5 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SPI5CLKSOURCE_D2PCLK2:SPI5 clock = D2PCLK2
  *             @arg RCC_SPI5CLKSOURCE_PLL2:   SPI5 clock = PLL2
  *             @arg RCC_SPI5CLKSOURCE_PLL3:   SPI5 clock = PLL3
  *             @arg RCC_SPI5CLKSOURCE_HSI:    SPI5 clock = HSI
  *             @arg RCC_SPI5CLKSOURCE_CSI:    SPI5 clock = CSI
  *             @arg RCC_SPI5CLKSOURCE_HSE:    SPI5 clock = HSE
*/


/**
  * @brief  Macro to Configure the SPI6 clock source.
  * @param  __RCC_SPI6CLKSource__ defines the SPI6 clock source. This clock is derived
  *         from system PCLK, PLL2, PLL3, OSC
  *          This parameter can be one of the following values:
  *             @arg RCC_SPI6CLKSOURCE_D3PCLK1:SPI6 clock = D2PCLK1
  *             @arg RCC_SPI6CLKSOURCE_PLL2:   SPI6 clock = PLL2
  *             @arg RCC_SPI6CLKSOURCE_PLL3:   SPI6 clock = PLL3
  *             @arg RCC_SPI6CLKSOURCE_HSI:    SPI6 clock = HSI
  *             @arg RCC_SPI6CLKSOURCE_CSI:    SPI6 clock = CSI
  *             @arg RCC_SPI6CLKSOURCE_HSE:    SPI6 clock = HSE
  *             @arg RCC_SPI6CLKSOURCE_PIN:    SPI6 clock = I2S_CKIN (*)
  *
  * @retval None
  *
  * (*) : Available on stm32h7a3xx and stm32h7b3xx family lines.
  *
  */
# 3510 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the SPI6 clock source.
  * @retval The clock source can be one of the following values:
  *             @arg RCC_SPI6CLKSOURCE_D3PCLK1:SPI6 clock = D2PCLK1
  *             @arg RCC_SPI6CLKSOURCE_PLL2:   SPI6 clock = PLL2
  *             @arg RCC_SPI6CLKSOURCE_PLL3:   SPI6 clock = PLL3
  *             @arg RCC_SPI6CLKSOURCE_HSI:    SPI6 clock = HSI
  *             @arg RCC_SPI6CLKSOURCE_CSI:    SPI6 clock = CSI
  *             @arg RCC_SPI6CLKSOURCE_HSE:    SPI6 clock = HSE
  *                @arg RCC_SPI6CLKSOURCE_PIN:    SPI6 clock = I2S_CKIN
*/






/** @brief  Macro to configure the SDMMC clock
  * @param  __SDMMCCLKSource__ specifies  clock source  for SDMMC
  *         This parameter can be one of the following values:
  *            @arg RCC_SDMMCCLKSOURCE_PLL:  PLLQ selected as SDMMC clock
  *            @arg RCC_SDMMCCLKSOURCE_PLL2: PLL2R selected as SDMMC clock
  */
# 3540 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  Macro to get the SDMMC clock
  */






/** @brief macro to configure the RNG clock (RNGCLK).
  *
  * @param  __RNGCLKSource__ specifies the RNG clock source.
  *          This parameter can be one of the following values:
  *            @arg RCC_RNGCLKSOURCE_HSI48: HSI48 selected as RNG clock
  *            @arg RCC_RNGCLKSOURCE_PLL: PLL1Q selected as RNG clock
  *            @arg RCC_RNGCLKSOURCE_LSE: LSE selected as RNG clock
  *            @arg RCC_RNGCLKSOURCE_LSI: LSI selected as RNG clock
  */
# 3565 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @brief  macro to get the RNG clock source.
  * @retval The clock source can be one of the following values:
  *            @arg RCC_RNGCLKSOURCE_HSI48: HSI48 selected as RNG clock
  *            @arg RCC_RNGCLKSOURCE_PLL: PLL1Q selected as RNG clock
  *            @arg RCC_RNGCLKSOURCE_LSE: LSE selected as RNG clock
  *            @arg RCC_RNGCLKSOURCE_LSI: LSI selected as RNG clock
  */







/** @brief  Macro to configure the HRTIM1 prescaler clock source.
  * @param  __HRTIM1CLKSource__ specifies the HRTIM1 prescaler clock source.
  *         This parameter can be one of the following values:
  *            @arg @ref RCC_HRTIM1CLK_TIMCLK    Timers  clock  selected as HRTIM1 prescaler clock
  *            @arg @ref RCC_HRTIM1CLK_CPUCLK CPU Clock selected as HRTIM1 clock
  */



/** @brief  Macro to get the HRTIM1 clock source.
  * @retval The clock source can be one of the following values:
  *            @arg @ref RCC_HRTIM1CLK_TIMCLK   Timers  clock  selected as HRTIM1 prescaler clock
  *            @arg @ref RCC_HRTIM1CLK_CPUCLK CPU Clock selected as HRTIM1 clock
  */



/** @brief  Macro to configure the Timers clocks prescalers
  * @param  __PRESC__  specifies the Timers clocks prescalers selection
  *         This parameter can be one of the following values:
  *            @arg RCC_TIMPRES_DESACTIVATED: The Timers kernels clocks prescaler is
  *                 equal to rcc_hclk1 if D2PPREx is corresponding to division by 1 or 2,
  *                 else it is equal to 2 x Frcc_pclkx_d2 (default after reset)
  *            @arg RCC_TIMPRES_ACTIVATED: The Timers kernels clocks prescaler is
  *                 equal to rcc_hclk1 if D2PPREx is corresponding to division by 1, 2 or 4,
  *                 else it is equal to 4 x Frcc_pclkx_d2
  */




/**
  * @brief Enable the RCC LSE CSS Extended Interrupt Line.
  * @retval None
  */


/**
  * @brief Disable the RCC LSE CSS Extended Interrupt Line.
  * @retval None
  */


/**
  * @brief Enable the RCC LSE CSS Event Line.
  * @retval None.
  */


/**
  * @brief Disable the RCC LSE CSS Event Line.
  * @retval None.
  */



/**
  * @brief Enable the RCC LSE CSS Extended Interrupt Line for CM4.
  * @retval None
  */


/**
  * @brief Disable the RCC LSE CSS Extended Interrupt Line for CM4.
  * @retval None
  */


/**
  * @brief Enable the RCC LSE CSS Event Line for CM4.
  * @retval None.
  */


/**
  * @brief Disable the RCC LSE CSS Event Line for CM4.
  * @retval None.
  */



/**
  * @brief  Enable the RCC LSE CSS Extended Interrupt Falling Trigger.
  * @retval None.
  */



/**
  * @brief Disable the RCC LSE CSS Extended Interrupt Falling Trigger.
  * @retval None.
  */



/**
  * @brief  Enable the RCC LSE CSS Extended Interrupt Rising Trigger.
  * @retval None.
  */


/**
  * @brief Disable the RCC LSE CSS Extended Interrupt Rising Trigger.
  * @retval None.
  */


/**
  * @brief Enable the RCC LSE CSS Extended Interrupt Rising & Falling Trigger.
  * @retval None.
  */






/**
  * @brief Disable the RCC LSE CSS Extended Interrupt Rising & Falling Trigger.
  * @retval None.
  */






/**
  * @brief Check whether the specified RCC LSE CSS EXTI interrupt flag is set or not.
  * @retval EXTI RCC LSE CSS Line Status.
  */


/**
  * @brief Clear the RCC LSE CSS EXTI flag.
  * @retval None.
  */



/**
  * @brief Check whether the specified RCC LSE CSS EXTI interrupt flag is set or not for CM4.
  * @retval EXTI RCC LSE CSS Line Status.
  */


/**
  * @brief Clear the RCC LSE CSS EXTI flag or not for CM4.
  * @retval None.
  */


/**
  * @brief Generate a Software interrupt on the RCC LSE CSS EXTI line.
  * @retval None.
  */


/**
  * @brief  Enable the specified CRS interrupts.
  * @param  __INTERRUPT__ specifies the CRS interrupt sources to be enabled.
  *          This parameter can be any combination of the following values:
  *              @arg @ref RCC_CRS_IT_SYNCOK  SYNC event OK interrupt
  *              @arg @ref RCC_CRS_IT_SYNCWARN  SYNC warning interrupt
  *              @arg @ref RCC_CRS_IT_ERR  Synchronization or trimming error interrupt
  *              @arg @ref RCC_CRS_IT_ESYNC  Expected SYNC interrupt
  * @retval None
  */


/**
  * @brief  Disable the specified CRS interrupts.
  * @param  __INTERRUPT__ specifies the CRS interrupt sources to be disabled.
  *          This parameter can be any combination of the following values:
  *              @arg @ref RCC_CRS_IT_SYNCOK  SYNC event OK interrupt
  *              @arg @ref RCC_CRS_IT_SYNCWARN  SYNC warning interrupt
  *              @arg @ref RCC_CRS_IT_ERR  Synchronization or trimming error interrupt
  *              @arg @ref RCC_CRS_IT_ESYNC  Expected SYNC interrupt
  * @retval None
  */


/** @brief  Check whether the CRS interrupt has occurred or not.
  * @param  __INTERRUPT__ specifies the CRS interrupt source to check.
  *         This parameter can be one of the following values:
  *              @arg @ref RCC_CRS_IT_SYNCOK  SYNC event OK interrupt
  *              @arg @ref RCC_CRS_IT_SYNCWARN  SYNC warning interrupt
  *              @arg @ref RCC_CRS_IT_ERR  Synchronization or trimming error interrupt
  *              @arg @ref RCC_CRS_IT_ESYNC  Expected SYNC interrupt
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */


/** @brief  Clear the CRS interrupt pending bits
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
  *         This parameter can be any combination of the following values:
  *              @arg @ref RCC_CRS_IT_SYNCOK  SYNC event OK interrupt
  *              @arg @ref RCC_CRS_IT_SYNCWARN  SYNC warning interrupt
  *              @arg @ref RCC_CRS_IT_ERR  Synchronization or trimming error interrupt
  *              @arg @ref RCC_CRS_IT_ESYNC  Expected SYNC interrupt
  *              @arg @ref RCC_CRS_IT_TRIMOVF  Trimming overflow or underflow interrupt
  *              @arg @ref RCC_CRS_IT_SYNCERR  SYNC error interrupt
  *              @arg @ref RCC_CRS_IT_SYNCMISS  SYNC missed interrupt
  */
/* CRS IT Error Mask */
# 3797 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @brief  Check whether the specified CRS flag is set or not.
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be one of the following values:
  *              @arg @ref RCC_CRS_FLAG_SYNCOK  SYNC event OK
  *              @arg @ref RCC_CRS_FLAG_SYNCWARN  SYNC warning
  *              @arg @ref RCC_CRS_FLAG_ERR  Error
  *              @arg @ref RCC_CRS_FLAG_ESYNC  Expected SYNC
  *              @arg @ref RCC_CRS_FLAG_TRIMOVF  Trimming overflow or underflow
  *              @arg @ref RCC_CRS_FLAG_SYNCERR  SYNC error
  *              @arg @ref RCC_CRS_FLAG_SYNCMISS  SYNC missed
  * @retval The new state of _FLAG_ (TRUE or FALSE).
  */


/**
  * @brief  Clear the CRS specified FLAG.
  * @param __FLAG__ specifies the flag to clear.
  *          This parameter can be one of the following values:
  *              @arg @ref RCC_CRS_FLAG_SYNCOK  SYNC event OK
  *              @arg @ref RCC_CRS_FLAG_SYNCWARN  SYNC warning
  *              @arg @ref RCC_CRS_FLAG_ERR  Error
  *              @arg @ref RCC_CRS_FLAG_ESYNC  Expected SYNC
  *              @arg @ref RCC_CRS_FLAG_TRIMOVF  Trimming overflow or underflow
  *              @arg @ref RCC_CRS_FLAG_SYNCERR  SYNC error
  *              @arg @ref RCC_CRS_FLAG_SYNCMISS  SYNC missed
  * @note RCC_CRS_FLAG_ERR clears RCC_CRS_FLAG_TRIMOVF, RCC_CRS_FLAG_SYNCERR, RCC_CRS_FLAG_SYNCMISS and consequently RCC_CRS_FLAG_ERR
  * @retval None
  */

/* CRS Flag Error Mask */
# 3841 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/** @defgroup RCCEx_CRS_Extended_Features RCCEx CRS Extended Features
 * @{
 */
/**
  * @brief  Enable the oscillator clock for frequency error counter.
  * @note   when the CEN bit is set the CRS_CFGR register becomes write-protected.
  * @retval None
  */


/**
  * @brief  Disable the oscillator clock for frequency error counter.
  * @retval None
  */


/**
  * @brief  Enable the automatic hardware adjustment of TRIM bits.
  * @note   When the AUTOTRIMEN bit is set the CRS_CFGR register becomes write-protected.
  * @retval None
  */


/**
  * @brief  Enable or disable the automatic hardware adjustment of TRIM bits.
  * @retval None
  */


/**
  * @brief  Macro to calculate reload value to be set in CRS register according to target and sync frequencies
  * @note   The RELOAD value should be selected according to the ratio between the target frequency and the frequency
  *             of the synchronization source after pre-scaling. It is then decreased by one in order to
  *             reach the expected synchronization on the zero value. The formula is the following:
  *             RELOAD = (fTARGET / fSYNC) -1
  * @param  __FTARGET__ Target frequency (value in Hz)
  * @param  __FSYNC__ Synchronization signal frequency (value in Hz)
  * @retval None
  */



/**
  * @}
  */


/**
  * @}
  */


/* Exported functions --------------------------------------------------------*/
/** @addtogroup RCCEx_Exported_Functions
 * @{
 */

/** @addtogroup RCCEx_Exported_Functions_Group1
  * @{
  */
HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit);
void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit);
uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint64_t PeriphClk);
uint32_t HAL_RCCEx_GetD1PCLK1Freq(void);
uint32_t HAL_RCCEx_GetD3PCLK1Freq(void);
uint32_t HAL_RCCEx_GetD1SysClockFreq(void);
void HAL_RCCEx_GetPLL1ClockFreq(PLL1_ClocksTypeDef *PLL1_Clocks);
void HAL_RCCEx_GetPLL2ClockFreq(PLL2_ClocksTypeDef *PLL2_Clocks);
void HAL_RCCEx_GetPLL3ClockFreq(PLL3_ClocksTypeDef *PLL3_Clocks);
/**
  * @}
  */

/** @addtogroup RCCEx_Exported_Functions_Group2
  * @{
  */
void HAL_RCCEx_WakeUpStopCLKConfig(uint32_t WakeUpClk);
void HAL_RCCEx_KerWakeUpStopCLKConfig(uint32_t WakeUpClk);
void HAL_RCCEx_EnableLSECSS(void);
void HAL_RCCEx_DisableLSECSS(void);
void HAL_RCCEx_EnableLSECSS_IT(void);
void HAL_RCCEx_LSECSS_IRQHandler(void);
void HAL_RCCEx_LSECSS_Callback(void);

void HAL_RCCEx_EnableBootCore(uint32_t RCC_BootCx);


void HAL_RCCEx_WWDGxSysResetConfig(uint32_t RCC_WWDGx);

/**
  * @}
  */


/** @addtogroup RCCEx_Exported_Functions_Group3
  * @{
  */

void HAL_RCCEx_CRSConfig(const RCC_CRSInitTypeDef *pInit);
void HAL_RCCEx_CRSSoftwareSynchronizationGenerate(void);
void HAL_RCCEx_CRSGetSynchronizationInfo(RCC_CRSSynchroInfoTypeDef *pSynchroInfo);
uint32_t HAL_RCCEx_CRSWaitSynchronization(uint32_t Timeout);
void HAL_RCCEx_CRS_IRQHandler(void);
void HAL_RCCEx_CRS_SyncOkCallback(void);
void HAL_RCCEx_CRS_SyncWarnCallback(void);
void HAL_RCCEx_CRS_ExpectedSyncCallback(void);
void HAL_RCCEx_CRS_ErrorCallback(uint32_t Error);

/**
  * @}
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @addtogroup RCCEx_Private_Macros RCCEx Private Macros
  * @{
  */
/** @defgroup RCCEx_IS_RCC_Definitions RCC Private macros to check input parameters
  * @{
  */
# 4461 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc_ex.h"
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 7959 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup RCC_Exported_Functions
 * @{
 */

/** @addtogroup RCC_Exported_Functions_Group1
  * @{
  */
/* Initialization and de-initialization functions  ******************************/
HAL_StatusTypeDef HAL_RCC_DeInit(void);
HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct);
HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency);

/**
  * @}
  */

/** @addtogroup RCC_Exported_Functions_Group2
  * @{
  */
/* Peripheral Control functions  ************************************************/
void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv);
void HAL_RCC_EnableCSS(void);
void HAL_RCC_DisableCSS(void);
uint32_t HAL_RCC_GetSysClockFreq(void);
uint32_t HAL_RCC_GetHCLKFreq(void);
uint32_t HAL_RCC_GetPCLK1Freq(void);
uint32_t HAL_RCC_GetPCLK2Freq(void);
void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct);
void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency);
/* CSS NMI IRQ handler */
void HAL_RCC_NMI_IRQHandler(void);
/* User Callbacks in non blocking mode (IT mode) */
void HAL_RCC_CSSCallback(void);

/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup RCC_Private_Constants RCC Private Constants
  * @{
  */
# 8021 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @addtogroup RCC_Private_Macros RCC Private Macros
  * @{
  */

/** @defgroup RCC_IS_RCC_Definitions RCC Private macros to check input parameters
  * @{
  */
# 8246 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rcc.h"
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

}
# 251 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_gpio.h
  * @author  MCD Application Team
  * @brief   Header file of GPIO HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup GPIO
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup GPIO_Exported_Types GPIO Exported Types
  * @{
  */

/**
  * @brief   GPIO Init structure definition
  */
typedef struct
{
  uint32_t Pin; /*!< Specifies the GPIO pins to be configured.
                           This parameter can be any value of @ref GPIO_pins_define */

  uint32_t Mode; /*!< Specifies the operating mode for the selected pins.
                           This parameter can be a value of @ref GPIO_mode_define */

  uint32_t Pull; /*!< Specifies the Pull-up or Pull-Down activation for the selected pins.
                           This parameter can be a value of @ref GPIO_pull_define */

  uint32_t Speed; /*!< Specifies the speed for the selected pins.
                           This parameter can be a value of @ref GPIO_speed_define */

  uint32_t Alternate; /*!< Peripheral to be connected to the selected pins.
                            This parameter can be a value of @ref GPIO_Alternate_function_selection */
} GPIO_InitTypeDef;

/**
  * @brief  GPIO Bit SET and Bit RESET enumeration
  */
typedef enum
{
  GPIO_PIN_RESET = 0U,
  GPIO_PIN_SET
} GPIO_PinState;
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup GPIO_Exported_Constants  GPIO Exported Constants
  * @{
  */

/** @defgroup GPIO_pins_define  GPIO pins define
  * @{
  */
# 104 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio.h"
/**
  * @}
  */

/** @defgroup GPIO_mode_define  GPIO mode define
  * @brief GPIO Configuration Mode
  *        Elements values convention: 0x00WX00YZ
  *           - W  : EXTI trigger detection on 3 bits
  *           - X  : EXTI mode (IT or Event) on 2 bits
  *           - Y  : Output type (Push Pull or Open Drain) on 1 bit
  *           - Z  : GPIO mode (Input, Output, Alternate or Analog) on 2 bits
  * @{
  */
# 130 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio.h"
/**
  * @}
  */

/** @defgroup GPIO_speed_define  GPIO speed define
  * @brief GPIO Output Maximum frequency
  * @{
  */




/**
  * @}
  */

/** @defgroup GPIO_pull_define  GPIO pull define
  * @brief GPIO Pull-Up or Pull-Down Activation
  * @{
  */



/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup GPIO_Exported_Macros GPIO Exported Macros
  * @{
  */

/**
  * @brief  Checks whether the specified EXTI line flag is set or not.
  * @param  __EXTI_LINE__: specifies the EXTI line flag to check.
  *         This parameter can be GPIO_PIN_x where x can be(0..15)
  * @retval The new state of __EXTI_LINE__ (SET or RESET).
  */


/**
  * @brief  Clears the EXTI's line pending flags.
  * @param  __EXTI_LINE__: specifies the EXTI lines flags to clear.
  *         This parameter can be any combination of GPIO_PIN_x where x can be (0..15)
  * @retval None
  */


/**
  * @brief  Checks whether the specified EXTI line is asserted or not.
  * @param  __EXTI_LINE__: specifies the EXTI line to check.
  *          This parameter can be GPIO_PIN_x where x can be(0..15)
  * @retval The new state of __EXTI_LINE__ (SET or RESET).
  */


/**
  * @brief  Clears the EXTI's line pending bits.
  * @param  __EXTI_LINE__: specifies the EXTI lines to clear.
  *          This parameter can be any combination of GPIO_PIN_x where x can be (0..15)
  * @retval None
  */



/**
  * @brief  Checks whether the specified EXTI line flag is set or not.
  * @param  __EXTI_LINE__: specifies the EXTI line flag to check.
  *         This parameter can be GPIO_PIN_x where x can be(0..15)
  * @retval The new state of __EXTI_LINE__ (SET or RESET).
  */


/**
  * @brief  Clears the EXTI's line pending flags.
  * @param  __EXTI_LINE__: specifies the EXTI lines flags to clear.
  *         This parameter can be any combination of GPIO_PIN_x where x can be (0..15)
  * @retval None
  */


/**
  * @brief  Checks whether the specified EXTI line is asserted or not.
  * @param  __EXTI_LINE__: specifies the EXTI line to check.
  *          This parameter can be GPIO_PIN_x where x can be(0..15)
  * @retval The new state of __EXTI_LINE__ (SET or RESET).
  */


/**
  * @brief  Clears the EXTI's line pending bits.
  * @param  __EXTI_LINE__: specifies the EXTI lines to clear.
  *          This parameter can be any combination of GPIO_PIN_x where x can be (0..15)
  * @retval None
  */



/**
  * @brief  Generates a Software interrupt on selected EXTI line.
  * @param  __EXTI_LINE__: specifies the EXTI line to check.
  *          This parameter can be GPIO_PIN_x where x can be(0..15)
  * @retval None
  */

/**
  * @}
  */

/* Include GPIO HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_gpio_ex.h
  * @author  MCD Application Team
  * @brief   Header file of GPIO HAL Extension module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup GPIOEx GPIOEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/* Exported constants --------------------------------------------------------*/
/** @defgroup GPIOEx_Exported_Constants GPIO Exported Constants
  * @{
  */

/** @defgroup GPIO_Alternate_function_selection GPIO Alternate Function Selection
  * @{
  */

/**
  * @brief   AF 0 selection
  */
# 73 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 1 selection
  */
# 90 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 2 selection
  */
# 106 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 3 selection
  */
# 125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 4 selection
  */
# 154 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 5 selection
  */
# 168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 6 selection
  */
# 190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 7 selection
  */
# 203 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 8 selection
  */
# 220 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 9 selection
  */
# 242 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 10 selection
  */
# 274 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 11 selection
  */
# 306 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 12 selection
  */
# 326 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 13 selection
  */
# 346 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @brief   AF 14 selection
  */






/**
  * @brief   AF 15 selection
  */






/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup GPIOEx_Exported_Macros GPIO Exported Macros
  * @{
  */
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup GPIOEx_Exported_Functions GPIO Exported Functions
  * @{
  */
/**
  * @}
  */
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup GPIOEx_Private_Constants GPIO Private Constants
  * @{
  */

/**
  * @brief   GPIO pin available on the platform
  */
/* Defines the available pins per GPIOs */
# 421 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup GPIOEx_Private_Macros GPIO Private Macros
  * @{
  */
/** @defgroup GPIOEx_Get_Port_Index GPIO Get Port Index
  * @{
  */
# 455 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio_ex.h"
/**
  * @}
  */

/** @defgroup GPIOEx_IS_Alternat_function_selection GPIO Check Alternate Function
  * @{
  */
/**
  * @}
  */

/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup GPIOEx_Private_Functions GPIO Private Functions
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 245 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup GPIO_Exported_Functions
  * @{
  */

/** @addtogroup GPIO_Exported_Functions_Group1
  * @{
  */
/* Initialization and de-initialization functions *****************************/
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, const GPIO_InitTypeDef *GPIO_Init);
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin);
/**
  * @}
  */

/** @addtogroup GPIO_Exported_Functions_Group2
  * @{
  */
/* IO operation functions *****************************************************/
GPIO_PinState HAL_GPIO_ReadPin(const GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);

/**
  * @}
  */

/**
  * @}
  */
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup GPIO_Private_Constants GPIO Private Constants
  * @{
  */
# 304 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio.h"
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup GPIO_Private_Macros GPIO Private Macros
  * @{
  */
# 333 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gpio.h"
/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup GPIO_Private_Functions GPIO Private Functions
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 255 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dma.h
  * @author  MCD Application Team
  * @brief   Header file of DMA HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup DMA
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup DMA_Exported_Types DMA Exported Types
  * @brief    DMA Exported Types
  * @{
  */

/**
  * @brief  DMA Configuration Structure definition
  */
typedef struct
{
  uint32_t Request; /*!< Specifies the request selected for the specified stream.
                                           This parameter can be a value of @ref DMA_Request_selection              */

  uint32_t Direction; /*!< Specifies if the data will be transferred from memory to peripheral,
                                      from memory to memory or from peripheral to memory.
                                      This parameter can be a value of @ref DMA_Data_transfer_direction              */

  uint32_t PeriphInc; /*!< Specifies whether the Peripheral address register should be incremented or not.
                                      This parameter can be a value of @ref DMA_Peripheral_incremented_mode          */

  uint32_t MemInc; /*!< Specifies whether the memory address register should be incremented or not.
                                      This parameter can be a value of @ref DMA_Memory_incremented_mode              */

  uint32_t PeriphDataAlignment; /*!< Specifies the Peripheral data width.
                                      This parameter can be a value of @ref DMA_Peripheral_data_size                 */

  uint32_t MemDataAlignment; /*!< Specifies the Memory data width.
                                      This parameter can be a value of @ref DMA_Memory_data_size                     */

  uint32_t Mode; /*!< Specifies the operation mode of the DMAy Streamx.
                                      This parameter can be a value of @ref DMA_mode
                                      @note The circular buffer mode cannot be used if the memory-to-memory
                                            data transfer is configured on the selected Stream                        */

  uint32_t Priority; /*!< Specifies the software priority for the DMAy Streamx.
                                      This parameter can be a value of @ref DMA_Priority_level                        */

  uint32_t FIFOMode; /*!< Specifies if the FIFO mode or Direct mode will be used for the specified stream.
                                      This parameter can be a value of @ref DMA_FIFO_direct_mode
                                      @note The Direct mode (FIFO mode disabled) cannot be used if the
                                            memory-to-memory data transfer is configured on the selected stream       */

  uint32_t FIFOThreshold; /*!< Specifies the FIFO threshold level.
                                      This parameter can be a value of @ref DMA_FIFO_threshold_level                  */

  uint32_t MemBurst; /*!< Specifies the Burst transfer configuration for the memory transfers.
                                      It specifies the amount of data to be transferred in a single non interruptible
                                      transaction.
                                      This parameter can be a value of @ref DMA_Memory_burst
                                      @note The burst mode is possible only if the address Increment mode is enabled. */

  uint32_t PeriphBurst; /*!< Specifies the Burst transfer configuration for the peripheral transfers.
                                      It specifies the amount of data to be transferred in a single non interruptible
                                      transaction.
                                      This parameter can be a value of @ref DMA_Peripheral_burst
                                      @note The burst mode is possible only if the address Increment mode is enabled. */
}DMA_InitTypeDef;

/**
  * @brief  HAL DMA State structures definition
  */
typedef enum
{
  HAL_DMA_STATE_RESET = 0x00U,
  HAL_DMA_STATE_READY = 0x01U,
  HAL_DMA_STATE_BUSY = 0x02U,
  HAL_DMA_STATE_ERROR = 0x03U,
  HAL_DMA_STATE_ABORT = 0x04U,
}HAL_DMA_StateTypeDef;

/**
  * @brief  HAL DMA Transfer complete level structure definition
  */
typedef enum
{
  HAL_DMA_FULL_TRANSFER = 0x00U,
  HAL_DMA_HALF_TRANSFER = 0x01U,
}HAL_DMA_LevelCompleteTypeDef;

/**
  * @brief  HAL DMA Callbacks IDs structure definition
  */
typedef enum
{
  HAL_DMA_XFER_CPLT_CB_ID = 0x00U,
  HAL_DMA_XFER_HALFCPLT_CB_ID = 0x01U,
  HAL_DMA_XFER_M1CPLT_CB_ID = 0x02U,
  HAL_DMA_XFER_M1HALFCPLT_CB_ID = 0x03U,
  HAL_DMA_XFER_ERROR_CB_ID = 0x04U,
  HAL_DMA_XFER_ABORT_CB_ID = 0x05U,
  HAL_DMA_XFER_ALL_CB_ID = 0x06U
}HAL_DMA_CallbackIDTypeDef;

/**
  * @brief  DMA handle Structure definition
  */
typedef struct __DMA_HandleTypeDef
{
  void *Instance;

  DMA_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  volatile HAL_DMA_StateTypeDef State;

  void *Parent;

  void (* XferCpltCallback)( struct __DMA_HandleTypeDef * hdma);

  void (* XferHalfCpltCallback)( struct __DMA_HandleTypeDef * hdma);

  void (* XferM1CpltCallback)( struct __DMA_HandleTypeDef * hdma);

  void (* XferM1HalfCpltCallback)( struct __DMA_HandleTypeDef * hdma);

  void (* XferErrorCallback)( struct __DMA_HandleTypeDef * hdma);

  void (* XferAbortCallback)( struct __DMA_HandleTypeDef * hdma);

 volatile uint32_t ErrorCode;

 uint32_t StreamBaseAddress;

 uint32_t StreamIndex;

 DMAMUX_Channel_TypeDef *DMAmuxChannel;

 DMAMUX_ChannelStatus_TypeDef *DMAmuxChannelStatus;

 uint32_t DMAmuxChannelStatusMask;


 DMAMUX_RequestGen_TypeDef *DMAmuxRequestGen;

 DMAMUX_RequestGenStatus_TypeDef *DMAmuxRequestGenStatus;

 uint32_t DMAmuxRequestGenStatusMask;

}DMA_HandleTypeDef;

/**
  * @}
  */


/* Exported constants --------------------------------------------------------*/

/** @defgroup DMA_Exported_Constants DMA Exported Constants
  * @brief    DMA Exported constants
  * @{
  */

/** @defgroup DMA_Error_Code DMA Error Code
  * @brief    DMA Error Code
  * @{
  */
# 209 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @}
  */

/** @defgroup DMA_Request_selection DMA Request selection
  * @brief    DMA Request selection
  * @{
  */
/* DMAMUX1 requests */
# 423 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/* DMAMUX2 requests */
# 453 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @}
  */

/** @defgroup DMA_Data_transfer_direction DMA Data transfer direction
  * @brief    DMA data transfer direction
  * @{
  */



/**
  * @}
  */

/** @defgroup DMA_Peripheral_incremented_mode DMA Peripheral incremented mode
  * @brief    DMA peripheral incremented mode
  * @{
  */


/**
  * @}
  */

/** @defgroup DMA_Memory_incremented_mode DMA Memory incremented mode
  * @brief    DMA memory incremented mode
  * @{
  */


/**
  * @}
  */

/** @defgroup DMA_Peripheral_data_size DMA Peripheral data size
  * @brief    DMA peripheral data size
  * @{
  */



/**
  * @}
  */

/** @defgroup DMA_Memory_data_size DMA Memory data size
  * @brief    DMA memory data size
  * @{
  */



/**
  * @}
  */

/** @defgroup DMA_mode DMA mode
  * @brief    DMA mode
  * @{
  */





/**
  * @}
  */

/** @defgroup DMA_Priority_level DMA Priority level
  * @brief    DMA priority levels
  * @{
  */




/**
  * @}
  */

/** @defgroup DMA_FIFO_direct_mode DMA FIFO direct mode
  * @brief    DMA FIFO direct mode
  * @{
  */


/**
  * @}
  */

/** @defgroup DMA_FIFO_threshold_level DMA FIFO threshold level
  * @brief    DMA FIFO level
  * @{
  */




/**
  * @}
  */

/** @defgroup DMA_Memory_burst DMA Memory burst
  * @brief    DMA memory burst
  * @{
  */




/**
  * @}
  */

/** @defgroup DMA_Peripheral_burst DMA Peripheral burst
  * @brief    DMA peripheral burst
  * @{
  */




/**
  * @}
  */

/** @defgroup DMA_interrupt_enable_definitions DMA interrupt enable definitions
  * @brief    DMA interrupts definition
  * @{
  */





/**
  * @}
  */

/** @defgroup DMA_flag_definitions DMA flag definitions
  * @brief    DMA flag definitions
  * @{
  */
# 618 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @}
  */

/** @defgroup BDMA_flag_definitions BDMA flag definitions
  * @brief    BDMA flag definitions
  * @{
  */
# 659 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup DMA_Exported_Macros DMA Exported Macros
  * @{
  */

/** @brief Reset DMA handle state
  * @param  __HANDLE__: specifies the DMA handle.
  * @retval None
  */


/**
  * @brief  Return the current DMA Stream FIFO filled level.
  * @param  __HANDLE__: DMA handle
  * @retval The FIFO filling state.
  *           - DMA_FIFOStatus_Less1QuarterFull: when FIFO is less than 1 quarter-full
  *                                              and not empty.
  *           - DMA_FIFOStatus_1QuarterFull: if more than 1 quarter-full.
  *           - DMA_FIFOStatus_HalfFull: if more than 1 half-full.
  *           - DMA_FIFOStatus_3QuartersFull: if more than 3 quarters-full.
  *           - DMA_FIFOStatus_Empty: when FIFO is empty
  *           - DMA_FIFOStatus_Full: when FIFO is full
  */


/**
  * @brief  Enable the specified DMA Stream.
  * @param  __HANDLE__: DMA handle
  * @retval None
  */




/**
  * @brief  Disable the specified DMA Stream.
  * @param  __HANDLE__: DMA handle
  * @retval None
  */




/* Interrupt & Flag management */

/**
  * @brief  Return the current DMA Stream transfer complete flag.
  * @param  __HANDLE__: DMA handle
  * @retval The specified transfer complete flag index.
  */
# 781 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Return the current DMA Stream half transfer complete flag.
  * @param  __HANDLE__: DMA handle
  * @retval The specified half transfer complete flag index.
  */
# 850 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Return the current DMA Stream transfer error flag.
  * @param  __HANDLE__: DMA handle
  * @retval The specified transfer error flag index.
  */
# 919 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Return the current DMA Stream FIFO error flag.
  * @param  __HANDLE__: DMA handle
  * @retval The specified FIFO error flag index.
  */
# 943 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Return the current DMA Stream direct mode error flag.
  * @param  __HANDLE__: DMA handle
  * @retval The specified direct mode error flag index.
  */
# 967 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Returns the current BDMA Channel Global interrupt flag.
  * @param  __HANDLE__: DMA handle
  * @retval The specified transfer error flag index.
  */
# 1004 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Get the DMA Stream pending flags.
  * @param  __HANDLE__: DMA handle
  * @param  __FLAG__: Get the specified flag.
  *          This parameter can be any combination of the following values:
  *            @arg DMA_FLAG_TCIFx: Transfer complete flag.
  *            @arg DMA_FLAG_HTIFx: Half transfer complete flag.
  *            @arg DMA_FLAG_TEIFx: Transfer error flag.
  *            @arg DMA_FLAG_DMEIFx: Direct mode error flag.
  *            @arg DMA_FLAG_FEIFx: FIFO error flag.
  *         Where x can be 0_4, 1_5, 2_6 or 3_7 to select the DMA Stream flag.
  * @retval The state of FLAG (SET or RESET).
  */
# 1032 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Clear the DMA Stream pending flags.
  * @param  __HANDLE__: DMA handle
  * @param  __FLAG__: specifies the flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg DMA_FLAG_TCIFx: Transfer complete flag.
  *            @arg DMA_FLAG_HTIFx: Half transfer complete flag.
  *            @arg DMA_FLAG_TEIFx: Transfer error flag.
  *            @arg DMA_FLAG_DMEIFx: Direct mode error flag.
  *            @arg DMA_FLAG_FEIFx: FIFO error flag.
  *         Where x can be 0_4, 1_5, 2_6 or 3_7 to select the DMA Stream flag.
  * @retval None
  */
# 1077 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Enable the specified DMA Stream interrupts.
  * @param  __HANDLE__: DMA handle
  * @param  __INTERRUPT__: specifies the DMA interrupt sources to be enabled or disabled.
  *        This parameter can be one of the following values:
  *           @arg DMA_IT_TC: Transfer complete interrupt mask.
  *           @arg DMA_IT_HT: Half transfer complete interrupt mask.
  *           @arg DMA_IT_TE: Transfer error interrupt mask.
  *           @arg DMA_IT_FE: FIFO error interrupt mask.
  *           @arg DMA_IT_DME: Direct mode error interrupt.
  * @retval None
  */
# 1099 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Disable the specified DMA Stream interrupts.
  * @param  __HANDLE__: DMA handle
  * @param  __INTERRUPT__: specifies the DMA interrupt sources to be enabled or disabled.
  *         This parameter can be one of the following values:
  *            @arg DMA_IT_TC: Transfer complete interrupt mask.
  *            @arg DMA_IT_HT: Half transfer complete interrupt mask.
  *            @arg DMA_IT_TE: Transfer error interrupt mask.
  *            @arg DMA_IT_FE: FIFO error interrupt mask.
  *            @arg DMA_IT_DME: Direct mode error interrupt.
  * @retval None
  */
# 1122 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @brief  Check whether the specified DMA Stream interrupt is enabled or not.
  * @param  __HANDLE__: DMA handle
  * @param  __INTERRUPT__: specifies the DMA interrupt source to check.
  *         This parameter can be one of the following values:
  *            @arg DMA_IT_TC: Transfer complete interrupt mask.
  *            @arg DMA_IT_HT: Half transfer complete interrupt mask.
  *            @arg DMA_IT_TE: Transfer error interrupt mask.
  *            @arg DMA_IT_FE: FIFO error interrupt mask.
  *            @arg DMA_IT_DME: Direct mode error interrupt.
  * @retval The state of DMA_IT.
  */




/**
  * @brief  Writes the number of data units to be transferred on the DMA Stream.
  * @param  __HANDLE__: DMA handle
  * @param  __COUNTER__: Number of data units to be transferred (from 0 to 65535)
  *          Number of data items depends only on the Peripheral data format.
  *
  * @note   If Peripheral data format is Bytes: number of data units is equal
  *         to total number of bytes to be transferred.
  *
  * @note   If Peripheral data format is Half-Word: number of data units is
  *         equal to total number of bytes to be transferred / 2.
  *
  * @note   If Peripheral data format is Word: number of data units is equal
  *         to total  number of bytes to be transferred / 4.
  *
  * @retval The number of remaining data units in the current DMAy Streamx transfer.
  */




/**
  * @brief  Returns the number of remaining data units in the current DMAy Streamx transfer.
  * @param  __HANDLE__: DMA handle
  *
  * @retval The number of remaining data units in the current DMA Stream transfer.
  */




/**
  * @}
  */

/* Include DMA HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dma_ex.h
  * @author  MCD Application Team
  * @brief   Header file of DMA HAL extension module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup DMAEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup DMAEx_Exported_Types DMAEx Exported Types
  * @brief DMAEx Exported types
  * @{
  */

/**
  * @brief  HAL DMA Memory definition
  */
typedef enum
{
  MEMORY0 = 0x00U,
  MEMORY1 = 0x01U,

}HAL_DMA_MemoryTypeDef;

/**
  * @brief  HAL DMAMUX Synchronization configuration structure definition
  */
typedef struct
{
  uint32_t SyncSignalID; /*!< Specifies the synchronization signal gating the DMA request in periodic mode.
                              This parameter can be a value of @ref DMAEx_MUX_SyncSignalID_selection */

  uint32_t SyncPolarity; /*!< Specifies the polarity of the signal on which the DMA request is synchronized.
                              This parameter can be a value of @ref DMAEx_MUX_SyncPolarity_selection */

  FunctionalState SyncEnable; /*!< Specifies if the synchronization shall be enabled or disabled
                                    This parameter can take the value ENABLE or DISABLE*/


  FunctionalState EventEnable; /*!< Specifies if an event shall be generated once the RequestNumber is reached.
                                       This parameter can take the value ENABLE or DISABLE */

  uint32_t RequestNumber; /*!< Specifies the number of DMA request that will be authorized after a sync event.
                               This parameters can be in the range 1 to 32 */

}HAL_DMA_MuxSyncConfigTypeDef;


/**
  * @brief  HAL DMAMUX request generator parameters structure definition
  */
typedef struct
{
 uint32_t SignalID; /*!< Specifies the ID of the signal used for DMAMUX request generator
                              This parameter can be a value of @ref DMAEx_MUX_SignalGeneratorID_selection */

  uint32_t Polarity; /*!< Specifies the polarity of the signal on which the request is generated.
                             This parameter can be a value of @ref DMAEx_MUX_RequestGeneneratorPolarity_selection */

  uint32_t RequestNumber; /*!< Specifies the number of DMA request that will be generated after a signal event.
                                This parameters can be in the range 1 to 32 */

}HAL_DMA_MuxRequestGeneratorConfigTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup DMAEx_Exported_Constants DMA Exported Constants
  * @brief    DMAEx Exported constants
  * @{
  */

/** @defgroup DMAEx_MUX_SyncSignalID_selection DMAEx MUX SyncSignalID selection
  * @brief    DMAEx MUX SyncSignalID selection
  * @{
  */
# 135 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma_ex.h"
/**
  * @}
  */

/** @defgroup DMAEx_MUX_SyncPolarity_selection DMAEx MUX SyncPolarity selection
  * @brief    DMAEx MUX SyncPolarity selection
  * @{
  */





/**
  * @}
  */


/** @defgroup DMAEx_MUX_SignalGeneratorID_selection DMAEx MUX SignalGeneratorID selection
  * @brief    DMAEx MUX SignalGeneratorID selection
  * @{
  */
# 204 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma_ex.h"
/**
  * @}
  */

/** @defgroup DMAEx_MUX_RequestGeneneratorPolarity_selection DMAEx MUX RequestGeneneratorPolarity selection
  * @brief    DMAEx MUX RequestGeneneratorPolarity selection
  * @{
  */





/**
  * @}
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup DMAEx_Exported_Functions DMAEx Exported Functions
  * @brief   DMAEx Exported functions
  * @{
  */

/** @defgroup DMAEx_Exported_Functions_Group1 Extended features functions
  * @brief   Extended features functions
  * @{
  */

/* IO operation functions *******************************************************/
HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength);
HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength);
HAL_StatusTypeDef HAL_DMAEx_ChangeMemory(DMA_HandleTypeDef *hdma, uint32_t Address, HAL_DMA_MemoryTypeDef memory);
HAL_StatusTypeDef HAL_DMAEx_ConfigMuxSync(DMA_HandleTypeDef *hdma, HAL_DMA_MuxSyncConfigTypeDef *pSyncConfig);
HAL_StatusTypeDef HAL_DMAEx_ConfigMuxRequestGenerator (DMA_HandleTypeDef *hdma, HAL_DMA_MuxRequestGeneratorConfigTypeDef *pRequestGeneratorConfig);
HAL_StatusTypeDef HAL_DMAEx_EnableMuxRequestGenerator (DMA_HandleTypeDef *hdma);
HAL_StatusTypeDef HAL_DMAEx_DisableMuxRequestGenerator (DMA_HandleTypeDef *hdma);

void HAL_DMAEx_MUX_IRQHandler(DMA_HandleTypeDef *hdma);
/**
  * @}
  */
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup DMAEx_Private_Macros DMA Private Macros
  * @brief    DMAEx private macros
  * @{
  */
# 284 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma_ex.h"
/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup DMAEx_Private_Functions DMAEx Private Functions
  * @brief DMAEx Private functions
  * @{
  */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 1175 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h" 2

/* Exported functions --------------------------------------------------------*/

/** @defgroup DMA_Exported_Functions DMA Exported Functions
  * @brief    DMA Exported functions
  * @{
  */

/** @defgroup DMA_Exported_Functions_Group1 Initialization and de-initialization functions
  * @brief   Initialization and de-initialization functions
  * @{
  */
HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma);
HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma);
/**
  * @}
  */

/** @defgroup DMA_Exported_Functions_Group2 I/O operation functions
  * @brief   I/O operation functions
  * @{
  */
HAL_StatusTypeDef HAL_DMA_Start (DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength);
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma);
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma);
HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout);
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma);
HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID, void (* pCallback)(DMA_HandleTypeDef *_hdma));
HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef CallbackID);

/**
  * @}
  */

/** @defgroup DMA_Exported_Functions_Group3 Peripheral State functions
  * @brief    Peripheral State functions
  * @{
  */
HAL_DMA_StateTypeDef HAL_DMA_GetState(const DMA_HandleTypeDef *hdma);
uint32_t HAL_DMA_GetError(const DMA_HandleTypeDef *hdma);
/**
  * @}
  */
/**
  * @}
  */
/* Private Constants -------------------------------------------------------------*/
/** @defgroup DMA_Private_Constants DMA Private Constants
  * @brief    DMA private defines and constants
  * @{
  */
/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup DMA_Private_Types DMA Private Types
  * @{
  */
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup DMA_Private_Macros DMA Private Macros
  * @brief    DMA private macros
  * @{
  */
# 1307 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma.h"
/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup DMA_Private_Functions DMA Private Functions
  * @brief    DMA private  functions
  * @{
  */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 259 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdma.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_mdma.h
  * @author  MCD Application Team
  * @brief   Header file of DMA HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdma.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup MDMA
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup MDMA_Exported_Types MDMA Exported Types
  * @brief    MDMA Exported Types
  * @{
  */

/**
  * @brief  MDMA Configuration Structure definition
  */
typedef struct
{

  uint32_t Request; /*!< Specifies the MDMA request.
                                        This parameter can be a value of @ref MDMA_Request_selection*/

  uint32_t TransferTriggerMode; /*!< Specifies the Trigger Transfer mode : each request triggers a :
                                         a buffer transfer, a block transfer, a repeated block transfer or a linked list transfer
                                         This parameter can be a value of @ref MDMA_Transfer_TriggerMode  */

  uint32_t Priority; /*!< Specifies the software priority for the MDMAy channelx.
                                         This parameter can be a value of @ref MDMA_Priority_level */

  uint32_t Endianness; /*!< Specifies if the MDMA transactions preserve the Little endianness.
                                         This parameter can be a value of @ref MDMA_Endianness */

  uint32_t SourceInc; /*!< Specifies if the Source increment mode .
                                         This parameter can be a value of @ref MDMA_Source_increment_mode */

  uint32_t DestinationInc; /*!< Specifies if the Destination increment mode .
                                         This parameter can be a value of @ref MDMA_Destination_increment_mode */

  uint32_t SourceDataSize; /*!< Specifies the source data size.
                                         This parameter can be a value of @ref MDMA_Source_data_size */

  uint32_t DestDataSize; /*!< Specifies the destination data size.
                                          This parameter can be a value of @ref MDMA_Destination_data_size */


  uint32_t DataAlignment; /*!< Specifies the source to destination Memory data packing/padding mode.
                                            This parameter can be a value of @ref MDMA_data_Alignment */

  uint32_t BufferTransferLength; /*!< Specifies the buffer Transfer Length (number of bytes),
                                          this is the number of bytes to be transferred in a single transfer (1 byte to 128 bytes)*/

  uint32_t SourceBurst; /*!< Specifies the Burst transfer configuration for the source memory transfers.
                                         It specifies the amount of data to be transferred in a single non interruptible
                                         transaction.
                                         This parameter can be a value of @ref MDMA_Source_burst
                                         @note : the burst may be FIXED/INCR based on SourceInc value ,
                                         the BURST must be programmed as to ensure that the burst size will be lower than than
                                         BufferTransferLength */

  uint32_t DestBurst; /*!< Specifies the Burst transfer configuration for the destination memory transfers.
                                           It specifies the amount of data to be transferred in a single non interruptible
                                           transaction.
                                           This parameter can be a value of @ref MDMA_Destination_burst
                                           @note : the burst may be FIXED/INCR based on DestinationInc value ,
                                           the BURST must be programmed as to ensure that the burst size will be lower than than
                                           BufferTransferLength */

  int32_t SourceBlockAddressOffset; /*!< this field specifies the Next block source address offset
                                           signed value : if > 0 then  increment the next block source Address by offset from where the last block ends
                                                          if < 0 then  decrement the next block source Address by offset from where the last block ends
                                                          if == 0, the next block source address starts from where the last block ends
                                       */


  int32_t DestBlockAddressOffset; /*!< this field specifies the Next block destination address offset
                                           signed value : if > 0 then  increment the next block destination Address by offset from where the last block ends
                                                          if < 0 then  decrement the next block destination Address by offset from where the last block ends
                                                          if == 0, the next block destination address starts from where the last block ends
                                       */

}MDMA_InitTypeDef;

/**
  * @brief  HAL MDMA linked list node structure definition
  * @note   The Linked list node allows to define a new MDMA configuration
  *         (CTCR ,CBNDTR ,CSAR ,CDAR ,CBRUR, CLAR, CTBR, CMAR and CMDR registers).
  *         When CLAR register is configured to a non NULL value , each time a transfer ends,
  *         a new configuration (linked list node) is automatically loaded from the address given in CLAR register.
  */
typedef struct
{
  volatile uint32_t CTCR;
  volatile uint32_t CBNDTR;
  volatile uint32_t CSAR;
  volatile uint32_t CDAR;
  volatile uint32_t CBRUR;
  volatile uint32_t CLAR;
  volatile uint32_t CTBR;
  volatile uint32_t Reserved;
  volatile uint32_t CMAR;
  volatile uint32_t CMDR;

}MDMA_LinkNodeTypeDef;

/**
  * @brief  HAL MDMA linked list node configuration structure definition
  * @note   used with HAL_MDMA_LinkedList_CreateNode function
  */
typedef struct
{
  MDMA_InitTypeDef Init;
  uint32_t SrcAddress;
  uint32_t DstAddress;
  uint32_t BlockDataLength;
  uint32_t BlockCount;

  uint32_t PostRequestMaskAddress; /*!< specifies the address to be updated (written) with PostRequestMaskData after a request is served.
                                         PostRequestMaskAddress and PostRequestMaskData could be used to automatically clear a peripheral flag when the request is served  */

  uint32_t PostRequestMaskData; /*!< specifies the value to be written to PostRequestMaskAddress after a request is served.
                                         PostRequestMaskAddress and PostRequestMaskData could be used to automatically clear a peripheral flag when the request is served  */


}MDMA_LinkNodeConfTypeDef;


/**
  * @brief  HAL MDMA State structure definition
  */
typedef enum
{
  HAL_MDMA_STATE_RESET = 0x00U,
  HAL_MDMA_STATE_READY = 0x01U,
  HAL_MDMA_STATE_BUSY = 0x02U,
  HAL_MDMA_STATE_ERROR = 0x03U,
  HAL_MDMA_STATE_ABORT = 0x04U,

}HAL_MDMA_StateTypeDef;

/**
  * @brief  HAL MDMA Level Complete structure definition
  */
typedef enum
{
  HAL_MDMA_FULL_TRANSFER = 0x00U,
  HAL_MDMA_BUFFER_TRANSFER = 0x01U,
  HAL_MDMA_BLOCK_TRANSFER = 0x02U,
  HAL_MDMA_REPEAT_BLOCK_TRANSFER = 0x03U

}HAL_MDMA_LevelCompleteTypeDef;

/**
  * @brief  HAL MDMA Callbacks IDs structure definition
  */
typedef enum
{
  HAL_MDMA_XFER_CPLT_CB_ID = 0x00U,
  HAL_MDMA_XFER_BUFFERCPLT_CB_ID = 0x01U,
  HAL_MDMA_XFER_BLOCKCPLT_CB_ID = 0x02U,
  HAL_MDMA_XFER_REPBLOCKCPLT_CB_ID = 0x03U,
  HAL_MDMA_XFER_ERROR_CB_ID = 0x04U,
  HAL_MDMA_XFER_ABORT_CB_ID = 0x05U,
  HAL_MDMA_XFER_ALL_CB_ID = 0x06U

}HAL_MDMA_CallbackIDTypeDef;


/**
  * @brief  MDMA handle Structure definition
  */
typedef struct __MDMA_HandleTypeDef
{
  MDMA_Channel_TypeDef *Instance;

  MDMA_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  volatile HAL_MDMA_StateTypeDef State;

  void *Parent;

  void (* XferCpltCallback)( struct __MDMA_HandleTypeDef * hmdma);

  void (* XferBufferCpltCallback)( struct __MDMA_HandleTypeDef * hmdma);

  void (* XferBlockCpltCallback)( struct __MDMA_HandleTypeDef * hmdma);

  void (* XferRepeatBlockCpltCallback)( struct __MDMA_HandleTypeDef * hmdma);

  void (* XferErrorCallback)( struct __MDMA_HandleTypeDef * hmdma);

  void (* XferAbortCallback)( struct __MDMA_HandleTypeDef * hmdma);


  MDMA_LinkNodeTypeDef *FirstLinkedListNodeAddress; /*!< specifies the first node address of the transfer list
                                                                                                     (after the initial node defined by the Init struct)
                                                                                                     this parameter is used internally by the MDMA driver
                                                                                                     to construct the linked list node
                                                                                                */

  MDMA_LinkNodeTypeDef *LastLinkedListNodeAddress; /*!< specifies the last node address of the transfer list
                                                                                                    this parameter is used internally by the MDMA driver
                                                                                                    to construct the linked list node
                                                                                                */
  uint32_t LinkedListNodeCounter;

  volatile uint32_t ErrorCode;

} MDMA_HandleTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup MDMA_Exported_Constants MDMA Exported Constants
  * @brief    MDMA Exported constants
  * @{
  */

/** @defgroup MDMA_Error_Codes MDMA Error Codes
  * @brief    MDMA Error Codes
  * @{
  */
# 269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdma.h"
/**
  * @}
  */

/** @defgroup MDMA_Request_selection MDMA Request selection
  * @brief    MDMA_Request_selection
  * @{
  */
# 333 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdma.h"
/**
  * @}
  */

/** @defgroup MDMA_Transfer_TriggerMode MDMA Transfer Trigger  Mode
  * @brief    MDMA Transfer Trigger Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup MDMA_Priority_level MDMA Priority level
  * @brief    MDMA Priority level
  * @{
  */





/**
  * @}
  */


/** @defgroup MDMA_Endianness MDMA Endianness
  * @brief    MDMA Endianness
  * @{
  */





/**
  * @}
  */

/** @defgroup MDMA_Source_increment_mode MDMA Source increment mode
  * @brief    MDMA Source increment mode
  * @{
  */
# 391 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdma.h"
/**
  * @}
  */

/** @defgroup MDMA_Destination_increment_mode MDMA Destination increment mode
  * @brief    MDMA Destination increment mode
  * @{
  */
# 409 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdma.h"
/**
  * @}
  */

/** @defgroup MDMA_Source_data_size MDMA Source data size
  * @brief    MDMA Source data size
  * @{
  */





/**
  * @}
  */

/** @defgroup MDMA_Destination_data_size MDMA Destination data size
  * @brief    MDMA Destination data size
  * @{
  */





/**
  * @}
  */

/** @defgroup MDMA_data_Alignment MDMA data alignment
  * @brief    MDMA data alignment
  * @{
  */







/**
  * @}
  */

/** @defgroup MDMA_Source_burst MDMA Source burst
  * @brief    MDMA Source burst
  * @{
  */
# 467 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdma.h"
/**
  * @}
  */

/** @defgroup MDMA_Destination_burst MDMA Destination burst
  * @brief    MDMA Destination burst
  * @{
  */
# 484 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdma.h"
/**
  * @}
  */

/** @defgroup MDMA_interrupt_enable_definitions MDMA interrupt enable definitions
  * @brief    MDMA interrupt enable definitions
  * @{
  */






/**
  * @}
  */

/** @defgroup MDMA_flag_definitions MDMA flag definitions
  * @brief    MDMA flag definitions
  * @{
  */







/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/

/** @defgroup MDMA_Exported_Macros MDMA Exported Macros
  * @{
  */

/**
  * @brief  Enable the specified MDMA Channel.
  * @param  __HANDLE__: MDMA handle
  * @retval None
  */


/**
  * @brief  Disable the specified MDMA Channel.
  * @param  __HANDLE__: MDMA handle
  * @retval None
  */


/**
  * @brief  Get the MDMA Channel pending flags.
  * @param  __HANDLE__: MDMA handle
  * @param  __FLAG__: Get the specified flag.
  *          This parameter can be any combination of the following values:
  *            @arg MDMA_FLAG_TE   : Transfer Error flag.
  *            @arg MDMA_FLAG_CTC  : Channel Transfer Complete flag.
  *            @arg MDMA_FLAG_BRT  : Block Repeat Transfer flag.
  *            @arg MDMA_FLAG_BT   : Block Transfer complete flag.
  *            @arg MDMA_FLAG_BFTC : BuFfer Transfer Complete flag.
  *            @arg MDMA_FLAG_CRQA : Channel request Active flag.
  * @retval The state of FLAG (SET or RESET).
  */


/**
  * @brief  Clear the MDMA Stream pending flags.
  * @param  __HANDLE__: MDMA handle
  * @param  __FLAG__: specifies the flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg MDMA_FLAG_TE   : Transfer Error flag.
  *            @arg MDMA_FLAG_CTC  : Channel Transfer Complete flag.
  *            @arg MDMA_FLAG_BRT  : Block Repeat Transfer flag.
  *            @arg MDMA_FLAG_BT   : Block Transfer complete flag.
  *            @arg MDMA_FLAG_BFTC : BuFfer Transfer Complete flag.
  * @retval None
  */


/**
  * @brief  Enables the specified MDMA Channel interrupts.
  * @param  __HANDLE__: MDMA handle
  * @param __INTERRUPT__: specifies the DMA interrupt sources to be enabled or disabled.
  *          This parameter can be any combination of the following values:
  *            @arg MDMA_IT_TE   :  Transfer Error interrupt mask
  *            @arg MDMA_IT_CTC  :  Channel Transfer Complete interrupt mask
  *            @arg MDMA_IT_BRT  :  Block Repeat Transfer interrupt mask
  *            @arg MDMA_IT_BT   :  Block Transfer interrupt mask
  *            @arg MDMA_IT_BFTC :  BuFfer Transfer Complete interrupt mask
  * @retval None
  */


/**
  * @brief  Disables the specified MDMA Channel interrupts.
  * @param  __HANDLE__: MDMA handle
  * @param __INTERRUPT__: specifies the MDMA interrupt sources to be enabled or disabled.
  *          This parameter can be any combination of the following values:
  *            @arg MDMA_IT_TE   :  Transfer Error interrupt mask
  *            @arg MDMA_IT_CTC  :  Channel Transfer Complete interrupt mask
  *            @arg MDMA_IT_BRT  :  Block Repeat Transfer interrupt mask
  *            @arg MDMA_IT_BT   :  Block Transfer interrupt mask
  *            @arg MDMA_IT_BFTC :  BuFfer Transfer Complete interrupt mask
  * @retval None
  */


/**
  * @brief  Checks whether the specified MDMA Channel interrupt is enabled or not.
  * @param  __HANDLE__: MDMA handle
  * @param  __INTERRUPT__: specifies the MDMA interrupt source to check.
  *            @arg MDMA_IT_TE   :  Transfer Error interrupt mask
  *            @arg MDMA_IT_CTC  :  Channel Transfer Complete interrupt mask
  *            @arg MDMA_IT_BRT  :  Block Repeat Transfer interrupt mask
  *            @arg MDMA_IT_BT   :  Block Transfer interrupt mask
  *            @arg MDMA_IT_BFTC :  BuFfer Transfer Complete interrupt mask
  * @retval The state of MDMA_IT (SET or RESET).
  */


/**
  * @brief  Writes the number of data in bytes to be transferred on the MDMA Channelx.
  * @param  __HANDLE__ : MDMA handle
  * @param  __COUNTER__: Number of data in bytes to be transferred.
  * @retval None
  */


/**
  * @brief  Returns the number of remaining data in bytes in the current MDMA Channelx transfer.
  * @param  __HANDLE__ : MDMA handle
  * @retval The number of remaining data in bytes in the current MDMA Channelx transfer.
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup MDMA_Exported_Functions  MDMA Exported Functions
  * @{
  */

/* Initialization and de-initialization functions *****************************/
/** @defgroup MDMA_Exported_Functions_Group1 Initialization and de-initialization functions
  * @brief   Initialization and de-initialization functions
  * @{
  */
HAL_StatusTypeDef HAL_MDMA_Init(MDMA_HandleTypeDef *hmdma);
HAL_StatusTypeDef HAL_MDMA_DeInit (MDMA_HandleTypeDef *hmdma);
HAL_StatusTypeDef HAL_MDMA_ConfigPostRequestMask(MDMA_HandleTypeDef *hmdma, uint32_t MaskAddress, uint32_t MaskData);

HAL_StatusTypeDef HAL_MDMA_RegisterCallback(MDMA_HandleTypeDef *hmdma, HAL_MDMA_CallbackIDTypeDef CallbackID, void (* pCallback)(MDMA_HandleTypeDef *_hmdma));
HAL_StatusTypeDef HAL_MDMA_UnRegisterCallback(MDMA_HandleTypeDef *hmdma, HAL_MDMA_CallbackIDTypeDef CallbackID);

/**
  * @}
  */

/* Linked list operation functions ********************************************/
/** @defgroup MDMA_Exported_Functions_Group2 Linked List operation functions
  * @brief   Linked list operation functions
  * @{
  */

HAL_StatusTypeDef HAL_MDMA_LinkedList_CreateNode(MDMA_LinkNodeTypeDef *pNode, MDMA_LinkNodeConfTypeDef *pNodeConfig);
HAL_StatusTypeDef HAL_MDMA_LinkedList_AddNode(MDMA_HandleTypeDef *hmdma, MDMA_LinkNodeTypeDef *pNewNode, const MDMA_LinkNodeTypeDef *pPrevNode);
HAL_StatusTypeDef HAL_MDMA_LinkedList_RemoveNode(MDMA_HandleTypeDef *hmdma, MDMA_LinkNodeTypeDef *pNode);
HAL_StatusTypeDef HAL_MDMA_LinkedList_EnableCircularMode(MDMA_HandleTypeDef *hmdma);
HAL_StatusTypeDef HAL_MDMA_LinkedList_DisableCircularMode(MDMA_HandleTypeDef *hmdma);


/**
  * @}
  */

/* IO operation functions *****************************************************/
/** @defgroup MDMA_Exported_Functions_Group3 I/O operation functions
  * @brief   I/O operation functions
  * @{
  */
HAL_StatusTypeDef HAL_MDMA_Start (MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount);
HAL_StatusTypeDef HAL_MDMA_Start_IT(MDMA_HandleTypeDef *hmdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t BlockDataLength, uint32_t BlockCount);
HAL_StatusTypeDef HAL_MDMA_Abort(MDMA_HandleTypeDef *hmdma);
HAL_StatusTypeDef HAL_MDMA_Abort_IT(MDMA_HandleTypeDef *hmdma);
HAL_StatusTypeDef HAL_MDMA_PollForTransfer(MDMA_HandleTypeDef *hmdma, HAL_MDMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout);
HAL_StatusTypeDef HAL_MDMA_GenerateSWRequest(MDMA_HandleTypeDef *hmdma);
void HAL_MDMA_IRQHandler(MDMA_HandleTypeDef *hmdma);

/**
  * @}
  */

/* Peripheral State and Error functions ***************************************/
/** @defgroup MDMA_Exported_Functions_Group4 Peripheral State functions
  * @brief    Peripheral State functions
  * @{
  */
HAL_MDMA_StateTypeDef HAL_MDMA_GetState(const MDMA_HandleTypeDef *hmdma);
uint32_t HAL_MDMA_GetError(const MDMA_HandleTypeDef *hmdma);

/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup MDMA_Private_Types MDMA Private Types
  * @{
  */

/**
  * @}
  */

/* Private defines -----------------------------------------------------------*/
/** @defgroup MDMA_Private_Defines MDMA Private Defines
  * @{
  */

/**
  * @}
  */

/* Private variables ---------------------------------------------------------*/
/** @defgroup MDMA_Private_Variables MDMA Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup MDMA_Private_Constants MDMA Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup MDMA_Private_Macros MDMA Private Macros
  * @{
  */
# 833 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdma.h"
/**
  * @}
  */

/* Private functions prototypes ----------------------------------------------*/
/** @defgroup MDMA_Private_Functions_Prototypes MDMA Private Functions Prototypes
  * @{
  */

/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup MDMA_Private_Functions MDMA Private Functions
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 263 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hash.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_hash.h
  * @author  MCD Application Team
  * @brief   Header file of HASH HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hash.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */
# 631 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hash.h"
/**
  * @}
  */



}
# 267 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dcmi.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dcmi.h
  * @author  MCD Application Team
  * @brief   Header file of DCMI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dcmi.h" 2


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup DCMI DCMI
  * @brief DCMI HAL module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup DCMI_Exported_Types DCMI Exported Types
  * @{
  */
/**
  * @brief  HAL DCMI State structures definition
  */
typedef enum
{
  HAL_DCMI_STATE_RESET = 0x00U,
  HAL_DCMI_STATE_READY = 0x01U,
  HAL_DCMI_STATE_BUSY = 0x02U,
  HAL_DCMI_STATE_TIMEOUT = 0x03U,
  HAL_DCMI_STATE_ERROR = 0x04U,
  HAL_DCMI_STATE_SUSPENDED = 0x05U
} HAL_DCMI_StateTypeDef;

/**
  * @brief   DCMI Embedded Synchronisation CODE Init structure definition
  */
typedef struct
{
  uint8_t FrameStartCode;
  uint8_t LineStartCode;
  uint8_t LineEndCode;
  uint8_t FrameEndCode;
} DCMI_CodesInitTypeDef;

/**
  * @brief   DCMI Embedded Synchronisation UNMASK Init structure definition
  */
typedef struct
{
  uint8_t FrameStartUnmask;
  uint8_t LineStartUnmask;
  uint8_t LineEndUnmask;
  uint8_t FrameEndUnmask;
} DCMI_SyncUnmaskTypeDef;
/**
  * @brief   DCMI Init structure definition
  */
typedef struct
{
  uint32_t SynchroMode; /*!< Specifies the Synchronization Mode: Hardware or Embedded.
                                             This parameter can be a value of @ref DCMI_Synchronization_Mode */

  uint32_t PCKPolarity; /*!< Specifies the Pixel clock polarity: Falling or Rising.
                                             This parameter can be a value of @ref DCMI_PIXCK_Polarity       */

  uint32_t VSPolarity; /*!< Specifies the Vertical synchronization polarity: High or Low.
                                             This parameter can be a value of @ref DCMI_VSYNC_Polarity       */

  uint32_t HSPolarity; /*!< Specifies the Horizontal synchronization polarity: High or Low.
                                             This parameter can be a value of @ref DCMI_HSYNC_Polarity       */

  uint32_t CaptureRate; /*!< Specifies the frequency of frame capture: All, 1/2 or 1/4.
                                             This parameter can be a value of @ref DCMI_Capture_Rate         */

  uint32_t ExtendedDataMode; /*!< Specifies the data width: 8-bit, 10-bit, 12-bit or 14-bit.
                                             This parameter can be a value of @ref DCMI_Extended_Data_Mode   */

  DCMI_CodesInitTypeDef SyncroCode; /*!< Specifies the code of the line/frame start delimiter and the
                                             line/frame end delimiter */

  uint32_t JPEGMode; /*!< Enable or Disable the JPEG mode.
                                             This parameter can be a value of @ref DCMI_MODE_JPEG            */

  uint32_t ByteSelectMode; /*!< Specifies the data to be captured by the interface
                                            This parameter can be a value of @ref DCMI_Byte_Select_Mode      */

  uint32_t ByteSelectStart; /*!< Specifies if the data to be captured by the interface is even or odd
                                            This parameter can be a value of @ref DCMI_Byte_Select_Start     */

  uint32_t LineSelectMode; /*!< Specifies the line of data to be captured by the interface
                                            This parameter can be a value of @ref DCMI_Line_Select_Mode      */

  uint32_t LineSelectStart; /*!< Specifies if the line of data to be captured by the interface is even or odd
                                            This parameter can be a value of @ref DCMI_Line_Select_Start     */
} DCMI_InitTypeDef;

/**
  * @brief  DCMI handle Structure definition
  */



typedef struct

{
  DCMI_TypeDef *Instance;

  DCMI_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  volatile HAL_DCMI_StateTypeDef State;

  volatile uint32_t XferCount;

  volatile uint32_t XferSize;

  uint32_t XferTransferNumber;

  uint32_t pBuffPtr;

  DMA_HandleTypeDef *DMA_Handle;

  volatile uint32_t ErrorCode;
# 157 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dcmi.h"
} DCMI_HandleTypeDef;
# 180 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dcmi.h"
/**
  * @}
  */
/* Exported constants --------------------------------------------------------*/

/** @defgroup DCMI_Exported_Constants DCMI Exported Constants
  * @{
  */

/** @defgroup DCMI_Error_Code DCMI Error Code
  * @{
  */
# 200 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dcmi.h"
/**
  * @}
  */

/** @defgroup DCMI_Capture_Mode DCMI Capture Mode
  * @{
  */




/**
  * @}
  */

/** @defgroup DCMI_Synchronization_Mode DCMI Synchronization Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup DCMI_PIXCK_Polarity DCMI PIXCK Polarity
  * @{
  */



/**
  * @}
  */

/** @defgroup DCMI_VSYNC_Polarity DCMI VSYNC Polarity
  * @{
  */



/**
  * @}
  */

/** @defgroup DCMI_HSYNC_Polarity DCMI HSYNC Polarity
  * @{
  */



/**
  * @}
  */

/** @defgroup DCMI_MODE_JPEG DCMI MODE JPEG
  * @{
  */



/**
  * @}
  */

/** @defgroup DCMI_Capture_Rate DCMI Capture Rate
  * @{
  */




/**
  * @}
  */

/** @defgroup DCMI_Extended_Data_Mode DCMI Extended Data Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup DCMI_Window_Coordinate DCMI Window Coordinate
  * @{
  */


/**
  * @}
  */

/** @defgroup DCMI_Window_Height DCMI Window Height
  * @{
  */


/**
  * @}
  */

/** @defgroup DCMI_interrupt_sources  DCMI interrupt sources
  * @{
  */





/**
  * @}
  */

/** @defgroup DCMI_Flags DCMI Flags
  * @{
  */

/**
  * @brief   DCMI SR register
  */



/**
  * @brief   DCMI RIS register
  */





/**
  * @brief   DCMI MIS register
  */





/**
  * @}
  */

/** @defgroup DCMI_Byte_Select_Mode DCMI Byte Select Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup DCMI_Byte_Select_Start DCMI Byte Select Start
  * @{
  */



/**
  * @}
  */

/** @defgroup DCMI_Line_Select_Mode DCMI Line Select Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup DCMI_Line_Select_Start DCMI Line Select Start
  * @{
  */



/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup DCMI_Exported_Macros DCMI Exported Macros
  * @{
  */

/** @brief Reset DCMI handle state
  * @param  __HANDLE__ specifies the DCMI handle.
  * @retval None
  */
# 415 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dcmi.h"
/**
  * @brief  Enable the DCMI.
  * @param  __HANDLE__ DCMI handle
  * @retval None
  */


/**
  * @brief  Disable the DCMI.
  * @param  __HANDLE__ DCMI handle
  * @retval None
  */


/* Interrupt & Flag management */
/**
  * @brief  Get the DCMI pending flag.
  * @param  __HANDLE__ DCMI handle
  * @param  __FLAG__ Get the specified flag.
  *         This parameter can be one of the following values (no combination allowed)
  *            @arg DCMI_FLAG_HSYNC: HSYNC pin state (active line / synchronization between lines)
  *            @arg DCMI_FLAG_VSYNC: VSYNC pin state (active frame / synchronization between frames)
  *            @arg DCMI_FLAG_FNE: FIFO empty flag
  *            @arg DCMI_FLAG_FRAMERI: Frame capture complete flag mask
  *            @arg DCMI_FLAG_OVRRI: Overrun flag mask
  *            @arg DCMI_FLAG_ERRRI: Synchronization error flag mask
  *            @arg DCMI_FLAG_VSYNCRI: VSYNC flag mask
  *            @arg DCMI_FLAG_LINERI: Line flag mask
  *            @arg DCMI_FLAG_FRAMEMI: DCMI Capture complete masked interrupt status
  *            @arg DCMI_FLAG_OVRMI: DCMI Overrun masked interrupt status
  *            @arg DCMI_FLAG_ERRMI: DCMI Synchronization error masked interrupt status
  *            @arg DCMI_FLAG_VSYNCMI: DCMI VSYNC masked interrupt status
  *            @arg DCMI_FLAG_LINEMI: DCMI Line masked interrupt status
  * @retval The state of FLAG.
  */




/**
  * @brief  Clear the DCMI pending flags.
  * @param  __HANDLE__ DCMI handle
  * @param  __FLAG__ specifies the flag to clear.
  *         This parameter can be any combination of the following values:
  *            @arg DCMI_FLAG_FRAMERI: Frame capture complete flag mask
  *            @arg DCMI_FLAG_OVFRI: Overflow flag mask
  *            @arg DCMI_FLAG_ERRRI: Synchronization error flag mask
  *            @arg DCMI_FLAG_VSYNCRI: VSYNC flag mask
  *            @arg DCMI_FLAG_LINERI: Line flag mask
  * @retval None
  */


/**
  * @brief  Enable the specified DCMI interrupts.
  * @param  __HANDLE__    DCMI handle
  * @param  __INTERRUPT__ specifies the DCMI interrupt sources to be enabled.
  *         This parameter can be any combination of the following values:
  *            @arg DCMI_IT_FRAME: Frame capture complete interrupt mask
  *            @arg DCMI_IT_OVF: Overflow interrupt mask
  *            @arg DCMI_IT_ERR: Synchronization error interrupt mask
  *            @arg DCMI_IT_VSYNC: VSYNC interrupt mask
  *            @arg DCMI_IT_LINE: Line interrupt mask
  * @retval None
  */


/**
  * @brief  Disable the specified DCMI interrupts.
  * @param  __HANDLE__ DCMI handle
  * @param  __INTERRUPT__ specifies the DCMI interrupt sources to be enabled.
  *         This parameter can be any combination of the following values:
  *            @arg DCMI_IT_FRAME: Frame capture complete interrupt mask
  *            @arg DCMI_IT_OVF: Overflow interrupt mask
  *            @arg DCMI_IT_ERR: Synchronization error interrupt mask
  *            @arg DCMI_IT_VSYNC: VSYNC interrupt mask
  *            @arg DCMI_IT_LINE: Line interrupt mask
  * @retval None
  */


/**
  * @brief  Check whether the specified DCMI interrupt has occurred or not.
  * @param  __HANDLE__ DCMI handle
  * @param  __INTERRUPT__ specifies the DCMI interrupt source to check.
  *         This parameter can be one of the following values:
  *            @arg DCMI_IT_FRAME: Frame capture complete interrupt mask
  *            @arg DCMI_IT_OVF: Overflow interrupt mask
  *            @arg DCMI_IT_ERR: Synchronization error interrupt mask
  *            @arg DCMI_IT_VSYNC: VSYNC interrupt mask
  *            @arg DCMI_IT_LINE: Line interrupt mask
  * @retval The state of INTERRUPT.
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup DCMI_Exported_Functions DCMI Exported Functions
  * @{
  */

/** @addtogroup DCMI_Exported_Functions_Group1 Initialization and Configuration functions
 * @{
 */
/* Initialization and de-initialization functions *****************************/
HAL_StatusTypeDef HAL_DCMI_Init(DCMI_HandleTypeDef *hdcmi);
HAL_StatusTypeDef HAL_DCMI_DeInit(DCMI_HandleTypeDef *hdcmi);
void HAL_DCMI_MspInit(DCMI_HandleTypeDef* hdcmi);
void HAL_DCMI_MspDeInit(DCMI_HandleTypeDef* hdcmi);

/* Callbacks Register/UnRegister functions  ***********************************/





/**
  * @}
  */

/** @addtogroup DCMI_Exported_Functions_Group2 IO operation functions
 * @{
 */
/* IO operation functions *****************************************************/
HAL_StatusTypeDef HAL_DCMI_Start_DMA(DCMI_HandleTypeDef* hdcmi, uint32_t DCMI_Mode, uint32_t pData, uint32_t Length);
HAL_StatusTypeDef HAL_DCMI_Stop(DCMI_HandleTypeDef* hdcmi);
HAL_StatusTypeDef HAL_DCMI_Suspend(DCMI_HandleTypeDef* hdcmi);
HAL_StatusTypeDef HAL_DCMI_Resume(DCMI_HandleTypeDef* hdcmi);
void HAL_DCMI_ErrorCallback(DCMI_HandleTypeDef *hdcmi);
void HAL_DCMI_LineEventCallback(DCMI_HandleTypeDef *hdcmi);
void HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi);
void HAL_DCMI_VsyncEventCallback(DCMI_HandleTypeDef *hdcmi);
void HAL_DCMI_IRQHandler(DCMI_HandleTypeDef *hdcmi);
/**
  * @}
  */

/** @addtogroup DCMI_Exported_Functions_Group3 Peripheral Control functions
 * @{
 */
/* Peripheral Control functions ***********************************************/
HAL_StatusTypeDef HAL_DCMI_ConfigCrop(DCMI_HandleTypeDef *hdcmi, uint32_t X0, uint32_t Y0, uint32_t XSize, uint32_t YSize);
HAL_StatusTypeDef HAL_DCMI_EnableCrop(DCMI_HandleTypeDef *hdcmi);
HAL_StatusTypeDef HAL_DCMI_DisableCrop(DCMI_HandleTypeDef *hdcmi);
HAL_StatusTypeDef HAL_DCMI_ConfigSyncUnmask(DCMI_HandleTypeDef *hdcmi, DCMI_SyncUnmaskTypeDef *SyncUnmask);

/**
  * @}
  */

/** @addtogroup DCMI_Exported_Functions_Group4 Peripheral State functions
 * @{
 */
/* Peripheral State functions *************************************************/
HAL_DCMI_StateTypeDef HAL_DCMI_GetState(const DCMI_HandleTypeDef *hdcmi);
uint32_t HAL_DCMI_GetError(const DCMI_HandleTypeDef *hdcmi);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private defines -----------------------------------------------------------*/
/** @defgroup DCMI_Private_Defines DCMI Private Defines
  * @{
  */
/**
  * @}
  */
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup DCMI_Private_Constants DCMI Private Constants
  * @{
  */


/**
  * @}
  */
/* Private macro -------------------------------------------------------------*/
/** @defgroup DCMI_Private_Macros DCMI Private Macros
  * @{
  */
# 649 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dcmi.h"
/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @addtogroup DCMI_Private_Functions DCMI Private Functions
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */
/**
  * @}
  */




}
# 271 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma2d.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dma2d.h
  * @author  MCD Application Team
  * @brief   Header file of DMA2D HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma2d.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */



/** @addtogroup DMA2D DMA2D
  * @brief DMA2D HAL module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup DMA2D_Exported_Types DMA2D Exported Types
  * @{
  */


/**
  * @brief DMA2D CLUT Structure definition
  */
typedef struct
{
  uint32_t *pCLUT;

  uint32_t CLUTColorMode; /*!< Configures the DMA2D CLUT color mode.
                                         This parameter can be one value of @ref DMA2D_CLUT_CM. */

  uint32_t Size; /*!< Configures the DMA2D CLUT size.
                                         This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF.*/
} DMA2D_CLUTCfgTypeDef;

/**
  * @brief DMA2D Init structure definition
  */
typedef struct
{
  uint32_t Mode; /*!< Configures the DMA2D transfer mode.
                                                This parameter can be one value of @ref DMA2D_Mode. */

  uint32_t ColorMode; /*!< Configures the color format of the output image.
                                                This parameter can be one value of @ref DMA2D_Output_Color_Mode. */

  uint32_t OutputOffset; /*!< Specifies the Offset value.
                                                This parameter must be a number between
                                                Min_Data = 0x0000 and Max_Data = 0x3FFF. */
  uint32_t AlphaInverted; /*!< Select regular or inverted alpha value for the output pixel format converter.
                                               This parameter can be one value of @ref DMA2D_Alpha_Inverted. */

  uint32_t RedBlueSwap; /*!< Select regular mode (RGB or ARGB) or swap mode (BGR or ABGR)
                                               for the output pixel format converter.
                                               This parameter can be one value of @ref DMA2D_RB_Swap. */


  uint32_t BytesSwap; /*!< Select byte regular mode or bytes swap mode (two by two).
                                               This parameter can be one value of @ref DMA2D_Bytes_Swap. */

  uint32_t LineOffsetMode; /*!< Configures how is expressed the line offset for the foreground, background and output.
                                               This parameter can be one value of @ref DMA2D_Line_Offset_Mode. */

} DMA2D_InitTypeDef;


/**
  * @brief DMA2D Layer structure definition
  */
typedef struct
{
  uint32_t InputOffset; /*!< Configures the DMA2D foreground or background offset.
                                               This parameter must be a number between
                                               Min_Data = 0x0000 and Max_Data = 0x3FFF. */

  uint32_t InputColorMode; /*!< Configures the DMA2D foreground or background color mode.
                                               This parameter can be one value of @ref DMA2D_Input_Color_Mode. */

  uint32_t AlphaMode; /*!< Configures the DMA2D foreground or background alpha mode.
                                               This parameter can be one value of @ref DMA2D_Alpha_Mode. */

  uint32_t InputAlpha; /*!< Specifies the DMA2D foreground or background alpha value and color value
                                               in case of A8 or A4 color mode.
                                               This parameter must be a number between Min_Data = 0x00
                                               and Max_Data = 0xFF except for the color modes detailed below.
                                               @note In case of A8 or A4 color mode (ARGB),
                                               this parameter must be a number between
                                               Min_Data = 0x00000000 and Max_Data = 0xFFFFFFFF where
                                               - InputAlpha[24:31] is the alpha value ALPHA[0:7]
                                               - InputAlpha[16:23] is the red value RED[0:7]
                                               - InputAlpha[8:15] is the green value GREEN[0:7]
                                               - InputAlpha[0:7] is the blue value BLUE[0:7]. */
  uint32_t AlphaInverted; /*!< Select regular or inverted alpha value.
                                               This parameter can be one value of @ref DMA2D_Alpha_Inverted. */

  uint32_t RedBlueSwap; /*!< Select regular mode (RGB or ARGB) or swap mode (BGR or ABGR).
                                               This parameter can be one value of @ref DMA2D_RB_Swap. */

  uint32_t ChromaSubSampling; /*!< Configure the chroma sub-sampling mode for the YCbCr color mode
                                               This parameter can be one value of @ref DMA2D_Chroma_Sub_Sampling */

} DMA2D_LayerCfgTypeDef;

/**
  * @brief  HAL DMA2D State structures definition
  */
typedef enum
{
  HAL_DMA2D_STATE_RESET = 0x00U,
  HAL_DMA2D_STATE_READY = 0x01U,
  HAL_DMA2D_STATE_BUSY = 0x02U,
  HAL_DMA2D_STATE_TIMEOUT = 0x03U,
  HAL_DMA2D_STATE_ERROR = 0x04U,
  HAL_DMA2D_STATE_SUSPEND = 0x05U
} HAL_DMA2D_StateTypeDef;

/**
  * @brief  DMA2D handle Structure definition
  */
typedef struct __DMA2D_HandleTypeDef
{
  DMA2D_TypeDef *Instance;

  DMA2D_InitTypeDef Init;

  void (* XferCpltCallback)(struct __DMA2D_HandleTypeDef *hdma2d);

  void (* XferErrorCallback)(struct __DMA2D_HandleTypeDef *hdma2d);
# 166 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma2d.h"
  DMA2D_LayerCfgTypeDef LayerCfg[2U];

  HAL_LockTypeDef Lock;

  volatile HAL_DMA2D_StateTypeDef State;

  volatile uint32_t ErrorCode;
} DMA2D_HandleTypeDef;







/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup DMA2D_Exported_Constants DMA2D Exported Constants
  * @{
  */

/** @defgroup DMA2D_Error_Code DMA2D Error Code
  * @{
  */
# 202 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma2d.h"
/**
  * @}
  */

/** @defgroup DMA2D_Mode DMA2D Mode
  * @{
  */






/**
  * @}
  */

/** @defgroup DMA2D_Output_Color_Mode DMA2D Output Color Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup DMA2D_Input_Color_Mode DMA2D Input Color Mode
  * @{
  */
# 246 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma2d.h"
/**
  * @}
  */

/** @defgroup DMA2D_Alpha_Mode DMA2D Alpha Mode
  * @{
  */




/**
  * @}
  */

/** @defgroup DMA2D_Alpha_Inverted DMA2D Alpha Inversion
  * @{
  */


/**
  * @}
  */

/** @defgroup DMA2D_RB_Swap DMA2D Red and Blue Swap
  * @{
  */


/**
  * @}
  */



/** @defgroup DMA2D_Line_Offset_Mode DMA2D Line Offset Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup DMA2D_Bytes_Swap DMA2D Bytes Swap
  * @{
  */


/**
  * @}
  */

/** @defgroup DMA2D_Chroma_Sub_Sampling DMA2D Chroma Sub Sampling
  * @{
  */



/**
  * @}
  */

/** @defgroup DMA2D_CLUT_CM DMA2D CLUT Color Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup DMA2D_Interrupts DMA2D Interrupts
  * @{
  */






/**
  * @}
  */

/** @defgroup DMA2D_Flags DMA2D Flags
  * @{
  */






/**
  * @}
  */
# 360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma2d.h"
/**
  * @}
  */
/* Exported macros ------------------------------------------------------------*/
/** @defgroup DMA2D_Exported_Macros DMA2D Exported Macros
  * @{
  */

/** @brief Reset DMA2D handle state
  * @param  __HANDLE__ specifies the DMA2D handle.
  * @retval None
  */
# 383 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma2d.h"
/**
  * @brief  Enable the DMA2D.
  * @param  __HANDLE__ DMA2D handle
  * @retval None.
  */



/* Interrupt & Flag management */
/**
  * @brief  Get the DMA2D pending flags.
  * @param  __HANDLE__ DMA2D handle
  * @param  __FLAG__ flag to check.
  *          This parameter can be any combination of the following values:
  *            @arg DMA2D_FLAG_CE:  Configuration error flag
  *            @arg DMA2D_FLAG_CTC: CLUT transfer complete flag
  *            @arg DMA2D_FLAG_CAE: CLUT access error flag
  *            @arg DMA2D_FLAG_TW:  Transfer Watermark flag
  *            @arg DMA2D_FLAG_TC:  Transfer complete flag
  *            @arg DMA2D_FLAG_TE:  Transfer error flag
  * @retval The state of FLAG.
  */


/**
  * @brief  Clear the DMA2D pending flags.
  * @param  __HANDLE__ DMA2D handle
  * @param  __FLAG__ specifies the flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg DMA2D_FLAG_CE:  Configuration error flag
  *            @arg DMA2D_FLAG_CTC: CLUT transfer complete flag
  *            @arg DMA2D_FLAG_CAE: CLUT access error flag
  *            @arg DMA2D_FLAG_TW:  Transfer Watermark flag
  *            @arg DMA2D_FLAG_TC:  Transfer complete flag
  *            @arg DMA2D_FLAG_TE:  Transfer error flag
  * @retval None
  */


/**
  * @brief  Enable the specified DMA2D interrupts.
  * @param  __HANDLE__ DMA2D handle
  * @param __INTERRUPT__ specifies the DMA2D interrupt sources to be enabled.
  *          This parameter can be any combination of the following values:
  *            @arg DMA2D_IT_CE:  Configuration error interrupt mask
  *            @arg DMA2D_IT_CTC: CLUT transfer complete interrupt mask
  *            @arg DMA2D_IT_CAE: CLUT access error interrupt mask
  *            @arg DMA2D_IT_TW:  Transfer Watermark interrupt mask
  *            @arg DMA2D_IT_TC:  Transfer complete interrupt mask
  *            @arg DMA2D_IT_TE:  Transfer error interrupt mask
  * @retval None
  */


/**
  * @brief  Disable the specified DMA2D interrupts.
  * @param  __HANDLE__ DMA2D handle
  * @param __INTERRUPT__ specifies the DMA2D interrupt sources to be disabled.
  *          This parameter can be any combination of the following values:
  *            @arg DMA2D_IT_CE:  Configuration error interrupt mask
  *            @arg DMA2D_IT_CTC: CLUT transfer complete interrupt mask
  *            @arg DMA2D_IT_CAE: CLUT access error interrupt mask
  *            @arg DMA2D_IT_TW:  Transfer Watermark interrupt mask
  *            @arg DMA2D_IT_TC:  Transfer complete interrupt mask
  *            @arg DMA2D_IT_TE:  Transfer error interrupt mask
  * @retval None
  */


/**
  * @brief  Check whether the specified DMA2D interrupt source is enabled or not.
  * @param  __HANDLE__ DMA2D handle
  * @param  __INTERRUPT__ specifies the DMA2D interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg DMA2D_IT_CE:  Configuration error interrupt mask
  *            @arg DMA2D_IT_CTC: CLUT transfer complete interrupt mask
  *            @arg DMA2D_IT_CAE: CLUT access error interrupt mask
  *            @arg DMA2D_IT_TW:  Transfer Watermark interrupt mask
  *            @arg DMA2D_IT_TC:  Transfer complete interrupt mask
  *            @arg DMA2D_IT_TE:  Transfer error interrupt mask
  * @retval The state of INTERRUPT source.
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup DMA2D_Exported_Functions DMA2D Exported Functions
  * @{
  */

/** @addtogroup DMA2D_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */

/* Initialization and de-initialization functions *******************************/
HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d);
HAL_StatusTypeDef HAL_DMA2D_DeInit(DMA2D_HandleTypeDef *hdma2d);
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef *hdma2d);
void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef *hdma2d);
/* Callbacks Register/UnRegister functions  ***********************************/






/**
  * @}
  */


/** @addtogroup DMA2D_Exported_Functions_Group2 IO operation functions
  * @{
  */

/* IO operation functions *******************************************************/
HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width,
                                  uint32_t Height);
HAL_StatusTypeDef HAL_DMA2D_BlendingStart(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2,
                                          uint32_t DstAddress, uint32_t Width, uint32_t Height);
HAL_StatusTypeDef HAL_DMA2D_Start_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width,
                                     uint32_t Height);
HAL_StatusTypeDef HAL_DMA2D_BlendingStart_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2,
                                             uint32_t DstAddress, uint32_t Width, uint32_t Height);
HAL_StatusTypeDef HAL_DMA2D_Suspend(DMA2D_HandleTypeDef *hdma2d);
HAL_StatusTypeDef HAL_DMA2D_Resume(DMA2D_HandleTypeDef *hdma2d);
HAL_StatusTypeDef HAL_DMA2D_Abort(DMA2D_HandleTypeDef *hdma2d);
HAL_StatusTypeDef HAL_DMA2D_EnableCLUT(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_CLUTStartLoad(DMA2D_HandleTypeDef *hdma2d, const DMA2D_CLUTCfgTypeDef *CLUTCfg,
                                          uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_CLUTStartLoad_IT(DMA2D_HandleTypeDef *hdma2d, const DMA2D_CLUTCfgTypeDef *CLUTCfg,
                                             uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad_IT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Abort(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Suspend(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Resume(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout);
void HAL_DMA2D_IRQHandler(DMA2D_HandleTypeDef *hdma2d);
void HAL_DMA2D_LineEventCallback(DMA2D_HandleTypeDef *hdma2d);
void HAL_DMA2D_CLUTLoadingCpltCallback(DMA2D_HandleTypeDef *hdma2d);

/**
  * @}
  */

/** @addtogroup DMA2D_Exported_Functions_Group3 Peripheral Control functions
  * @{
  */

/* Peripheral Control functions *************************************************/
HAL_StatusTypeDef HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_ConfigCLUT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_DMA2D_ProgramLineEvent(DMA2D_HandleTypeDef *hdma2d, uint32_t Line);
HAL_StatusTypeDef HAL_DMA2D_EnableDeadTime(DMA2D_HandleTypeDef *hdma2d);
HAL_StatusTypeDef HAL_DMA2D_DisableDeadTime(DMA2D_HandleTypeDef *hdma2d);
HAL_StatusTypeDef HAL_DMA2D_ConfigDeadTime(DMA2D_HandleTypeDef *hdma2d, uint8_t DeadTime);

/**
  * @}
  */

/** @addtogroup DMA2D_Exported_Functions_Group4 Peripheral State and Error functions
  * @{
  */

/* Peripheral State functions ***************************************************/
HAL_DMA2D_StateTypeDef HAL_DMA2D_GetState(const DMA2D_HandleTypeDef *hdma2d);
uint32_t HAL_DMA2D_GetError(const DMA2D_HandleTypeDef *hdma2d);

/**
  * @}
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/

/** @addtogroup DMA2D_Private_Constants DMA2D Private Constants
  * @{
  */

/** @defgroup DMA2D_Maximum_Line_WaterMark DMA2D Maximum Line Watermark
  * @{
  */

/**
  * @}
  */

/** @defgroup DMA2D_Color_Value DMA2D Color Value
  * @{
  */

/**
  * @}
  */

/** @defgroup DMA2D_Max_Layer DMA2D Maximum Number of Layers
  * @{
  */

/**
  * @}
  */

/** @defgroup DMA2D_Layers DMA2D Layers
  * @{
  */


/**
  * @}
  */

/** @defgroup DMA2D_Offset DMA2D Offset
  * @{
  */

/**
  * @}
  */

/** @defgroup DMA2D_Size DMA2D Size
  * @{
  */


/**
  * @}
  */

/** @defgroup DMA2D_CLUT_Size DMA2D CLUT Size
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */


/* Private macros ------------------------------------------------------------*/
/** @defgroup DMA2D_Private_Macros DMA2D Private Macros
  * @{
  */
# 697 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dma2d.h"
/**
  * @}
  */

/**
  * @}
  */



/**
  * @}
  */


}
# 275 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dsi.h
  * @author  MCD Application Team
  * @brief   Header file of DSI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h" 2



/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @defgroup DSI DSI
  * @brief DSI HAL module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup DSI_Exported_Types DSI Exported Types
  * @{
  */
/**
  * @brief  DSI Init Structure definition
  */
typedef struct
{
  uint32_t AutomaticClockLaneControl; /*!< Automatic clock lane control
                                              This parameter can be any value of @ref DSI_Automatic_Clk_Lane_Control */

  uint32_t TXEscapeCkdiv; /*!< TX Escape clock division
                                              The values 0 and 1 stop the TX_ESC clock generation                    */

  uint32_t NumberOfLanes; /*!< Number of lanes
                                              This parameter can be any value of @ref DSI_Number_Of_Lanes            */

} DSI_InitTypeDef;

/**
  * @brief  DSI PLL Clock structure definition
  */
typedef struct
{
  uint32_t PLLNDIV; /*!< PLL Loop Division Factor
                                         This parameter must be a value between 10 and 125                    */

  uint32_t PLLIDF; /*!< PLL Input Division Factor
                                         This parameter can be any value of @ref DSI_PLL_IDF                  */

  uint32_t PLLODF; /*!< PLL Output Division Factor
                                         This parameter can be any value of @ref DSI_PLL_ODF                  */

} DSI_PLLInitTypeDef;

/**
  * @brief  DSI Video mode configuration
  */
typedef struct
{
  uint32_t VirtualChannelID;

  uint32_t ColorCoding; /*!< Color coding for LTDC interface
                                              This parameter can be any value of @ref DSI_Color_Coding           */

  uint32_t LooselyPacked; /*!< Enable or disable loosely packed stream (needed only when using
                                              18-bit configuration).
                                              This parameter can be any value of @ref DSI_LooselyPacked          */

  uint32_t Mode; /*!< Video mode type
                                              This parameter can be any value of @ref DSI_Video_Mode_Type        */

  uint32_t PacketSize;

  uint32_t NumberOfChunks;

  uint32_t NullPacketSize;

  uint32_t HSPolarity; /*!< HSYNC pin polarity
                                              This parameter can be any value of @ref DSI_HSYNC_Polarity         */

  uint32_t VSPolarity; /*!< VSYNC pin polarity
                                              This parameter can be any value of @ref DSI_VSYNC_Active_Polarity  */

  uint32_t DEPolarity; /*!< Data Enable pin polarity
                                              This parameter can be any value of @ref DSI_DATA_ENABLE_Polarity   */

  uint32_t HorizontalSyncActive;

  uint32_t HorizontalBackPorch;

  uint32_t HorizontalLine;

  uint32_t VerticalSyncActive;

  uint32_t VerticalBackPorch;

  uint32_t VerticalFrontPorch;

  uint32_t VerticalActive;

  uint32_t LPCommandEnable; /*!< Low-power command enable
                                              This parameter can be any value of @ref DSI_LP_Command             */

  uint32_t LPLargestPacketSize; /*!< The size, in bytes, of the low power largest packet that
                                              can fit in a line during VSA, VBP and VFP regions                  */

  uint32_t LPVACTLargestPacketSize; /*!< The size, in bytes, of the low power largest packet that
                                              can fit in a line during VACT region                               */

  uint32_t LPHorizontalFrontPorchEnable; /*!< Low-power horizontal front-porch enable
                                              This parameter can be any value of @ref DSI_LP_HFP                 */

  uint32_t LPHorizontalBackPorchEnable; /*!< Low-power horizontal back-porch enable
                                              This parameter can be any value of @ref DSI_LP_HBP                 */

  uint32_t LPVerticalActiveEnable; /*!< Low-power vertical active enable
                                              This parameter can be any value of @ref DSI_LP_VACT                */

  uint32_t LPVerticalFrontPorchEnable; /*!< Low-power vertical front-porch enable
                                              This parameter can be any value of @ref DSI_LP_VFP                 */

  uint32_t LPVerticalBackPorchEnable; /*!< Low-power vertical back-porch enable
                                              This parameter can be any value of @ref DSI_LP_VBP                 */

  uint32_t LPVerticalSyncActiveEnable; /*!< Low-power vertical sync active enable
                                              This parameter can be any value of @ref DSI_LP_VSYNC               */

  uint32_t FrameBTAAcknowledgeEnable; /*!< Frame bus-turn-around acknowledge enable
                                              This parameter can be any value of @ref DSI_FBTA_acknowledge       */

} DSI_VidCfgTypeDef;

/**
  * @brief  DSI Adapted command mode configuration
  */
typedef struct
{
  uint32_t VirtualChannelID;

  uint32_t ColorCoding; /*!< Color coding for LTDC interface
                                              This parameter can be any value of @ref DSI_Color_Coding          */

  uint32_t CommandSize; /*!< Maximum allowed size for an LTDC write memory command, measured in
                                              pixels. This parameter can be any value between 0x00 and 0xFFFFU   */

  uint32_t TearingEffectSource; /*!< Tearing effect source
                                              This parameter can be any value of @ref DSI_TearingEffectSource   */

  uint32_t TearingEffectPolarity; /*!< Tearing effect pin polarity
                                              This parameter can be any value of @ref DSI_TearingEffectPolarity */

  uint32_t HSPolarity; /*!< HSYNC pin polarity
                                              This parameter can be any value of @ref DSI_HSYNC_Polarity        */

  uint32_t VSPolarity; /*!< VSYNC pin polarity
                                              This parameter can be any value of @ref DSI_VSYNC_Active_Polarity */

  uint32_t DEPolarity; /*!< Data Enable pin polarity
                                              This parameter can be any value of @ref DSI_DATA_ENABLE_Polarity  */

  uint32_t VSyncPol; /*!< VSync edge on which the LTDC is halted
                                              This parameter can be any value of @ref DSI_Vsync_Polarity        */

  uint32_t AutomaticRefresh; /*!< Automatic refresh mode
                                              This parameter can be any value of @ref DSI_AutomaticRefresh      */

  uint32_t TEAcknowledgeRequest; /*!< Tearing Effect Acknowledge Request Enable
                                              This parameter can be any value of @ref DSI_TE_AcknowledgeRequest */

} DSI_CmdCfgTypeDef;

/**
  * @brief  DSI command transmission mode configuration
  */
typedef struct
{
  uint32_t LPGenShortWriteNoP; /*!< Generic Short Write Zero parameters Transmission
                                              This parameter can be any value of @ref DSI_LP_LPGenShortWriteNoP  */

  uint32_t LPGenShortWriteOneP; /*!< Generic Short Write One parameter Transmission
                                              This parameter can be any value of @ref DSI_LP_LPGenShortWriteOneP */

  uint32_t LPGenShortWriteTwoP; /*!< Generic Short Write Two parameters Transmission
                                              This parameter can be any value of @ref DSI_LP_LPGenShortWriteTwoP */

  uint32_t LPGenShortReadNoP; /*!< Generic Short Read Zero parameters Transmission
                                              This parameter can be any value of @ref DSI_LP_LPGenShortReadNoP   */

  uint32_t LPGenShortReadOneP; /*!< Generic Short Read One parameter Transmission
                                              This parameter can be any value of @ref DSI_LP_LPGenShortReadOneP  */

  uint32_t LPGenShortReadTwoP; /*!< Generic Short Read Two parameters Transmission
                                              This parameter can be any value of @ref DSI_LP_LPGenShortReadTwoP  */

  uint32_t LPGenLongWrite; /*!< Generic Long Write Transmission
                                              This parameter can be any value of @ref DSI_LP_LPGenLongWrite      */

  uint32_t LPDcsShortWriteNoP; /*!< DCS Short Write Zero parameters Transmission
                                              This parameter can be any value of @ref DSI_LP_LPDcsShortWriteNoP  */

  uint32_t LPDcsShortWriteOneP; /*!< DCS Short Write One parameter Transmission
                                              This parameter can be any value of @ref DSI_LP_LPDcsShortWriteOneP */

  uint32_t LPDcsShortReadNoP; /*!< DCS Short Read Zero parameters Transmission
                                              This parameter can be any value of @ref DSI_LP_LPDcsShortReadNoP   */

  uint32_t LPDcsLongWrite; /*!< DCS Long Write Transmission
                                              This parameter can be any value of @ref DSI_LP_LPDcsLongWrite      */

  uint32_t LPMaxReadPacket; /*!< Maximum Read Packet Size Transmission
                                              This parameter can be any value of @ref DSI_LP_LPMaxReadPacket     */

  uint32_t AcknowledgeRequest; /*!< Acknowledge Request Enable
                                              This parameter can be any value of @ref DSI_AcknowledgeRequest     */

} DSI_LPCmdTypeDef;

/**
  * @brief  DSI PHY Timings definition
  */
typedef struct
{
  uint32_t ClockLaneHS2LPTime; /*!< The maximum time that the D-PHY clock lane takes to go from high-speed
                                              to low-power transmission                                              */

  uint32_t ClockLaneLP2HSTime; /*!< The maximum time that the D-PHY clock lane takes to go from low-power
                                              to high-speed transmission                                             */

  uint32_t DataLaneHS2LPTime; /*!< The maximum time that the D-PHY data lanes takes to go from high-speed
                                              to low-power transmission                                              */

  uint32_t DataLaneLP2HSTime; /*!< The maximum time that the D-PHY data lanes takes to go from low-power
                                              to high-speed transmission                                             */

  uint32_t DataLaneMaxReadTime;

  uint32_t StopWaitTime; /*!< The minimum wait period to request a High-Speed transmission after the
                                              Stop state                                                             */

} DSI_PHY_TimerTypeDef;

/**
  * @brief  DSI HOST Timeouts definition
  */
typedef struct
{
  uint32_t TimeoutCkdiv;

  uint32_t HighSpeedTransmissionTimeout;

  uint32_t LowPowerReceptionTimeout;

  uint32_t HighSpeedReadTimeout;

  uint32_t LowPowerReadTimeout;

  uint32_t HighSpeedWriteTimeout;

  uint32_t HighSpeedWritePrespMode; /*!< High-speed write presp mode
                                              This parameter can be any value of @ref DSI_HS_PrespMode */

  uint32_t LowPowerWriteTimeout;

  uint32_t BTATimeout;

} DSI_HOST_TimeoutTypeDef;

/**
  * @brief  DSI States Structure definition
  */
typedef enum
{
  HAL_DSI_STATE_RESET = 0x00U,
  HAL_DSI_STATE_READY = 0x01U,
  HAL_DSI_STATE_ERROR = 0x02U,
  HAL_DSI_STATE_BUSY = 0x03U,
  HAL_DSI_STATE_TIMEOUT = 0x04U
} HAL_DSI_StateTypeDef;

/**
  * @brief  DSI Handle Structure definition
  */



typedef struct

{
  DSI_TypeDef *Instance;
  DSI_InitTypeDef Init;
  HAL_LockTypeDef Lock;
  volatile HAL_DSI_StateTypeDef State;
  volatile uint32_t ErrorCode;
  uint32_t ErrorMsk;
# 328 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
} DSI_HandleTypeDef;
# 351 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup DSI_Exported_Constants DSI Exported Constants
  * @{
  */
/** @defgroup DSI_DCS_Command DSI DCS Command
  * @{
  */
# 406 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @}
  */

/** @defgroup DSI_Video_Mode_Type DSI Video Mode Type
  * @{
  */



/**
  * @}
  */

/** @defgroup DSI_Color_Mode DSI Color Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_ShutDown DSI ShutDown
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_Command DSI LP Command
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_HFP DSI LP HFP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_HBP DSI LP HBP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_VACT DSI LP VACT
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_VFP DSI LP VFP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_VBP DSI LP VBP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_VSYNC DSI LP VSYNC
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_FBTA_acknowledge DSI FBTA Acknowledge
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_TearingEffectSource DSI Tearing Effect Source
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_TearingEffectPolarity DSI Tearing Effect Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_Vsync_Polarity DSI Vsync Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_AutomaticRefresh DSI Automatic Refresh
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_TE_AcknowledgeRequest DSI TE Acknowledge Request
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_AcknowledgeRequest DSI Acknowledge Request
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPGenShortWriteNoP DSI LP LPGen Short Write NoP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPGenShortWriteOneP DSI LP LPGen Short Write OneP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPGenShortWriteTwoP DSI LP LPGen Short Write TwoP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPGenShortReadNoP DSI LP LPGen Short Read NoP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPGenShortReadOneP DSI LP LPGen Short Read OneP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPGenShortReadTwoP DSI LP LPGen Short Read TwoP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPGenLongWrite DSI LP LPGen LongWrite
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPDcsShortWriteNoP DSI LP LPDcs Short Write NoP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPDcsShortWriteOneP DSI LP LPDcs Short Write OneP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPDcsShortReadNoP DSI LP LPDcs Short Read NoP
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPDcsLongWrite DSI LP LPDcs Long Write
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_LP_LPMaxReadPacket DSI LP LPMax Read Packet
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_HS_PrespMode DSI HS Presp Mode
  * @{
  */


/**
  * @}
  */


/** @defgroup DSI_Automatic_Clk_Lane_Control DSI Automatic Clk Lane Control
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_Number_Of_Lanes DSI Number Of Lanes
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_FlowControl DSI Flow Control
  * @{
  */
# 711 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @}
  */

/** @defgroup DSI_Color_Coding DSI Color Coding
  * @{
  */



/**
  * @}
  */

/** @defgroup DSI_LooselyPacked DSI Loosely Packed
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_HSYNC_Polarity DSI HSYNC Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_VSYNC_Active_Polarity DSI VSYNC Active Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_DATA_ENABLE_Polarity DSI DATA ENABLE Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_PLL_IDF DSI PLL IDF
  * @{
  */







/**
  * @}
  */

/** @defgroup DSI_PLL_ODF DSI PLL ODF
  * @{
  */




/**
  * @}
  */

/** @defgroup DSI_Flags DSI Flags
  * @{
  */
# 797 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @}
  */

/** @defgroup DSI_Interrupts DSI Interrupts
  * @{
  */





/**
  * @}
  */

/** @defgroup DSI_SHORT_WRITE_PKT_Data_Type DSI SHORT WRITE PKT Data Type
  * @{
  */





/**
  * @}
  */

/** @defgroup DSI_LONG_WRITE_PKT_Data_Type DSI LONG WRITE PKT Data Type
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_SHORT_READ_PKT_Data_Type DSI SHORT READ PKT Data Type
  * @{
  */




/**
  * @}
  */

/** @defgroup DSI_Error_Data_Type DSI Error Data Type
  * @{
  */
# 862 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @}
  */

/** @defgroup DSI_Lane_Group DSI Lane Group
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_Communication_Delay DSI Communication Delay
  * @{
  */



/**
  * @}
  */

/** @defgroup DSI_CustomLane DSI CustomLane
  * @{
  */


/**
  * @}
  */

/** @defgroup DSI_Lane_Select DSI Lane Select
  * @{
  */



/**
  * @}
  */

/** @defgroup DSI_PHY_Timing DSI PHY Timing
  * @{
  */
# 916 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @}
  */


/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup DSI_Exported_Macros DSI Exported Macros
  * @{
  */

/**
  * @brief Reset DSI handle state.
  * @param  __HANDLE__ DSI handle
  * @retval None
  */
# 945 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @brief  Enables the DSI host.
  * @param  __HANDLE__  DSI handle
  * @retval None.
  */
# 958 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @brief  Disables the DSI host.
  * @param  __HANDLE__  DSI handle
  * @retval None.
  */
# 971 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @brief  Enables the DSI wrapper.
  * @param  __HANDLE__  DSI handle
  * @retval None.
  */
# 984 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @brief  Disable the DSI wrapper.
  * @param  __HANDLE__  DSI handle
  * @retval None.
  */
# 997 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @brief  Enables the DSI PLL.
  * @param  __HANDLE__  DSI handle
  * @retval None.
  */
# 1010 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @brief  Disables the DSI PLL.
  * @param  __HANDLE__  DSI handle
  * @retval None.
  */
# 1023 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @brief  Enables the DSI regulator.
  * @param  __HANDLE__  DSI handle
  * @retval None.
  */
# 1036 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @brief  Disables the DSI regulator.
  * @param  __HANDLE__  DSI handle
  * @retval None.
  */
# 1049 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @brief  Get the DSI pending flags.
  * @param  __HANDLE__  DSI handle.
  * @param  __FLAG__  Get the specified flag.
  *          This parameter can be any combination of the following values:
  *            @arg DSI_FLAG_TE   : Tearing Effect Interrupt Flag
  *            @arg DSI_FLAG_ER   : End of Refresh Interrupt Flag
  *            @arg DSI_FLAG_BUSY : Busy Flag
  *            @arg DSI_FLAG_PLLLS: PLL Lock Status
  *            @arg DSI_FLAG_PLLL : PLL Lock Interrupt Flag
  *            @arg DSI_FLAG_PLLU : PLL Unlock Interrupt Flag
  *            @arg DSI_FLAG_RRS  : Regulator Ready Flag
  *            @arg DSI_FLAG_RR   : Regulator Ready Interrupt Flag
  * @retval The state of FLAG (SET or RESET).
  */


/**
  * @brief  Clears the DSI pending flags.
  * @param  __HANDLE__  DSI handle.
  * @param  __FLAG__  specifies the flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg DSI_FLAG_TE   : Tearing Effect Interrupt Flag
  *            @arg DSI_FLAG_ER   : End of Refresh Interrupt Flag
  *            @arg DSI_FLAG_PLLL : PLL Lock Interrupt Flag
  *            @arg DSI_FLAG_PLLU : PLL Unlock Interrupt Flag
  *            @arg DSI_FLAG_RR   : Regulator Ready Interrupt Flag
  * @retval None
  */


/**
  * @brief  Enables the specified DSI interrupts.
  * @param  __HANDLE__  DSI handle.
  * @param __INTERRUPT__  specifies the DSI interrupt sources to be enabled.
  *          This parameter can be any combination of the following values:
  *            @arg DSI_IT_TE  : Tearing Effect Interrupt
  *            @arg DSI_IT_ER  : End of Refresh Interrupt
  *            @arg DSI_IT_PLLL: PLL Lock Interrupt
  *            @arg DSI_IT_PLLU: PLL Unlock Interrupt
  *            @arg DSI_IT_RR  : Regulator Ready Interrupt
  * @retval None
  */


/**
  * @brief  Disables the specified DSI interrupts.
  * @param  __HANDLE__  DSI handle
  * @param __INTERRUPT__  specifies the DSI interrupt sources to be disabled.
  *          This parameter can be any combination of the following values:
  *            @arg DSI_IT_TE  : Tearing Effect Interrupt
  *            @arg DSI_IT_ER  : End of Refresh Interrupt
  *            @arg DSI_IT_PLLL: PLL Lock Interrupt
  *            @arg DSI_IT_PLLU: PLL Unlock Interrupt
  *            @arg DSI_IT_RR  : Regulator Ready Interrupt
  * @retval None
  */


/**
  * @brief  Checks whether the specified DSI interrupt source is enabled or not.
  * @param  __HANDLE__  DSI handle
  * @param  __INTERRUPT__  specifies the DSI interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg DSI_IT_TE  : Tearing Effect Interrupt
  *            @arg DSI_IT_ER  : End of Refresh Interrupt
  *            @arg DSI_IT_PLLL: PLL Lock Interrupt
  *            @arg DSI_IT_PLLU: PLL Unlock Interrupt
  *            @arg DSI_IT_RR  : Regulator Ready Interrupt
  * @retval The state of INTERRUPT (SET or RESET).
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup DSI_Exported_Functions DSI Exported Functions
  * @{
  */
/** @defgroup DSI_Group1 Initialization and Configuration functions
  *  @brief   Initialization and Configuration functions
  * @{
  */
HAL_StatusTypeDef HAL_DSI_Init(DSI_HandleTypeDef *hdsi, DSI_PLLInitTypeDef *PLLInit);
HAL_StatusTypeDef HAL_DSI_DeInit(DSI_HandleTypeDef *hdsi);
void HAL_DSI_MspInit(DSI_HandleTypeDef *hdsi);
void HAL_DSI_MspDeInit(DSI_HandleTypeDef *hdsi);
HAL_StatusTypeDef HAL_DSI_ConfigErrorMonitor(DSI_HandleTypeDef *hdsi, uint32_t ActiveErrors);
/* Callbacks Register/UnRegister functions  ***********************************/





/**
  * @}
  */

/** @defgroup DSI_Group2 IO operation functions
  *  @brief    IO operation functions
  * @{
  */
void HAL_DSI_IRQHandler(DSI_HandleTypeDef *hdsi);
void HAL_DSI_TearingEffectCallback(DSI_HandleTypeDef *hdsi);
void HAL_DSI_EndOfRefreshCallback(DSI_HandleTypeDef *hdsi);
void HAL_DSI_ErrorCallback(DSI_HandleTypeDef *hdsi);
/**
  * @}
  */

/** @defgroup DSI_Group3 Peripheral Control functions
  *  @brief    Peripheral Control functions
  * @{
  */
HAL_StatusTypeDef HAL_DSI_SetGenericVCID(DSI_HandleTypeDef *hdsi, uint32_t VirtualChannelID);
HAL_StatusTypeDef HAL_DSI_ConfigVideoMode(DSI_HandleTypeDef *hdsi, DSI_VidCfgTypeDef *VidCfg);
HAL_StatusTypeDef HAL_DSI_ConfigAdaptedCommandMode(DSI_HandleTypeDef *hdsi, DSI_CmdCfgTypeDef *CmdCfg);
HAL_StatusTypeDef HAL_DSI_ConfigCommand(DSI_HandleTypeDef *hdsi, DSI_LPCmdTypeDef *LPCmd);
HAL_StatusTypeDef HAL_DSI_ConfigFlowControl(DSI_HandleTypeDef *hdsi, uint32_t FlowControl);
HAL_StatusTypeDef HAL_DSI_ConfigPhyTimer(DSI_HandleTypeDef *hdsi, DSI_PHY_TimerTypeDef *PhyTimers);
HAL_StatusTypeDef HAL_DSI_ConfigHostTimeouts(DSI_HandleTypeDef *hdsi, DSI_HOST_TimeoutTypeDef *HostTimeouts);
HAL_StatusTypeDef HAL_DSI_Start(DSI_HandleTypeDef *hdsi);
HAL_StatusTypeDef HAL_DSI_Stop(DSI_HandleTypeDef *hdsi);
HAL_StatusTypeDef HAL_DSI_Refresh(DSI_HandleTypeDef *hdsi);
HAL_StatusTypeDef HAL_DSI_ColorMode(DSI_HandleTypeDef *hdsi, uint32_t ColorMode);
HAL_StatusTypeDef HAL_DSI_Shutdown(DSI_HandleTypeDef *hdsi, uint32_t Shutdown);
HAL_StatusTypeDef HAL_DSI_ShortWrite(DSI_HandleTypeDef *hdsi,
                                     uint32_t ChannelID,
                                     uint32_t Mode,
                                     uint32_t Param1,
                                     uint32_t Param2);
HAL_StatusTypeDef HAL_DSI_LongWrite(DSI_HandleTypeDef *hdsi,
                                    uint32_t ChannelID,
                                    uint32_t Mode,
                                    uint32_t NbParams,
                                    uint32_t Param1,
                                    const uint8_t *ParametersTable);
HAL_StatusTypeDef HAL_DSI_Read(DSI_HandleTypeDef *hdsi,
                               uint32_t ChannelNbr,
                               uint8_t *Array,
                               uint32_t Size,
                               uint32_t Mode,
                               uint32_t DCSCmd,
                               uint8_t *ParametersTable);
HAL_StatusTypeDef HAL_DSI_EnterULPMData(DSI_HandleTypeDef *hdsi);
HAL_StatusTypeDef HAL_DSI_ExitULPMData(DSI_HandleTypeDef *hdsi);
HAL_StatusTypeDef HAL_DSI_EnterULPM(DSI_HandleTypeDef *hdsi);
HAL_StatusTypeDef HAL_DSI_ExitULPM(DSI_HandleTypeDef *hdsi);

HAL_StatusTypeDef HAL_DSI_PatternGeneratorStart(DSI_HandleTypeDef *hdsi, uint32_t Mode, uint32_t Orientation);
HAL_StatusTypeDef HAL_DSI_PatternGeneratorStop(DSI_HandleTypeDef *hdsi);

HAL_StatusTypeDef HAL_DSI_SetSlewRateAndDelayTuning(DSI_HandleTypeDef *hdsi, uint32_t CommDelay, uint32_t Lane,
                                                    uint32_t Value);
HAL_StatusTypeDef HAL_DSI_SetLowPowerRXFilter(DSI_HandleTypeDef *hdsi, uint32_t Frequency);
HAL_StatusTypeDef HAL_DSI_SetSDD(DSI_HandleTypeDef *hdsi, FunctionalState State);
HAL_StatusTypeDef HAL_DSI_SetLanePinsConfiguration(DSI_HandleTypeDef *hdsi, uint32_t CustomLane, uint32_t Lane,
                                                   FunctionalState State);
HAL_StatusTypeDef HAL_DSI_SetPHYTimings(DSI_HandleTypeDef *hdsi, uint32_t Timing, FunctionalState State,
                                        uint32_t Value);
HAL_StatusTypeDef HAL_DSI_ForceTXStopMode(DSI_HandleTypeDef *hdsi, uint32_t Lane, FunctionalState State);
HAL_StatusTypeDef HAL_DSI_ForceRXLowPower(DSI_HandleTypeDef *hdsi, FunctionalState State);
HAL_StatusTypeDef HAL_DSI_ForceDataLanesInRX(DSI_HandleTypeDef *hdsi, FunctionalState State);
HAL_StatusTypeDef HAL_DSI_SetPullDown(DSI_HandleTypeDef *hdsi, FunctionalState State);
HAL_StatusTypeDef HAL_DSI_SetContentionDetectionOff(DSI_HandleTypeDef *hdsi, FunctionalState State);

/**
  * @}
  */

/** @defgroup DSI_Group4 Peripheral State and Errors functions
  *  @brief    Peripheral State and Errors functions
  * @{
  */
uint32_t HAL_DSI_GetError(const DSI_HandleTypeDef *hdsi);
HAL_DSI_StateTypeDef HAL_DSI_GetState(const DSI_HandleTypeDef *hdsi);

/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private defines -----------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup DSI_Private_Constants DSI Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup DSI_Private_Macros DSI Private Macros
  * @{
  */
# 1360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h"
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 279 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dfsdm.h
  * @author  MCD Application Team
  * @brief   Header file of DFSDM HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup DFSDM
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup DFSDM_Exported_Types DFSDM Exported Types
  * @{
  */

/**
  * @brief  HAL DFSDM Channel states definition
  */
typedef enum
{
  HAL_DFSDM_CHANNEL_STATE_RESET = 0x00U,
  HAL_DFSDM_CHANNEL_STATE_READY = 0x01U,
  HAL_DFSDM_CHANNEL_STATE_ERROR = 0xFFU
} HAL_DFSDM_Channel_StateTypeDef;

/**
  * @brief  DFSDM channel output clock structure definition
  */
typedef struct
{
  FunctionalState Activation;
  uint32_t Selection; /*!< Output clock is system clock or audio clock.
                                   This parameter can be a value of @ref DFSDM_Channel_OuputClock */
  uint32_t Divider; /*!< Output clock divider.
                                   This parameter must be a number between Min_Data = 2 and Max_Data = 256 */
} DFSDM_Channel_OutputClockTypeDef;

/**
  * @brief  DFSDM channel input structure definition
  */
typedef struct
{
  uint32_t Multiplexer; /*!< Input is external serial inputs, internal register or ADC output.
                             This parameter can be a value of @ref DFSDM_Channel_InputMultiplexer */
  uint32_t DataPacking; /*!< Standard, interleaved or dual mode for internal register.
                             This parameter can be a value of @ref DFSDM_Channel_DataPacking */
  uint32_t Pins; /*!< Input pins are taken from same or following channel.
                             This parameter can be a value of @ref DFSDM_Channel_InputPins */
} DFSDM_Channel_InputTypeDef;

/**
  * @brief  DFSDM channel serial interface structure definition
  */
typedef struct
{
  uint32_t Type; /*!< SPI or Manchester modes.
                          This parameter can be a value of @ref DFSDM_Channel_SerialInterfaceType */
  uint32_t SpiClock; /*!< SPI clock select (external or internal with different sampling point).
                          This parameter can be a value of @ref DFSDM_Channel_SpiClock */
} DFSDM_Channel_SerialInterfaceTypeDef;

/**
  * @brief  DFSDM channel analog watchdog structure definition
  */
typedef struct
{
  uint32_t FilterOrder; /*!< Analog watchdog Sinc filter order.
                              This parameter can be a value of @ref DFSDM_Channel_AwdFilterOrder */
  uint32_t Oversampling; /*!< Analog watchdog filter oversampling ratio.
                              This parameter must be a number between Min_Data = 1 and Max_Data = 32 */
} DFSDM_Channel_AwdTypeDef;

/**
  * @brief  DFSDM channel init structure definition
  */
typedef struct
{
  DFSDM_Channel_OutputClockTypeDef OutputClock;
  DFSDM_Channel_InputTypeDef Input;
  DFSDM_Channel_SerialInterfaceTypeDef SerialInterface;
  DFSDM_Channel_AwdTypeDef Awd;
  int32_t Offset; /*!< DFSDM channel offset.
                                                             This parameter must be a number between Min_Data = -8388608 and Max_Data = 8388607 */
  uint32_t RightBitShift; /*!< DFSDM channel right bit shift.
                                                             This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x1F */
} DFSDM_Channel_InitTypeDef;

/**
  * @brief  DFSDM channel handle structure definition
  */



typedef struct

{
  DFSDM_Channel_TypeDef *Instance;
  DFSDM_Channel_InitTypeDef Init;
  HAL_DFSDM_Channel_StateTypeDef State;






} DFSDM_Channel_HandleTypeDef;
# 153 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
/**
  * @brief  HAL DFSDM Filter states definition
  */
typedef enum
{
  HAL_DFSDM_FILTER_STATE_RESET = 0x00U,
  HAL_DFSDM_FILTER_STATE_READY = 0x01U,
  HAL_DFSDM_FILTER_STATE_REG = 0x02U,
  HAL_DFSDM_FILTER_STATE_INJ = 0x03U,
  HAL_DFSDM_FILTER_STATE_REG_INJ = 0x04U,
  HAL_DFSDM_FILTER_STATE_ERROR = 0xFFU
} HAL_DFSDM_Filter_StateTypeDef;

/**
  * @brief  DFSDM filter regular conversion parameters structure definition
  */
typedef struct
{
  uint32_t Trigger; /*!< Trigger used to start regular conversion: software or synchronous.
                                 This parameter can be a value of @ref DFSDM_Filter_Trigger */
  FunctionalState FastMode;
  FunctionalState DmaMode;
} DFSDM_Filter_RegularParamTypeDef;

/**
  * @brief  DFSDM filter injected conversion parameters structure definition
  */
typedef struct
{
  uint32_t Trigger; /*!< Trigger used to start injected conversion: software, external or synchronous.
                                       This parameter can be a value of @ref DFSDM_Filter_Trigger */
  FunctionalState ScanMode;
  FunctionalState DmaMode;
  uint32_t ExtTrigger; /*!< External trigger.
                                       This parameter can be a value of @ref DFSDM_Filter_ExtTrigger */
  uint32_t ExtTriggerEdge; /*!< External trigger edge: rising, falling or both.
                                       This parameter can be a value of @ref DFSDM_Filter_ExtTriggerEdge */
} DFSDM_Filter_InjectedParamTypeDef;

/**
  * @brief  DFSDM filter parameters structure definition
  */
typedef struct
{
  uint32_t SincOrder; /*!< Sinc filter order.
                                 This parameter can be a value of @ref DFSDM_Filter_SincOrder */
  uint32_t Oversampling; /*!< Filter oversampling ratio.
                                 This parameter must be a number between Min_Data = 1 and Max_Data = 1024 */
  uint32_t IntOversampling; /*!< Integrator oversampling ratio.
                                 This parameter must be a number between Min_Data = 1 and Max_Data = 256 */
} DFSDM_Filter_FilterParamTypeDef;

/**
  * @brief  DFSDM filter init structure definition
  */
typedef struct
{
  DFSDM_Filter_RegularParamTypeDef RegularParam;
  DFSDM_Filter_InjectedParamTypeDef InjectedParam;
  DFSDM_Filter_FilterParamTypeDef FilterParam;
} DFSDM_Filter_InitTypeDef;

/**
  * @brief  DFSDM filter handle structure definition
  */



typedef struct

{
  DFSDM_Filter_TypeDef *Instance;
  DFSDM_Filter_InitTypeDef Init;
  DMA_HandleTypeDef *hdmaReg;
  DMA_HandleTypeDef *hdmaInj;
  uint32_t RegularContMode;
  uint32_t RegularTrigger;
  uint32_t InjectedTrigger;
  uint32_t ExtTriggerEdge;
  FunctionalState InjectedScanMode;
  uint32_t InjectedChannelsNbr;
  uint32_t InjConvRemaining;
  HAL_DFSDM_Filter_StateTypeDef State;
  uint32_t ErrorCode;
# 248 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
}DFSDM_Filter_HandleTypeDef;

/**
  * @brief  DFSDM filter analog watchdog parameters structure definition
  */
typedef struct
{
  uint32_t DataSource; /*!< Values from digital filter or from channel watchdog filter.
                                 This parameter can be a value of @ref DFSDM_Filter_AwdDataSource */
  uint32_t Channel; /*!< Analog watchdog channel selection.
                                 This parameter can be a values combination of @ref DFSDM_Channel_Selection */
  int32_t HighThreshold; /*!< High threshold for the analog watchdog.
                                 This parameter must be a number between Min_Data = -8388608 and Max_Data = 8388607 */
  int32_t LowThreshold; /*!< Low threshold for the analog watchdog.
                                 This parameter must be a number between Min_Data = -8388608 and Max_Data = 8388607 */
  uint32_t HighBreakSignal; /*!< Break signal assigned to analog watchdog high threshold event.
                                 This parameter can be a values combination of @ref DFSDM_BreakSignals */
  uint32_t LowBreakSignal; /*!< Break signal assigned to analog watchdog low threshold event.
                                 This parameter can be a values combination of @ref DFSDM_BreakSignals */
} DFSDM_Filter_AwdParamTypeDef;
# 291 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
/**
  * @}
  */
/* End of exported types -----------------------------------------------------*/

/* Exported constants --------------------------------------------------------*/
/** @defgroup DFSDM_Exported_Constants DFSDM Exported Constants
  * @{
  */

/** @defgroup DFSDM_Channel_OuputClock DFSDM channel output clock selection
  * @{
  */


/**
  * @}
  */

/** @defgroup DFSDM_Channel_InputMultiplexer DFSDM channel input multiplexer
  * @{
  */



/**
  * @}
  */

/** @defgroup DFSDM_Channel_DataPacking DFSDM channel input data packing
  * @{
  */



/**
  * @}
  */

/** @defgroup DFSDM_Channel_InputPins DFSDM channel input pins
  * @{
  */


/**
  * @}
  */

/** @defgroup DFSDM_Channel_SerialInterfaceType DFSDM channel serial interface type
  * @{
  */




/**
  * @}
  */

/** @defgroup DFSDM_Channel_SpiClock DFSDM channel SPI clock selection
  * @{
  */




/**
  * @}
  */

/** @defgroup DFSDM_Channel_AwdFilterOrder DFSDM channel analog watchdog filter order
  * @{
  */




/**
  * @}
  */

/** @defgroup DFSDM_Filter_Trigger DFSDM filter conversion trigger
  * @{
  */



/**
  * @}
  */

/** @defgroup DFSDM_Filter_ExtTrigger DFSDM filter external trigger
  * @{
  */
# 411 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
/**
  * @}
  */

/** @defgroup DFSDM_Filter_ExtTriggerEdge DFSDM filter external trigger edge
  * @{
  */



/**
  * @}
  */

/** @defgroup DFSDM_Filter_SincOrder DFSDM filter sinc order
  * @{
  */






/**
  * @}
  */

/** @defgroup DFSDM_Filter_AwdDataSource DFSDM filter analog watchdog data source
  * @{
  */


/**
  * @}
  */

/** @defgroup DFSDM_Filter_ErrorCode DFSDM filter error code
  * @{
  */







/**
  * @}
  */

/** @defgroup DFSDM_BreakSignals DFSDM break signals
  * @{
  */





/**
  * @}
  */

/** @defgroup DFSDM_Channel_Selection DFSDM Channel Selection
  * @{
  */
/* DFSDM Channels ------------------------------------------------------------*/
/* The DFSDM channels are defined as follows:
   - in 16-bit LSB the channel mask is set
   - in 16-bit MSB the channel number is set
   e.g. for channel 5 definition:
        - the channel mask is 0x00000020 (bit 5 is set)
        - the channel number 5 is 0x00050000
        --> Consequently, channel 5 definition is 0x00000020 | 0x00050000 = 0x00050020 */
# 492 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
/**
  * @}
  */

/** @defgroup DFSDM_ContinuousMode DFSDM Continuous Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup DFSDM_AwdThreshold DFSDM analog watchdog threshold
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */
/* End of exported constants -------------------------------------------------*/

/* Exported macros -----------------------------------------------------------*/
/** @defgroup DFSDM_Exported_Macros DFSDM Exported Macros
 * @{
 */

/** @brief  Reset DFSDM channel handle state.
  * @param  __HANDLE__ DFSDM channel handle.
  * @retval None
  */
# 538 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
/** @brief  Reset DFSDM filter handle state.
  * @param  __HANDLE__ DFSDM filter handle.
  * @retval None
  */
# 552 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
/**
  * @}
  */
/* End of exported macros ----------------------------------------------------*/






/* Exported functions --------------------------------------------------------*/
/** @addtogroup DFSDM_Exported_Functions DFSDM Exported Functions
  * @{
  */

/** @addtogroup DFSDM_Exported_Functions_Group1_Channel Channel initialization and de-initialization functions
  * @{
  */
/* Channel initialization and de-initialization functions *********************/
HAL_StatusTypeDef HAL_DFSDM_ChannelInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
HAL_StatusTypeDef HAL_DFSDM_ChannelDeInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
void HAL_DFSDM_ChannelMspInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
void HAL_DFSDM_ChannelMspDeInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
# 584 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
/**
  * @}
  */

/** @addtogroup DFSDM_Exported_Functions_Group2_Channel Channel operation functions
  * @{
  */
/* Channel operation functions ************************************************/
HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStart(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStart_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStop(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStop_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);

HAL_StatusTypeDef HAL_DFSDM_ChannelScdStart(DFSDM_Channel_HandleTypeDef *hdfsdm_channel, uint32_t Threshold, uint32_t BreakSignal);
HAL_StatusTypeDef HAL_DFSDM_ChannelScdStart_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel, uint32_t Threshold, uint32_t BreakSignal);
HAL_StatusTypeDef HAL_DFSDM_ChannelScdStop(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
HAL_StatusTypeDef HAL_DFSDM_ChannelScdStop_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);

int16_t HAL_DFSDM_ChannelGetAwdValue(const DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
HAL_StatusTypeDef HAL_DFSDM_ChannelModifyOffset(DFSDM_Channel_HandleTypeDef *hdfsdm_channel, int32_t Offset);

HAL_StatusTypeDef HAL_DFSDM_ChannelPollForCkab(const DFSDM_Channel_HandleTypeDef *hdfsdm_channel, uint32_t Timeout);
HAL_StatusTypeDef HAL_DFSDM_ChannelPollForScd(const DFSDM_Channel_HandleTypeDef *hdfsdm_channel, uint32_t Timeout);

void HAL_DFSDM_ChannelCkabCallback(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
void HAL_DFSDM_ChannelScdCallback(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
/**
  * @}
  */

/** @defgroup DFSDM_Exported_Functions_Group3_Channel Channel state function
  * @{
  */
/* Channel state function *****************************************************/
HAL_DFSDM_Channel_StateTypeDef HAL_DFSDM_ChannelGetState(const DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
/**
  * @}
  */

/** @addtogroup DFSDM_Exported_Functions_Group1_Filter Filter initialization and de-initialization functions
  * @{
  */
/* Filter initialization and de-initialization functions *********************/
HAL_StatusTypeDef HAL_DFSDM_FilterInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterDeInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
void HAL_DFSDM_FilterMspInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
void HAL_DFSDM_FilterMspDeInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
# 643 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
/**
  * @}
  */

/** @addtogroup DFSDM_Exported_Functions_Group2_Filter Filter control functions
  * @{
  */
/* Filter control functions *********************/
HAL_StatusTypeDef HAL_DFSDM_FilterConfigRegChannel(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
                                                   uint32_t Channel,
                                                   uint32_t ContinuousMode);
HAL_StatusTypeDef HAL_DFSDM_FilterConfigInjChannel(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
                                                   uint32_t Channel);
/**
  * @}
  */

/** @addtogroup DFSDM_Exported_Functions_Group3_Filter Filter operation functions
  * @{
  */
/* Filter operation functions *********************/
HAL_StatusTypeDef HAL_DFSDM_FilterRegularStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterRegularStart_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterRegularStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, int32_t *pData, uint32_t Length);
HAL_StatusTypeDef HAL_DFSDM_FilterRegularMsbStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, int16_t *pData, uint32_t Length);
HAL_StatusTypeDef HAL_DFSDM_FilterRegularStop(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterRegularStop_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterRegularStop_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStart_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, int32_t *pData, uint32_t Length);
HAL_StatusTypeDef HAL_DFSDM_FilterInjectedMsbStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, int16_t *pData, uint32_t Length);
HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStop(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStop_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStop_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterAwdStart_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
                                              const DFSDM_Filter_AwdParamTypeDef *awdParam);
HAL_StatusTypeDef HAL_DFSDM_FilterAwdStop_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
HAL_StatusTypeDef HAL_DFSDM_FilterExdStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t Channel);
HAL_StatusTypeDef HAL_DFSDM_FilterExdStop(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);

int32_t HAL_DFSDM_FilterGetRegularValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t *Channel);
int32_t HAL_DFSDM_FilterGetInjectedValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t *Channel);
int32_t HAL_DFSDM_FilterGetExdMaxValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t *Channel);
int32_t HAL_DFSDM_FilterGetExdMinValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t *Channel);
uint32_t HAL_DFSDM_FilterGetConvTimeValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter);

void HAL_DFSDM_IRQHandler(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);

HAL_StatusTypeDef HAL_DFSDM_FilterPollForRegConversion(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t Timeout);
HAL_StatusTypeDef HAL_DFSDM_FilterPollForInjConversion(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t Timeout);

void HAL_DFSDM_FilterRegConvCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
void HAL_DFSDM_FilterRegConvHalfCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
void HAL_DFSDM_FilterInjConvCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
void HAL_DFSDM_FilterInjConvHalfCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
void HAL_DFSDM_FilterAwdCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t Channel, uint32_t Threshold);
void HAL_DFSDM_FilterErrorCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
/**
  * @}
  */

/** @defgroup DFSDM_Exported_Functions_Group4_Filter Filter state functions
  * @{
  */
/* Filter state functions *****************************************************/
HAL_DFSDM_Filter_StateTypeDef HAL_DFSDM_FilterGetState(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
uint32_t HAL_DFSDM_FilterGetError(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
/**
  * @}
  */

/**
  * @}
  */
/* End of exported functions -------------------------------------------------*/

/* Private macros ------------------------------------------------------------*/
/** @defgroup DFSDM_Private_Macros DFSDM Private Macros
* @{
*/
# 853 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dfsdm.h"
/**
  * @}
  */
/* End of private macros -----------------------------------------------------*/

/**
  * @}
  */

/**
  * @}
  */


}
# 283 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dts.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dts.h
  * @author  MCD Application Team
  * @brief   Header file of DTS HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {



/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dts.h" 2


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */
# 518 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dts.h"
}
# 287 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_eth.h
  * @author  MCD Application Team
  * @brief   Header file of ETH HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h" 2



/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup ETH
  * @{
  */

/* Exported types ------------------------------------------------------------*/
# 61 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/*********************** Descriptors struct def section ************************/
/** @defgroup ETH_Exported_Types ETH Exported Types
  * @{
  */

/**
  * @brief  ETH DMA Descriptor structure definition
  */
typedef struct
{
  volatile uint32_t DESC0;
  volatile uint32_t DESC1;
  volatile uint32_t DESC2;
  volatile uint32_t DESC3;
  uint32_t BackupAddr0;
  uint32_t BackupAddr1;
} ETH_DMADescTypeDef;
/**
  *
  */

/**
  * @brief  ETH Buffers List structure definition
  */
typedef struct __ETH_BufferTypeDef
{
  uint8_t *buffer;

  uint32_t len;

  struct __ETH_BufferTypeDef *next;
} ETH_BufferTypeDef;
/**
  *
  */

/**
  * @brief  DMA Transmit Descriptors Wrapper structure definition
  */
typedef struct
{
  uint32_t TxDesc[4U];

  uint32_t CurTxDesc;

  uint32_t *PacketAddress[4U];

  uint32_t *CurrentPacketAddress;

  uint32_t BuffersInUse;

  uint32_t releaseIndex;
} ETH_TxDescListTypeDef;
/**
  *
  */

/**
  * @brief  Transmit Packet Configuration structure definition
  */
typedef struct
{
  uint32_t Attributes; /*!< Tx packet HW features capabilities.
                                         This parameter can be a combination of @ref ETH_Tx_Packet_Attributes*/

  uint32_t Length;

  ETH_BufferTypeDef *TxBuffer;

  uint32_t SrcAddrCtrl; /*!< Specifies the source address insertion control.
                                         This parameter can be a value of @ref ETH_Tx_Packet_Source_Addr_Control */

  uint32_t CRCPadCtrl; /*!< Specifies the CRC and Pad insertion and replacement control.
                                        This parameter can be a value of @ref ETH_Tx_Packet_CRC_Pad_Control  */

  uint32_t ChecksumCtrl; /*!< Specifies the checksum insertion control.
                                        This parameter can be a value of @ref ETH_Tx_Packet_Checksum_Control  */

  uint32_t MaxSegmentSize; /*!< Sets TCP maximum segment size only when TCP segmentation is enabled.
                                        This parameter can be a value from 0x0 to 0x3FFF */

  uint32_t PayloadLen; /*!< Sets Total payload length only when TCP segmentation is enabled.
                                        This parameter can be a value from 0x0 to 0x3FFFF */

  uint32_t TCPHeaderLen; /*!< Sets TCP header length only when TCP segmentation is enabled.
                                        This parameter can be a value from 0x5 to 0xF */

  uint32_t VlanTag; /*!< Sets VLAN Tag only when VLAN is enabled.
                                        This parameter can be a value from 0x0 to 0xFFFF*/

  uint32_t VlanCtrl; /*!< Specifies VLAN Tag insertion control only when VLAN is enabled.
                                        This parameter can be a value of @ref ETH_Tx_Packet_VLAN_Control */

  uint32_t InnerVlanTag; /*!< Sets Inner VLAN Tag only when Inner VLAN is enabled.
                                        This parameter can be a value from 0x0 to 0x3FFFF */

  uint32_t InnerVlanCtrl; /*!< Specifies Inner VLAN Tag insertion control only when Inner VLAN is enabled.
                                        This parameter can be a value of @ref ETH_Tx_Packet_Inner_VLAN_Control   */

  void *pData;

} ETH_TxPacketConfigTypeDef;
/**
  *
  */

/**
  * @brief  ETH Timestamp structure definition
  */
typedef struct
{
  uint32_t TimeStampLow;
  uint32_t TimeStampHigh;

} ETH_TimeStampTypeDef;
/**
  *
  */
# 194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @brief  DMA Receive Descriptors Wrapper structure definition
  */
typedef struct
{
  uint32_t RxDesc[4U];

  uint32_t ItMode; /*<! If 1, DMA will generate the Rx complete interrupt.
                                             If 0, DMA will not generate the Rx complete interrupt. */

  uint32_t RxDescIdx;

  uint32_t RxDescCnt;

  uint32_t RxDataLength;

  uint32_t RxBuildDescIdx;

  uint32_t RxBuildDescCnt;

  uint32_t pRxLastRxDesc;

  ETH_TimeStampTypeDef TimeStamp;

  void *pRxStart;

  void *pRxEnd;

} ETH_RxDescListTypeDef;
/**
  *
  */

/**
  * @brief  ETH MAC Configuration Structure definition
  */
typedef struct
{
  uint32_t
  SourceAddrControl; /*!< Selects the Source Address Insertion or Replacement Control.
                                                     This parameter can be a value of @ref ETH_Source_Addr_Control */

  FunctionalState
  ChecksumOffload;

  uint32_t InterPacketGapVal; /*!< Sets the minimum IPG between Packet during transmission.
                                                     This parameter can be a value of @ref ETH_Inter_Packet_Gap */

  FunctionalState GiantPacketSizeLimitControl;

  FunctionalState Support2KPacket;

  FunctionalState CRCStripTypePacket;

  FunctionalState AutomaticPadCRCStrip;

  FunctionalState Watchdog;

  FunctionalState Jabber;

  FunctionalState JumboPacket; /*!< Enables or disables receiving Jumbo Packet
                                                           When enabled, the MAC allows jumbo packets of 9,018 bytes
                                                           without reporting a giant packet error */

  uint32_t Speed; /*!< Sets the Ethernet speed: 10/100 Mbps.
                                                           This parameter can be a value of @ref ETH_Speed */

  uint32_t DuplexMode; /*!< Selects the MAC duplex mode: Half-Duplex or Full-Duplex mode
                                                           This parameter can be a value of @ref ETH_Duplex_Mode */

  FunctionalState LoopbackMode;

  FunctionalState
  CarrierSenseBeforeTransmit;

  FunctionalState ReceiveOwn;

  FunctionalState
  CarrierSenseDuringTransmit;

  FunctionalState
  RetryTransmission;

  uint32_t BackOffLimit; /*!< Selects the BackOff limit value.
                                                        This parameter can be a value of @ref ETH_Back_Off_Limit */

  FunctionalState
  DeferralCheck;

  uint32_t
  PreambleLength; /*!< Selects or not the Preamble Length for Transmit packets (Full Duplex mode).
                                                           This parameter can be a value of @ref ETH_Preamble_Length */

  FunctionalState
  UnicastSlowProtocolPacketDetect;

  FunctionalState SlowProtocolDetect;

  FunctionalState CRCCheckingRxPackets;

  uint32_t
  GiantPacketSizeLimit; /*!< Specifies the packet size that the MAC will declare it as Giant, If it's size is
                                                    greater than the value programmed in this field in units of bytes
                                                    This parameter must be a number between
                                                    Min_Data = 0x618 (1518 byte) and Max_Data = 0x3FFF (32 Kbyte). */

  FunctionalState ExtendedInterPacketGap;

  uint32_t ExtendedInterPacketGapVal; /*!< Sets the Extended IPG between Packet during transmission.
                                                           This parameter can be a value from 0x0 to 0xFF */

  FunctionalState ProgrammableWatchdog;

  uint32_t WatchdogTimeout; /*!< This field is used as watchdog timeout for a received packet
                                                        This parameter can be a value of @ref ETH_Watchdog_Timeout */

  uint32_t
  PauseTime; /*!< This field holds the value to be used in the Pause Time field in the transmit control packet.
                                                   This parameter must be a number between
                                                   Min_Data = 0x0 and Max_Data = 0xFFFF.*/

  FunctionalState
  ZeroQuantaPause;

  uint32_t
  PauseLowThreshold; /*!< This field configures the threshold of the PAUSE to be checked for automatic retransmission of PAUSE Packet.
                                                   This parameter can be a value of @ref ETH_Pause_Low_Threshold */

  FunctionalState
  TransmitFlowControl; /*!< Enables or disables the MAC to transmit Pause packets in Full Duplex mode
                                                   or the MAC back pressure operation in Half Duplex mode */

  FunctionalState
  UnicastPausePacketDetect;

  FunctionalState ReceiveFlowControl; /*!< Enables or disables the MAC to decodes the received Pause packet
                                                  and disables its transmitter for a specified (Pause) time */

  uint32_t TransmitQueueMode; /*!< Specifies the Transmit Queue operating mode.
                                                      This parameter can be a value of @ref ETH_Transmit_Mode */

  uint32_t ReceiveQueueMode; /*!< Specifies the Receive Queue operating mode.
                                                             This parameter can be a value of @ref ETH_Receive_Mode */

  FunctionalState DropTCPIPChecksumErrorPacket;

  FunctionalState ForwardRxErrorPacket;

  FunctionalState ForwardRxUndersizedGoodPacket;
} ETH_MACConfigTypeDef;
/**
  *
  */

/**
  * @brief  ETH DMA Configuration Structure definition
  */
typedef struct
{
  uint32_t DMAArbitration; /*!< Sets the arbitration scheme between DMA Tx and Rx
                                                         This parameter can be a value of @ref ETH_DMA_Arbitration */

  FunctionalState AddressAlignedBeats; /*!< Enables or disables the AHB Master interface address aligned
                                                            burst transfers on Read and Write channels  */

  uint32_t BurstMode; /*!< Sets the AHB Master interface burst transfers.
                                                     This parameter can be a value of @ref ETH_Burst_Mode */
  FunctionalState RebuildINCRxBurst; /*!< Enables or disables the AHB Master to rebuild the pending beats
                                                   of any initiated burst transfer with INCRx and SINGLE transfers. */

  FunctionalState PBLx8Mode;

  uint32_t
  TxDMABurstLength; /*!< Indicates the maximum number of beats to be transferred in one Tx DMA transaction.
                                                     This parameter can be a value of @ref ETH_Tx_DMA_Burst_Length */

  FunctionalState
  SecondPacketOperate; /*!< Enables or disables the Operate on second Packet mode, which allows the DMA to process a second
                                                      Packet of Transmit data even before
                                                      obtaining the status for the first one. */

  uint32_t
  RxDMABurstLength; /*!< Indicates the maximum number of beats to be transferred in one Rx DMA transaction.
                                                    This parameter can be a value of @ref ETH_Rx_DMA_Burst_Length */

  FunctionalState FlushRxPacket;

  FunctionalState TCPSegmentation;

  uint32_t
  MaximumSegmentSize; /*!< Sets the maximum segment size that should be used while segmenting the packet
                                                  This parameter can be a value from 0x40 to 0x3FFF */

} ETH_DMAConfigTypeDef;
/**
  *
  */

/**
  * @brief  HAL ETH Media Interfaces enum definition
  */
typedef enum
{
  HAL_ETH_MII_MODE = 0x00U,
  HAL_ETH_RMII_MODE = 0x01U
} ETH_MediaInterfaceTypeDef;
/**
  *
  */
# 418 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @brief  ETH Init Structure definition
  */
typedef struct
{
  uint8_t
  *MACAddr;

  ETH_MediaInterfaceTypeDef MediaInterface;

  ETH_DMADescTypeDef
  *TxDesc;

  ETH_DMADescTypeDef
  *RxDesc;

  uint32_t RxBuffLen;

} ETH_InitTypeDef;
/**
  *
  */
# 474 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @brief  HAL State structures definition
  */
typedef uint32_t HAL_ETH_StateTypeDef;
/**
  *
  */

/**
  * @brief  HAL ETH Rx Get Buffer Function definition
  */
typedef void (*pETH_rxAllocateCallbackTypeDef)(uint8_t **buffer);
/**
  *
  */

/**
  * @brief  HAL ETH Rx Set App Data Function definition
  */
typedef void (*pETH_rxLinkCallbackTypeDef)(void **pStart, void **pEnd, uint8_t *buff,
                                            uint16_t Length);
/**
  *
  */

/**
  * @brief  HAL ETH Tx Free Function definition
  */
typedef void (*pETH_txFreeCallbackTypeDef)(uint32_t *buffer);
/**
  *
  */

/**
  * @brief  HAL ETH Tx Free Function definition
  */
typedef void (*pETH_txPtpCallbackTypeDef)(uint32_t *buffer,
                                           ETH_TimeStampTypeDef *timestamp);
/**
  *
  */

/**
  * @brief  ETH Handle Structure definition
  */



typedef struct

{
  ETH_TypeDef *Instance;

  ETH_InitTypeDef Init;

  ETH_TxDescListTypeDef TxDescList; /*!< Tx descriptor wrapper: holds all Tx descriptors list
                                                            addresses and current descriptor index  */

  ETH_RxDescListTypeDef RxDescList; /*!< Rx descriptor wrapper: holds all Rx descriptors list
                                                            addresses and current descriptor index  */





  volatile HAL_ETH_StateTypeDef gState; /*!< ETH state information related to global Handle management
                                                              and also related to Tx operations. This parameter can
                                                              be a value of @ref ETH_State_Codes */

  volatile uint32_t ErrorCode; /*!< Holds the global Error code of the ETH HAL status machine
                                                             This parameter can be a value of @ref ETH_Error_Code.*/

  volatile uint32_t
  DMAErrorCode; /*!< Holds the DMA Rx Tx Error code when a DMA AIS interrupt occurs
                                                             This parameter can be a combination of
                                                             @ref ETH_DMA_Status_Flags */

  volatile uint32_t
  MACErrorCode; /*!< Holds the MAC Rx Tx Error code when a MAC Rx or Tx status interrupt occurs
                                                             This parameter can be a combination of
                                                             @ref ETH_MAC_Rx_Tx_Status */

  volatile uint32_t MACWakeUpEvent; /*!< Holds the Wake Up event when the MAC exit the power down mode
                                                             This parameter can be a value of
                                                             @ref ETH_MAC_Wake_Up_Event */

  volatile uint32_t MACLPIEvent; /*!< Holds the LPI event when the an LPI status interrupt occurs.
                                                             This parameter can be a value of @ref ETHEx_LPI_Event */

  volatile uint32_t IsPtpConfigured; /*!< Holds the PTP configuration status.
                                                             This parameter can be a value of
                                                             @ref ETH_PTP_Config_Status */
# 581 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
  pETH_rxAllocateCallbackTypeDef rxAllocateCallback;
  pETH_rxLinkCallbackTypeDef rxLinkCallback;
  pETH_txFreeCallbackTypeDef txFreeCallback;
  pETH_txPtpCallbackTypeDef txPtpCallback;

} ETH_HandleTypeDef;
/**
  *
  */
# 615 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @brief  ETH MAC filter structure definition
  */
typedef struct
{
  FunctionalState PromiscuousMode;

  FunctionalState ReceiveAllMode;

  FunctionalState HachOrPerfectFilter;

  FunctionalState HashUnicast;

  FunctionalState HashMulticast;

  FunctionalState PassAllMulticast;

  FunctionalState SrcAddrFiltering;

  FunctionalState SrcAddrInverseFiltering;

  FunctionalState DestAddrInverseFiltering;

  FunctionalState BroadcastFilter;

  uint32_t ControlPacketsFilter; /*!< Set the control packets filter
                                                 This parameter can be a value of @ref ETH_Control_Packets_Filter */
} ETH_MACFilterConfigTypeDef;
/**
  *
  */

/**
  * @brief  ETH Power Down structure definition
  */
typedef struct
{
  FunctionalState WakeUpPacket;

  FunctionalState MagicPacket;

  FunctionalState GlobalUnicast;

  FunctionalState WakeUpForward;

} ETH_PowerDownConfigTypeDef;
/**
  *
  */

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup ETH_Exported_Constants ETH Exported Constants
  * @{
  */

/** @defgroup ETH_DMA_Tx_Descriptor_Bit_Definition ETH DMA Tx Descriptor Bit Definition
  * @{
  */

/*
   DMA Tx Normal Descriptor Read Format
  -----------------------------------------------------------------------------------------------
  TDES0 |                         Buffer1 or Header Address  [31:0]                              |
  -----------------------------------------------------------------------------------------------
  TDES1 |                   Buffer2 Address [31:0] / Next Descriptor Address [31:0]              |
  -----------------------------------------------------------------------------------------------
  TDES2 | IOC(31) | TTSE(30) | Buff2 Length[29:16] | VTIR[15:14] | Header or Buff1 Length[13:0]  |
  -----------------------------------------------------------------------------------------------
  TDES3 | OWN(31) | CTRL[30:26] | Reserved[25:24] | CTRL[23:20] | Reserved[19:17] | Status[16:0] |
  -----------------------------------------------------------------------------------------------
*/

/**
  * @brief  Bit definition of TDES0 RF register
  */


/**
  * @brief  Bit definition of TDES1 RF register
  */


/**
  * @brief  Bit definition of TDES2 RF register
  */
# 715 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @brief  Bit definition of TDES3 RF register
  */
# 747 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/*
   DMA Tx Normal Descriptor Write Back Format
  -----------------------------------------------------------------------------------------------
  TDES0 |                         Timestamp Low                                                  |
  -----------------------------------------------------------------------------------------------
  TDES1 |                         Timestamp High                                                 |
  -----------------------------------------------------------------------------------------------
  TDES2 |                           Reserved[31:0]                                               |
  -----------------------------------------------------------------------------------------------
  TDES3 | OWN(31) |                          Status[30:0]                                        |
  -----------------------------------------------------------------------------------------------
*/

/**
  * @brief  Bit definition of TDES0 WBF register
  */


/**
  * @brief  Bit definition of TDES1 WBF register
  */


/**
  * @brief  Bit definition of TDES3 WBF register
  */
# 794 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/*
   DMA Tx Context Descriptor
  -----------------------------------------------------------------------------------------------
  TDES0 |                               Timestamp Low                                            |
  -----------------------------------------------------------------------------------------------
  TDES1 |                               Timestamp High                                           |
  -----------------------------------------------------------------------------------------------
  TDES2 |      Inner VLAN Tag[31:16]    | Reserved(15) |     Maximum Segment Size [14:0]         |
  -----------------------------------------------------------------------------------------------
  TDES3 | OWN(31) |                          Status[30:0]                                        |
  -----------------------------------------------------------------------------------------------
*/

/**
  * @brief  Bit definition of Tx context descriptor register 0
  */


/**
  * @brief  Bit definition of Tx context descriptor register 1
  */


/**
  * @brief  Bit definition of Tx context descriptor register 2
  */



/**
  * @brief  Bit definition of Tx context descriptor register 3
  */
# 840 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @}
  */

/** @defgroup ETH_DMA_Rx_Descriptor_Bit_Definition ETH DMA Rx Descriptor Bit Definition
  * @{
  */

/*
  DMA Rx Normal Descriptor read format
  -----------------------------------------------------------------------------------------------------------
  RDES0 |                                  Buffer1 or Header Address [31:0]                                 |
  -----------------------------------------------------------------------------------------------------------
  RDES1 |                                            Reserved                                               |
  -----------------------------------------------------------------------------------------------------------
  RDES2 |                                      Payload or Buffer2 Address[31:0]                             |
  -----------------------------------------------------------------------------------------------------------
  RDES3 | OWN(31) | IOC(30) | Reserved [29:26] | BUF2V(25) | BUF1V(24) |           Reserved [23:0]          |
  -----------------------------------------------------------------------------------------------------------
*/

/**
  * @brief  Bit definition of Rx normal descriptor register 0 read format
  */


/**
  * @brief  Bit definition of Rx normal descriptor register 2 read format
  */


/**
  * @brief  Bit definition of Rx normal descriptor register 3 read format
  */





/*
  DMA Rx Normal Descriptor write back format
  ---------------------------------------------------------------------------------------------------------------------
  RDES0 |                 Inner VLAN Tag[31:16]                 |                 Outer VLAN Tag[15:0]                |
  ---------------------------------------------------------------------------------------------------------------------
  RDES1 |       OAM code, or MAC Control Opcode [31:16]         |               Extended Status                       |
  ---------------------------------------------------------------------------------------------------------------------
  RDES2 |      MAC Filter Status[31:16]        | VF(15) | Reserved [14:12] | ARP Status [11:10] | Header Length [9:0] |
  ---------------------------------------------------------------------------------------------------------------------
  RDES3 | OWN(31) | CTXT(30) |  FD(29) | LD(28) |   Status[27:16]     | ES(15) |        Packet Length[14:0]           |
  ---------------------------------------------------------------------------------------------------------------------
*/

/**
  * @brief  Bit definition of Rx normal descriptor register 0 write back format
  */



/**
  * @brief  Bit definition of Rx normal descriptor register 1 write back format
  */
# 929 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @brief  Bit definition of Rx normal descriptor register 2 write back format
  */
# 942 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @brief  Bit definition of Rx normal descriptor register 3 write back format
  */
# 969 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/*
  DMA Rx context Descriptor
  ---------------------------------------------------------------------------------------------------------------------
  RDES0 |                                     Timestamp Low[31:0]                                                     |
  ---------------------------------------------------------------------------------------------------------------------
  RDES1 |                                     Timestamp High[31:0]                                                    |
  ---------------------------------------------------------------------------------------------------------------------
  RDES2 |                                          Reserved                                                           |
  ---------------------------------------------------------------------------------------------------------------------
  RDES3 | OWN(31) | CTXT(30) |                                Reserved[29:0]                                          |
  ---------------------------------------------------------------------------------------------------------------------
*/

/**
  * @brief  Bit definition of Rx context descriptor register 0
  */


/**
  * @brief  Bit definition of Rx context descriptor register 1
  */


/**
  * @brief  Bit definition of Rx context descriptor register 3
  */



/**
  * @}
  */

/** @defgroup ETH_Frame_settings ETH frame settings
  * @{
  */







/**
  * @}
  */

/** @defgroup ETH_Error_Code ETH Error Code
  * @{
  */
# 1028 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @}
  */

/** @defgroup ETH_Tx_Packet_Attributes ETH Tx Packet Attributes
  * @{
  */






/**
  * @}
  */

/** @defgroup ETH_Tx_Packet_Source_Addr_Control ETH Tx Packet Source Addr Control
  * @{
  */



/**
  * @}
  */

/** @defgroup ETH_Tx_Packet_CRC_Pad_Control ETH Tx Packet CRC Pad Control
  * @{
  */




/**
  * @}
  */

/** @defgroup ETH_Tx_Packet_Checksum_Control ETH Tx Packet Checksum Control
  * @{
  */




/**
  * @}
  */

/** @defgroup ETH_Tx_Packet_VLAN_Control ETH Tx Packet VLAN Control
  * @{
  */




/**
  * @}
  */

/** @defgroup ETH_Tx_Packet_Inner_VLAN_Control ETH Tx Packet Inner VLAN Control
  * @{
  */




/**
  * @}
  */

/** @defgroup ETH_Rx_Checksum_Status ETH Rx Checksum Status
  * @{
  */



/**
  * @}
  */

/** @defgroup ETH_Rx_IP_Header_Type ETH Rx IP Header Type
  * @{
  */


/**
  * @}
  */

/** @defgroup ETH_Rx_Payload_Type ETH Rx Payload Type
  * @{
  */




/**
  * @}
  */

/** @defgroup ETH_Rx_MAC_Filter_Status ETH Rx MAC Filter Status
  * @{
  */




/**
  * @}
  */
/** @defgroup ETH_Rx_L3_Filter_Status ETH Rx L3 Filter Status
  * @{
  */


/**
  * @}
  */

/** @defgroup ETH_Rx_L4_Filter_Status ETH Rx L4 Filter Status
  * @{
  */


/**
  * @}
  */

/** @defgroup ETH_Rx_Error_Code ETH Rx Error Code
  * @{
  */






/**
  * @}
  */

/** @defgroup ETH_DMA_Arbitration ETH DMA Arbitration
  * @{
  */
# 1191 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @}
  */

/** @defgroup ETH_Burst_Mode ETH Burst Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup ETH_Tx_DMA_Burst_Length ETH Tx DMA Burst Length
  * @{
  */






/**
  * @}
  */

/** @defgroup ETH_Rx_DMA_Burst_Length ETH Rx DMA Burst Length
  * @{
  */






/**
  * @}
  */

/** @defgroup ETH_DMA_Interrupts ETH DMA Interrupts
  * @{
  */
# 1247 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @}
  */

/** @defgroup ETH_DMA_Status_Flags ETH DMA Status Flags
  * @{
  */
# 1271 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @}
  */

/** @defgroup ETH_Transmit_Mode ETH Transmit Mode
  * @{
  */
# 1287 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @}
  */

/** @defgroup ETH_Receive_Mode ETH Receive Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup ETH_Pause_Low_Threshold  ETH Pause Low Threshold
  * @{
  */






/**
  * @}
  */

/** @defgroup ETH_Watchdog_Timeout ETH Watchdog Timeout
  * @{
  */
# 1334 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @}
  */

/** @defgroup ETH_Inter_Packet_Gap ETH Inter Packet Gap
  * @{
  */
# 1349 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @}
  */

/** @defgroup ETH_Speed  ETH Speed
  * @{
  */


/**
  * @}
  */

/** @defgroup ETH_Duplex_Mode ETH Duplex Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup ETH_Back_Off_Limit ETH Back Off Limit
  * @{
  */




/**
  * @}
  */

/** @defgroup ETH_Preamble_Length ETH Preamble Length
  * @{
  */



/**
  * @}
  */

/** @defgroup ETH_Source_Addr_Control ETH Source Addr Control
  * @{
  */





/**
  * @}
  */

/** @defgroup ETH_Control_Packets_Filter ETH Control Packets Filter
  * @{
  */




/**
  * @}
  */

/** @defgroup ETH_VLAN_Tag_Comparison ETH VLAN Tag Comparison
  * @{
  */


/**
  * @}
  */

/** @defgroup ETH_MAC_addresses ETH MAC addresses
  * @{
  */




/**
  * @}
  */

/** @defgroup ETH_MAC_Interrupts ETH MAC Interrupts
  * @{
  */






/**
  * @}
  */

/** @defgroup ETH_MAC_Wake_Up_Event ETH MAC Wake Up Event
  * @{
  */


/**
  * @}
  */

/** @defgroup ETH_MAC_Rx_Tx_Status ETH MAC Rx Tx Status
  * @{
  */







/**
  * @}
  */

/** @defgroup ETH_State_Codes ETH States
  * @{
  */





/**
  * @}
  */

/** @defgroup ETH_PTP_Config_Status ETH PTP Config Status
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup ETH_Exported_Macros ETH Exported Macros
  * @{
  */

/** @brief Reset ETH handle state
  * @param  __HANDLE__: specifies the ETH handle.
  * @retval None
  */
# 1517 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
/**
  * @brief  Enables the specified ETHERNET DMA interrupts.
  * @param  __HANDLE__   : ETH Handle
  * @param  __INTERRUPT__: specifies the ETHERNET DMA interrupt sources to be
  *   enabled @ref ETH_DMA_Interrupts
  * @retval None
  */


/**
  * @brief  Disables the specified ETHERNET DMA interrupts.
  * @param  __HANDLE__   : ETH Handle
  * @param  __INTERRUPT__: specifies the ETHERNET DMA interrupt sources to be
  *   disabled. @ref ETH_DMA_Interrupts
  * @retval None
  */


/**
  * @brief  Gets the ETHERNET DMA IT source enabled or disabled.
  * @param  __HANDLE__   : ETH Handle
  * @param  __INTERRUPT__: specifies the interrupt source to get . @ref ETH_DMA_Interrupts
  * @retval The ETH DMA IT Source enabled or disabled
  */



/**
  * @brief  Gets the ETHERNET DMA IT pending bit.
  * @param  __HANDLE__   : ETH Handle
  * @param  __INTERRUPT__: specifies the interrupt source to get . @ref ETH_DMA_Interrupts
  * @retval The state of ETH DMA IT (SET or RESET)
  */



/**
  * @brief  Clears the ETHERNET DMA IT pending bit.
  * @param  __HANDLE__   : ETH Handle
  * @param  __INTERRUPT__: specifies the interrupt pending bit to clear. @ref ETH_DMA_Interrupts
  * @retval None
  */


/**
  * @brief  Checks whether the specified ETHERNET DMA flag is set or not.
  * @param  __HANDLE__: ETH Handle
  * @param  __FLAG__: specifies the flag to check. @ref ETH_DMA_Status_Flags
  * @retval The state of ETH DMA FLAG (SET or RESET).
  */


/**
  * @brief  Clears the specified ETHERNET DMA flag.
  * @param  __HANDLE__: ETH Handle
  * @param  __FLAG__: specifies the flag to check. @ref ETH_DMA_Status_Flags
  * @retval The state of ETH DMA FLAG (SET or RESET).
  */


/**
  * @brief  Enables the specified ETHERNET MAC interrupts.
  * @param  __HANDLE__   : ETH Handle
  * @param  __INTERRUPT__: specifies the ETHERNET MAC interrupt sources to be
  *   enabled @ref ETH_MAC_Interrupts
  * @retval None
  */



/**
  * @brief  Disables the specified ETHERNET MAC interrupts.
  * @param  __HANDLE__   : ETH Handle
  * @param  __INTERRUPT__: specifies the ETHERNET MAC interrupt sources to be
  *   enabled @ref ETH_MAC_Interrupts
  * @retval None
  */


/**
  * @brief  Checks whether the specified ETHERNET MAC flag is set or not.
  * @param  __HANDLE__: ETH Handle
  * @param  __INTERRUPT__: specifies the flag to check. @ref ETH_MAC_Interrupts
  * @retval The state of ETH MAC IT (SET or RESET).
  */



/*!< External interrupt line 86 Connected to the ETH wakeup EXTI Line */


/**
  * @brief Enable the ETH WAKEUP Exti Line.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP Exti sources to be enabled.
  *   @arg ETH_WAKEUP_EXTI_LINE
  * @retval None.
  */


/**
  * @brief checks whether the specified ETH WAKEUP Exti interrupt flag is set or not.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP Exti sources to be cleared.
  *   @arg ETH_WAKEUP_EXTI_LINE
  * @retval EXTI ETH WAKEUP Line Status.
  */


/**
  * @brief Clear the ETH WAKEUP Exti flag.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP Exti sources to be cleared.
  *   @arg ETH_WAKEUP_EXTI_LINE
  * @retval None.
  */



/**
  * @brief Enable the ETH WAKEUP Exti Line by Core2.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP Exti sources to be enabled.
  *   @arg ETH_WAKEUP_EXTI_LINE
  * @retval None.
  */


/**
  * @brief checks whether the specified ETH WAKEUP Exti interrupt flag is set or not.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP Exti sources to be cleared.
  *   @arg ETH_WAKEUP_EXTI_LINE
  * @retval EXTI ETH WAKEUP Line Status.
  */


/**
  * @brief Clear the ETH WAKEUP Exti flag.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP Exti sources to be cleared.
  *   @arg ETH_WAKEUP_EXTI_LINE
  * @retval None.
  */



/**
  * @brief  enable rising edge interrupt on selected EXTI line.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP EXTI sources to be disabled.
  *  @arg ETH_WAKEUP_EXTI_LINE
  * @retval None
  */



/**
  * @brief  enable falling edge interrupt on selected EXTI line.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP EXTI sources to be disabled.
  *  @arg ETH_WAKEUP_EXTI_LINE
  * @retval None
  */



/**
  * @brief  enable falling edge interrupt on selected EXTI line.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP EXTI sources to be disabled.
  *  @arg ETH_WAKEUP_EXTI_LINE
  * @retval None
  */



/**
  * @brief  Generates a Software interrupt on selected EXTI line.
  * @param  __EXTI_LINE__: specifies the ETH WAKEUP EXTI sources to be disabled.
  *  @arg ETH_WAKEUP_EXTI_LINE
  * @retval None
  */





/**
  * @}
  */

/* Include ETH HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_eth_ex.h
  * @author  MCD Application Team
  * @brief   Header file of ETH HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {




/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup ETHEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup ETHEx_Exported_Types ETHEx Exported Types
  * @{
  */

/**
  * @brief  ETH RX VLAN structure definition
  */
typedef struct
{
  FunctionalState InnerVLANTagInStatus;

  uint32_t StripInnerVLANTag; /*!< Sets the Inner VLAN Tag Stripping on Receive
                                                  This parameter can be a value of
                                                  @ref ETHEx_Rx_Inner_VLAN_Tag_Stripping */

  FunctionalState InnerVLANTag;

  FunctionalState DoubleVLANProcessing;

  FunctionalState VLANTagHashTableMatch;

  FunctionalState VLANTagInStatus;

  uint32_t StripVLANTag; /*!< Set the VLAN Tag Stripping on Receive
                                                  This parameter can be a value of @ref ETHEx_Rx_VLAN_Tag_Stripping */

  uint32_t VLANTypeCheck; /*!< Enable or Disable VLAN Type Check
                                                  This parameter can be a value of @ref ETHEx_VLAN_Type_Check */

  FunctionalState VLANTagInverceMatch;
} ETH_RxVLANConfigTypeDef;
/**
  *
  */

/**
  * @brief  ETH TX VLAN structure definition
  */
typedef struct
{
  FunctionalState SourceTxDesc;

  FunctionalState SVLANType;

  uint32_t VLANTagControl; /*!< Sets the VLAN tag control in tx packets
                                      This parameter can be a value of @ref ETHEx_VLAN_Tag_Control */
} ETH_TxVLANConfigTypeDef;
/**
  *
  */

/**
  * @brief  ETH L3 filter structure definition
  */
typedef struct
{
  uint32_t Protocol; /*!< Sets the L3 filter protocol to IPv4 or IPv6
                                         This parameter can be a value of @ref ETHEx_L3_Protocol */

  uint32_t SrcAddrFilterMatch; /*!< Sets the L3 filter source address match
                                         This parameter can be a value of @ref ETHEx_L3_Source_Match */

  uint32_t DestAddrFilterMatch; /*!< Sets the L3 filter destination address match
                                         This parameter can be a value of @ref ETHEx_L3_Destination_Match */

  uint32_t SrcAddrHigherBitsMatch; /*!< Sets the L3 filter source address higher bits match
                                         This parameter can be a value from 0 to 31 */

  uint32_t DestAddrHigherBitsMatch; /*!< Sets the L3 filter destination address higher bits match
                                         This parameter can be a value from 0 to 31 */

  uint32_t Ip4SrcAddr; /*!< Sets the L3 filter IPv4 source address if IPv4 protocol is used
                                         This parameter can be a value from 0x0 to 0xFFFFFFFF */

  uint32_t Ip4DestAddr; /*!< Sets the L3 filter IPv4 destination  address if IPv4 protocol is used
                                         This parameter can be a value from 0 to 0xFFFFFFFF  */

  uint32_t Ip6Addr[4]; /*!< Sets the L3 filter IPv6 address if IPv6 protocol is used
                                          This parameter must be a table of 4 words (4* 32 bits) */
} ETH_L3FilterConfigTypeDef;
/**
  *
  */

/**
  * @brief  ETH L4 filter structure definition
  */
typedef struct
{
  uint32_t Protocol; /*!< Sets the L4 filter protocol to TCP or UDP
                                        This parameter can be a value of @ref ETHEx_L4_Protocol */

  uint32_t SrcPortFilterMatch; /*!< Sets the L4 filter source port match
                                        This parameter can be a value of @ref ETHEx_L4_Source_Match */

  uint32_t DestPortFilterMatch; /*!< Sets the L4 filter destination port match
                                        This parameter can be a value of @ref ETHEx_L4_Destination_Match */

  uint32_t SourcePort; /*!< Sets the L4 filter source port
                                        This parameter must be a value from 0x0 to 0xFFFF */

  uint32_t DestinationPort; /*!< Sets the L4 filter destination port
                                        This parameter must be a value from 0x0 to 0xFFFF */
} ETH_L4FilterConfigTypeDef;
/**
  *
  */

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup ETHEx_Exported_Constants ETHEx Exported Constants
  * @{
  */

/** @defgroup ETHEx_LPI_Event ETHEx LPI Event
  * @{
  */




/**
  * @}
  */

/** @defgroup ETHEx_L3_Filter ETHEx L3 Filter
  * @{
  */


/**
  * @}
  */

/** @defgroup ETHEx_L4_Filter ETHEx L4 Filter
  * @{
  */


/**
  * @}
  */

/** @defgroup ETHEx_L3_Protocol ETHEx L3 Protocol
  * @{
  */


/**
  * @}
  */

/** @defgroup ETHEx_L3_Source_Match ETHEx L3 Source Match
  * @{
  */



/**
  * @}
  */

/** @defgroup ETHEx_L3_Destination_Match ETHEx L3 Destination Match
  * @{
  */



/**
  * @}
  */

/** @defgroup ETHEx_L4_Protocol ETHEx L4 Protocol
  * @{
  */


/**
  * @}
  */

/** @defgroup ETHEx_L4_Source_Match ETHEx L4 Source Match
  * @{
  */



/**
  * @}
  */

/** @defgroup ETHEx_L4_Destination_Match ETHEx L4 Destination Match
  * @{
  */



/**
  * @}
  */

/** @defgroup ETHEx_Rx_Inner_VLAN_Tag_Stripping ETHEx Rx Inner VLAN Tag Stripping
  * @{
  */




/**
  * @}
  */

/** @defgroup ETHEx_Rx_VLAN_Tag_Stripping ETHEx Rx VLAN Tag Stripping
  * @{
  */




/**
  * @}
  */

/** @defgroup ETHEx_VLAN_Type_Check ETHEx VLAN Type Check
  * @{
  */



/**
  * @}
  */

/** @defgroup ETHEx_VLAN_Tag_Control ETHEx_VLAN_Tag_Control
  * @{
  */




/**
  * @}
  */

/** @defgroup ETHEx_Tx_VLAN_Tag ETHEx Tx VLAN Tag
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup ETHEx_Exported_Functions
  * @{
  */

/** @addtogroup ETHEx_Exported_Functions_Group1
  * @{
  */
/* MAC ARP Offloading APIs  ***************************************************/
void HAL_ETHEx_EnableARPOffload(ETH_HandleTypeDef *heth);
void HAL_ETHEx_DisableARPOffload(ETH_HandleTypeDef *heth);
void HAL_ETHEx_SetARPAddressMatch(ETH_HandleTypeDef *heth, uint32_t IpAddress);

/* MAC L3 L4 Filtering APIs ***************************************************/
void HAL_ETHEx_EnableL3L4Filtering(ETH_HandleTypeDef *heth);
void HAL_ETHEx_DisableL3L4Filtering(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETHEx_GetL3FilterConfig(const ETH_HandleTypeDef *heth, uint32_t Filter,
                                              ETH_L3FilterConfigTypeDef *pL3FilterConfig);
HAL_StatusTypeDef HAL_ETHEx_GetL4FilterConfig(const ETH_HandleTypeDef *heth, uint32_t Filter,
                                              ETH_L4FilterConfigTypeDef *pL4FilterConfig);
HAL_StatusTypeDef HAL_ETHEx_SetL3FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter,
                                              const ETH_L3FilterConfigTypeDef *pL3FilterConfig);
HAL_StatusTypeDef HAL_ETHEx_SetL4FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter,
                                              const ETH_L4FilterConfigTypeDef *pL4FilterConfig);

/* MAC VLAN Processing APIs    ************************************************/
void HAL_ETHEx_EnableVLANProcessing(ETH_HandleTypeDef *heth);
void HAL_ETHEx_DisableVLANProcessing(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETHEx_GetRxVLANConfig(const ETH_HandleTypeDef *heth, ETH_RxVLANConfigTypeDef *pVlanConfig);
HAL_StatusTypeDef HAL_ETHEx_SetRxVLANConfig(ETH_HandleTypeDef *heth, ETH_RxVLANConfigTypeDef *pVlanConfig);
void HAL_ETHEx_SetVLANHashTable(ETH_HandleTypeDef *heth, uint32_t VLANHashTable);
HAL_StatusTypeDef HAL_ETHEx_GetTxVLANConfig(const ETH_HandleTypeDef *heth, uint32_t VLANTag,
                                            ETH_TxVLANConfigTypeDef *pVlanConfig);
HAL_StatusTypeDef HAL_ETHEx_SetTxVLANConfig(ETH_HandleTypeDef *heth, uint32_t VLANTag,
                                            const ETH_TxVLANConfigTypeDef *pVlanConfig);
void HAL_ETHEx_SetTxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t VLANTag, uint32_t VLANIdentifier);

/* Energy Efficient Ethernet APIs *********************************************/
void HAL_ETHEx_EnterLPIMode(ETH_HandleTypeDef *heth, FunctionalState TxAutomate,
                                         FunctionalState TxClockStop);
void HAL_ETHEx_ExitLPIMode(ETH_HandleTypeDef *heth);
uint32_t HAL_ETHEx_GetMACLPIEvent(const ETH_HandleTypeDef *heth);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */




}
# 1702 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h" 2

/* Exported functions --------------------------------------------------------*/

/** @addtogroup ETH_Exported_Functions
  * @{
  */

/** @addtogroup ETH_Exported_Functions_Group1
  * @{
  */
/* Initialization and de initialization functions  **********************************/
HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETH_DeInit(ETH_HandleTypeDef *heth);
void HAL_ETH_MspInit(ETH_HandleTypeDef *heth);
void HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth);

/* Callbacks Register/UnRegister functions  ***********************************/






/**
  * @}
  */

/** @addtogroup ETH_Exported_Functions_Group2
  * @{
  */
/* IO operation functions *******************************************************/
HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETH_Start_IT(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETH_Stop_IT(ETH_HandleTypeDef *heth);

HAL_StatusTypeDef HAL_ETH_ReadData(ETH_HandleTypeDef *heth, void **pAppBuff);
HAL_StatusTypeDef HAL_ETH_RegisterRxAllocateCallback(ETH_HandleTypeDef *heth,
                                                     pETH_rxAllocateCallbackTypeDef rxAllocateCallback);
HAL_StatusTypeDef HAL_ETH_UnRegisterRxAllocateCallback(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETH_RegisterRxLinkCallback(ETH_HandleTypeDef *heth, pETH_rxLinkCallbackTypeDef rxLinkCallback);
HAL_StatusTypeDef HAL_ETH_UnRegisterRxLinkCallback(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETH_GetRxDataErrorCode(const ETH_HandleTypeDef *heth, uint32_t *pErrorCode);
HAL_StatusTypeDef HAL_ETH_RegisterTxFreeCallback(ETH_HandleTypeDef *heth, pETH_txFreeCallbackTypeDef txFreeCallback);
HAL_StatusTypeDef HAL_ETH_UnRegisterTxFreeCallback(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETH_ReleaseTxPacket(ETH_HandleTypeDef *heth);
# 1763 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_eth.h"
HAL_StatusTypeDef HAL_ETH_Transmit(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig, uint32_t Timeout);
HAL_StatusTypeDef HAL_ETH_Transmit_IT(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig);

HAL_StatusTypeDef HAL_ETH_WritePHYRegister(const ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
                                           uint32_t RegValue);
HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
                                          uint32_t *pRegValue);

void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth);
void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth);
void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth);
void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth);
void HAL_ETH_PMTCallback(ETH_HandleTypeDef *heth);
void HAL_ETH_EEECallback(ETH_HandleTypeDef *heth);
void HAL_ETH_WakeUpCallback(ETH_HandleTypeDef *heth);
void HAL_ETH_RxAllocateCallback(uint8_t **buff);
void HAL_ETH_RxLinkCallback(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length);
void HAL_ETH_TxFreeCallback(uint32_t *buff);
void HAL_ETH_TxPtpCallback(uint32_t *buff, ETH_TimeStampTypeDef *timestamp);
/**
  * @}
  */

/** @addtogroup ETH_Exported_Functions_Group3
  * @{
  */
/* Peripheral Control functions  **********************************************/
/* MAC & DMA Configuration APIs  **********************************************/
HAL_StatusTypeDef HAL_ETH_GetMACConfig(const ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf);
HAL_StatusTypeDef HAL_ETH_GetDMAConfig(const ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf);
HAL_StatusTypeDef HAL_ETH_SetMACConfig(ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf);
HAL_StatusTypeDef HAL_ETH_SetDMAConfig(ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf);
void HAL_ETH_SetMDIOClockRange(ETH_HandleTypeDef *heth);

/* MAC VLAN Processing APIs    ************************************************/
void HAL_ETH_SetRxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t ComparisonBits,
                                              uint32_t VLANIdentifier);

/* MAC L2 Packet Filtering APIs  **********************************************/
HAL_StatusTypeDef HAL_ETH_GetMACFilterConfig(const ETH_HandleTypeDef *heth, ETH_MACFilterConfigTypeDef *pFilterConfig);
HAL_StatusTypeDef HAL_ETH_SetMACFilterConfig(ETH_HandleTypeDef *heth, const ETH_MACFilterConfigTypeDef *pFilterConfig);
HAL_StatusTypeDef HAL_ETH_SetHashTable(ETH_HandleTypeDef *heth, uint32_t *pHashTable);
HAL_StatusTypeDef HAL_ETH_SetSourceMACAddrMatch(const ETH_HandleTypeDef *heth, uint32_t AddrNbr,
                                                const uint8_t *pMACAddr);

/* MAC Power Down APIs    *****************************************************/
void HAL_ETH_EnterPowerDownMode(ETH_HandleTypeDef *heth,
                                             const ETH_PowerDownConfigTypeDef *pPowerDownConfig);
void HAL_ETH_ExitPowerDownMode(ETH_HandleTypeDef *heth);
HAL_StatusTypeDef HAL_ETH_SetWakeUpFilter(ETH_HandleTypeDef *heth, uint32_t *pFilter, uint32_t Count);

/**
  * @}
  */

/** @addtogroup ETH_Exported_Functions_Group4
  * @{
  */
/* Peripheral State functions  **************************************************/
HAL_ETH_StateTypeDef HAL_ETH_GetState(const ETH_HandleTypeDef *heth);
uint32_t HAL_ETH_GetError(const ETH_HandleTypeDef *heth);
uint32_t HAL_ETH_GetDMAError(const ETH_HandleTypeDef *heth);
uint32_t HAL_ETH_GetMACError(const ETH_HandleTypeDef *heth);
uint32_t HAL_ETH_GetMACWakeUpSource(const ETH_HandleTypeDef *heth);
uint32_t HAL_ETH_GetTxBuffersNumber(const ETH_HandleTypeDef *heth);
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */




}
# 291 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2







# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_exti.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_exti.h
  * @author  MCD Application Team
  * @brief   Header file of EXTI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_exti.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @defgroup EXTI EXTI
  * @brief EXTI HAL module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup EXTI_Exported_Types EXTI Exported Types
  * @{
  */
typedef enum
{
  HAL_EXTI_COMMON_CB_ID = 0x00U,
} EXTI_CallbackIDTypeDef;


/**
  * @brief  EXTI Handle structure definition
  */
typedef struct
{
  uint32_t Line;
  void (* PendingCallback)(void);
} EXTI_HandleTypeDef;

/**
  * @brief  EXTI Configuration structure definition
  */
typedef struct
{
  uint32_t Line; /*!< The Exti line to be configured. This parameter
                                can be a value of @ref EXTI_Line */
  uint32_t Mode; /*!< The Exit Mode to be configured for a core.
                                This parameter can be a combination of @ref EXTI_Mode */
  uint32_t Trigger; /*!< The Exti Trigger to be configured. This parameter
                                can be a value of @ref EXTI_Trigger */
  uint32_t GPIOSel; /*!< The Exti GPIO multiplexer selection to be configured.
                                This parameter is only possible for line 0 to 15. It
                                can be a value of @ref EXTI_GPIOSel */

  uint32_t PendClearSource; /*!< Specifies the event pending clear source for D3/SRD
                                 domain. This parameter can be a value of @ref
                                 EXTI_PendClear_Source */

} EXTI_ConfigTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup EXTI_Exported_Constants EXTI Exported Constants
  * @{
  */

/** @defgroup EXTI_Line  EXTI Line
  * @{
  */
# 244 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_exti.h"
/**
  * @}
  */

/** @defgroup EXTI_Mode  EXTI Mode
  * @{
  */
# 260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_exti.h"
/**
  * @}
  */

/** @defgroup EXTI_Trigger  EXTI Trigger
  * @{
  */




/**
  * @}
  */

/** @defgroup EXTI_GPIOSel  EXTI GPIOSel
  * @brief
  * @{
  */
# 293 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_exti.h"
/**
  * @}
  */

/** @defgroup EXTI_PendClear_Source  EXTI PendClear Source
  * @brief
  * @{
  */
# 314 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_exti.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup EXTI_Exported_Macros EXTI Exported Macros
  * @{
  */

/**
  * @}
  */

/* Private constants --------------------------------------------------------*/
/** @defgroup EXTI_Private_Constants EXTI Private Constants
  * @{
  */
/**
  * @brief  EXTI Line property definition
  */







/**
  * @brief  EXTI Event presence definition
  */




/**
  * @brief  EXTI Register and bit usage
  */







/**
  * @brief  EXTI Target and bit usage
  */
# 379 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_exti.h"
/**
  * @brief  EXTI Mask for interrupt & event mode
  */






/**
  * @brief  EXTI Mask for trigger possibilities
  */


/**
  * @brief  EXTI Line number
  */
# 404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_exti.h"
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup EXTI_Private_Macros EXTI Private Macros
  * @{
  */
# 481 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_exti.h"
/**
  * @}
  */


/* Exported functions --------------------------------------------------------*/
/** @defgroup EXTI_Exported_Functions EXTI Exported Functions
  * @brief    EXTI Exported Functions
  * @{
  */

/** @defgroup EXTI_Exported_Functions_Group1 Configuration functions
  * @brief    Configuration functions
  * @{
  */
/* Configuration functions ****************************************************/
HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig);
HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI_ConfigTypeDef *pExtiConfig);
HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(const EXTI_HandleTypeDef *hexti);
HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, EXTI_CallbackIDTypeDef CallbackID, void (*pPendingCbfn)(void));
HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t ExtiLine);
/**
  * @}
  */

/** @defgroup EXTI_Exported_Functions_Group2 IO operation functions
  * @brief    IO operation functions
  * @{
  */
/* IO operation functions *****************************************************/
void HAL_EXTI_IRQHandler(const EXTI_HandleTypeDef *hexti);
uint32_t HAL_EXTI_GetPending(const EXTI_HandleTypeDef *hexti, uint32_t Edge);
void HAL_EXTI_ClearPending(const EXTI_HandleTypeDef *hexti, uint32_t Edge);
void HAL_EXTI_GenerateSWI(const EXTI_HandleTypeDef *hexti);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 299 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cortex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_cortex.h
  * @author  MCD Application Team
  * @brief   Header file of CORTEX HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file in
  * the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cortex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup CORTEX
  * @{
  */
/* Exported types ------------------------------------------------------------*/
/** @defgroup CORTEX_Exported_Types Cortex Exported Types
  * @{
  */


/** @defgroup CORTEX_MPU_Region_Initialization_Structure_definition MPU Region Initialization Structure Definition
  * @brief  MPU Region initialization structure
  * @{
  */
typedef struct
{
  uint8_t Enable; /*!< Specifies the status of the region.
                                                     This parameter can be a value of @ref CORTEX_MPU_Region_Enable                 */
  uint8_t Number; /*!< Specifies the number of the region to protect.
                                                     This parameter can be a value of @ref CORTEX_MPU_Region_Number                 */
  uint32_t BaseAddress;
  uint8_t Size; /*!< Specifies the size of the region to protect.
                                                     This parameter can be a value of @ref CORTEX_MPU_Region_Size                   */
  uint8_t SubRegionDisable; /*!< Specifies the number of the subregion protection to disable.
                                                     This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF    */
  uint8_t TypeExtField; /*!< Specifies the TEX field level.
                                                     This parameter can be a value of @ref CORTEX_MPU_TEX_Levels                    */
  uint8_t AccessPermission; /*!< Specifies the region access permission type.
                                                     This parameter can be a value of @ref CORTEX_MPU_Region_Permission_Attributes  */
  uint8_t DisableExec; /*!< Specifies the instruction access status.
                                                     This parameter can be a value of @ref CORTEX_MPU_Instruction_Access            */
  uint8_t IsShareable; /*!< Specifies the shareability status of the protected region.
                                                     This parameter can be a value of @ref CORTEX_MPU_Access_Shareable              */
  uint8_t IsCacheable; /*!< Specifies the cacheable status of the region protected.
                                                     This parameter can be a value of @ref CORTEX_MPU_Access_Cacheable              */
  uint8_t IsBufferable; /*!< Specifies the bufferable status of the protected region.
                                                     This parameter can be a value of @ref CORTEX_MPU_Access_Bufferable             */
}MPU_Region_InitTypeDef;
/**
  * @}
  */


/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup CORTEX_Exported_Constants CORTEX Exported Constants
  * @{
  */

/** @defgroup CORTEX_Preemption_Priority_Group CORTEX Preemption Priority Group
  * @{
  */
# 99 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cortex.h"
/**
  * @}
  */

/** @defgroup CORTEX_SysTick_clock_source CORTEX _SysTick clock source
  * @{
  */



/**
  * @}
  */


/** @defgroup CORTEX_MPU_HFNMI_PRIVDEF_Control MPU HFNMI and PRIVILEGED Access control
  * @{
  */




/**
  * @}
  */

/** @defgroup CORTEX_MPU_Region_Enable CORTEX MPU Region Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup CORTEX_MPU_Instruction_Access CORTEX MPU Instruction Access
  * @{
  */


/**
  * @}
  */

/** @defgroup CORTEX_MPU_Access_Shareable CORTEX MPU Instruction Access Shareable
  * @{
  */


/**
  * @}
  */

/** @defgroup CORTEX_MPU_Access_Cacheable CORTEX MPU Instruction Access Cacheable
  * @{
  */


/**
  * @}
  */

/** @defgroup CORTEX_MPU_Access_Bufferable CORTEX MPU Instruction Access Bufferable
  * @{
  */


/**
  * @}
  */

/** @defgroup CORTEX_MPU_TEX_Levels MPU TEX Levels
  * @{
  */



/**
  * @}
  */

/** @defgroup CORTEX_MPU_Region_Size CORTEX MPU Region Size
  * @{
  */
# 211 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cortex.h"
/**
  * @}
  */

/** @defgroup CORTEX_MPU_Region_Permission_Attributes CORTEX MPU Region Permission Attributes
  * @{
  */






/**
  * @}
  */

/** @defgroup CORTEX_MPU_Region_Number CORTEX MPU Region Number
  * @{
  */
# 250 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cortex.h"
/**
  * @}
  */


/**
  * @}
  */


/* Exported Macros -----------------------------------------------------------*/
/** @defgroup CORTEX_Exported_Macros CORTEX Exported Macros
  * @{
  */

/**
  * @}
  */



/** @defgroup CORTEX_CPU_Identifier CORTEX_CPU_Identifier
  * @{
  */





/**
  * @}
  */


/* Exported functions --------------------------------------------------------*/
/** @addtogroup CORTEX_Exported_Functions
  * @{
  */

/** @addtogroup CORTEX_Exported_Functions_Group1
 * @{
 */
/* Initialization and de-initialization functions *****************************/
void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup);
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority);
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn);
void HAL_NVIC_DisableIRQ(IRQn_Type IRQn);
void HAL_NVIC_SystemReset(void);
uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb);
/**
  * @}
  */

/** @addtogroup CORTEX_Exported_Functions_Group2
 * @{
 */
/* Peripheral Control functions ***********************************************/

void HAL_MPU_Enable(uint32_t MPU_Control);
void HAL_MPU_Disable(void);
void HAL_MPU_EnableRegion(uint32_t RegionNumber);
void HAL_MPU_DisableRegion(uint32_t RegionNumber);
void HAL_MPU_ConfigRegion(const MPU_Region_InitTypeDef *MPU_Init);

uint32_t HAL_NVIC_GetPriorityGrouping(void);
void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority);
uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn);
void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn);
void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn);
uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn);
void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource);
void HAL_SYSTICK_IRQHandler(void);
void HAL_SYSTICK_Callback(void);
uint32_t HAL_GetCurrentCPUID(void);


/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/** @defgroup CORTEX_Private_Macros CORTEX Private Macros
  * @{
  */
# 443 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cortex.h"
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 303 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_adc.h
  * @author  MCD Application Team
  * @brief   Header file of ADC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h" 2

/* Include low level driver */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_adc.h
  * @author  MCD Application Team
  * @brief   Header file of ADC LL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx.h
  * @author  MCD Application Team
  * @brief   CMSIS STM32H7xx Device Peripheral Access Layer Header File.
  *
  *          The file is the unique include file that the application programmer
  *          is using in the C source code, usually in main.c. This file contains:
  *           - Configuration section that allows to select:
  *              - The STM32H7xx device used in the target application
  *              - To use or not the peripheral's drivers in application code(i.e.
  *                code will be based on direct access to peripheral's registers
  *                rather than drivers API), this option is controlled by
  *                "#define USE_HAL_DRIVER"
  *
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/** @addtogroup CMSIS
  * @{
  */

/** @addtogroup stm32h7xx
  * @{
  */
# 292 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h"
/**
  * @}
  */

/**
  * @}
  */
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h" 2

/** @addtogroup STM32H7xx_LL_Driver
  * @{
  */



/** @defgroup ADC_LL ADC
  * @{
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/

/* Private constants ---------------------------------------------------------*/
/** @defgroup ADC_LL_Private_Constants ADC Private Constants
  * @{
  */

/* Internal mask for ADC calibration:                                         */
/* Internal register offset for ADC calibration factors configuration */

/* To select into literals LL_ADC_CALIB_OFFSET, LL_ADC_CALIB_LINEARITY, ...   */
/* the relevant bits for:                                                     */
/* (concatenation of multiple bits used in different registers)               */
/* - ADC calibration configuration: configuration before calibration start    */
/* - ADC calibration factors: register offset                                 */







/* Internal mask for ADC group regular sequencer:                             */
/* To select into literal LL_ADC_REG_RANK_x the relevant bits for:            */
/* - sequencer register offset                                                */
/* - sequencer rank bits position into the selected register                  */

/* Internal register offset for ADC group regular sequencer configuration */
/* (offset placed into a spare area of literal definition) */
# 79 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Definition of ADC group regular sequencer bits information to be inserted  */
/* into ADC group regular sequencer ranks literals definition.                */
# 100 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Internal mask for ADC group injected sequencer:                            */
/* To select into literal LL_ADC_INJ_RANK_x the relevant bits for:            */
/* - data register offset                                                     */
/* - sequencer rank bits position into the selected register                  */

/* Internal register offset for ADC group injected data register */
/* (offset placed into a spare area of literal definition) */
# 116 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Definition of ADC group injected sequencer bits information to be inserted */
/* into ADC group injected sequencer ranks literals definition.               */







/* Internal mask for ADC group regular trigger:                               */
/* To select into literal LL_ADC_REG_TRIG_x the relevant bits for:            */
/* - regular trigger source                                                   */
/* - regular trigger edge                                                     */


/* Mask containing trigger source masks for each of possible                  */
/* trigger edge selection duplicated with shifts [0; 4; 8; 12]                */
/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}.        */





/* Mask containing trigger edge masks for each of possible                    */
/* trigger edge selection duplicated with shifts [0; 4; 8; 12]                */
/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}.        */





/* Definition of ADC group regular trigger bits information.                  */





/* Internal mask for ADC group injected trigger:                              */
/* To select into literal LL_ADC_INJ_TRIG_x the relevant bits for:            */
/* - injected trigger source                                                  */
/* - injected trigger edge                                                    */


/* Mask containing trigger source masks for each of possible                  */
/* trigger edge selection duplicated with shifts [0; 4; 8; 12]                */
/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}.        */





/* Mask containing trigger edge masks for each of possible                    */
/* trigger edge selection duplicated with shifts [0; 4; 8; 12]                */
/* corresponding to {SW start; ext trigger; ext trigger; ext trigger}.        */





/* Definition of ADC group injected trigger bits information.                 */
# 184 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Internal mask for ADC channel:                                             */
/* To select into literal LL_ADC_CHANNEL_x the relevant bits for:             */
/* - channel identifier defined by number                                     */
/* - channel identifier defined by bitfield                                   */
/* - channel differentiation between external channels (connected to          */
/*   GPIO pins) and internal channels (connected to internal paths)           */
/* - channel sampling time defined by SMPRx register offset                   */
/*   and SMPx bits positions into SMPRx register                              */




/* Equivalent mask of ADC_CHANNEL_NUMBER_MASK aligned on register LSB (bit 0) */


/* Channel differentiation between external and internal channels */



/* Internal register offset for ADC channel sampling time configuration */
/* (offset placed into a spare area of literal definition) */
# 213 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Definition of channels ID number information to be inserted into           */
/* channels literals definition.                                              */
# 236 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Definition of channels ID bitfield information to be inserted into         */
/* channels literals definition.                                              */
# 259 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Definition of channels sampling time information to be inserted into       */
/* channels literals definition.                                              */
# 283 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Internal mask for ADC mode single or differential ended:                   */
/* To select into literals LL_ADC_SINGLE_ENDED or LL_ADC_SINGLE_DIFFERENTIAL  */
/* the relevant bits for:                                                     */
/* (concatenation of multiple bits used in different registers)               */
/* - ADC calibration: calibration start, calibration factor get or set        */
/* - ADC channels: set each ADC channel ending mode                           */
# 297 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Internal mask for ADC analog watchdog:                                     */
/* To select into literals LL_ADC_AWD_CHANNELx_xxx the relevant bits for:     */
/* (concatenation of multiple bits used in different analog watchdogs,        */
/* (feature of several watchdogs not available on all STM32 families)).       */
/* - analog watchdog 1: monitored channel defined by number,                  */
/*   selection of ADC group (ADC groups regular and-or injected).             */
/* - analog watchdog 2 and 3: monitored channel defined by bitfield, no       */
/*   selection on groups.                                                     */

/* Internal register offset for ADC analog watchdog channel configuration */




/* Register offset gap between AWD1 and AWD2-AWD3 configuration registers */
/* (Set separately as ADC_AWD_CRX_REGOFFSET to spare 32 bits space */
# 324 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Internal register offset for ADC analog watchdog threshold configuration */
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Register offset gap between AWD1 and AWD2-AWD3 thresholds registers */
/* (Set separately as ADC_AWD_TRX_REGOFFSET to spare 32 bits space */



/* Legacy literals */




/* Internal mask for ADC offset:                                              */
/* Internal register offset for ADC offset number configuration */







/* ADC registers bits positions */
# 365 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* ADC registers bits groups */



/* ADC internal channels related definitions */
/* Internal voltage reference VrefInt */







/* Temperature sensor */
# 399 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/* Registers addresses with ADC linearity calibration content (programmed during device production, specific to each device) */







/**
  * @}
  */

/** @defgroup ADC_LL_Alias_definition  ADC Alias definition
  * @{
  */


/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup ADC_LL_Private_Macros ADC Private Macros
  * @{
  */

/**
  * @brief  Driver macro reserved for internal use: set a pointer to
  *         a register from a register basis from which an offset
  *         is applied.
  * @param  __REG__ Register basis from which the offset is applied.
  * @param  __REG_OFFFSET__ Offset to be applied (unit: number of registers).
  * @retval Pointer to register address
  */



/**
  * @}
  */


/* Exported types ------------------------------------------------------------*/

/** @defgroup ADC_LL_ES_INIT ADC Exported Init structure
  * @{
  */

/**
  * @brief  Structure definition of some features of ADC common parameters
  *         and multimode
  *         (all ADC instances belonging to the same ADC common instance).
  * @note   The setting of these parameters by function @ref LL_ADC_CommonInit()
  *         is conditioned to ADC instances state (all ADC instances
  *         sharing the same ADC common instance):
  *         All ADC instances sharing the same ADC common instance must be
  *         disabled.
  */
typedef struct
{
  uint32_t CommonClock; /*!< Set parameter common to several ADC: Clock source and prescaler.
                                             This parameter can be a value of @ref ADC_LL_EC_COMMON_CLOCK_SOURCE
                                             @note On this STM32 series, if ADC group injected is used, some
                                                   clock ratio constraints between ADC clock and AHB clock
                                                   must be respected. Refer to reference manual.

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetCommonClock(). */

  uint32_t Multimode; /*!< Set ADC multimode configuration to operate in independent mode or multimode (for devices with several ADC instances).
                                             This parameter can be a value of @ref ADC_LL_EC_MULTI_MODE

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultimode(). */

  uint32_t MultiDMATransfer; /*!< Set ADC dual ADC mode DMA transfer data format: Each DMA, 32 down to 10-bits or 8-bits resolution.
                                             This parameter can be a value of @ref ADC_LL_EC_MULTI_DMA_TRANSFER

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiDMATransfer(). */

  uint32_t MultiTwoSamplingDelay; /*!< Set ADC multimode delay between 2 sampling phases.
                                             This parameter can be a value of @ref ADC_LL_EC_MULTI_TWOSMP_DELAY

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetMultiTwoSamplingDelay(). */

} LL_ADC_CommonInitTypeDef;

/**
  * @brief  Structure definition of some features of ADC instance.
  * @note   These parameters have an impact on ADC scope: ADC instance.
  *         Affects both group regular and group injected (availability
  *         of ADC group injected depends on STM32 families).
  *         Refer to corresponding unitary functions into
  *         @ref ADC_LL_EF_Configuration_ADC_Instance .
  * @note   The setting of these parameters by function @ref LL_ADC_Init()
  *         is conditioned to ADC state:
  *         ADC instance must be disabled.
  *         This condition is applied to all ADC features, for efficiency
  *         and compatibility over all STM32 families. However, the different
  *         features can be set under different ADC state conditions
  *         (setting possible with ADC enabled without conversion on going,
  *         ADC enabled with conversion on going, ...)
  *         Each feature can be updated afterwards with a unitary function
  *         and potentially with ADC in a different state than disabled,
  *         refer to description of each function for setting
  *         conditioned to ADC state.
  */
typedef struct
{
  uint32_t Resolution; /*!< Set ADC resolution.
                                             This parameter can be a value of @ref ADC_LL_EC_RESOLUTION

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetResolution(). */

  uint32_t LeftBitShift; /*!< Configures the left shifting applied to the final result with or without oversampling.
                                             This parameter can be a value of @ref ADC_LL_EC_LEFT_BIT_SHIFT. */

  uint32_t LowPowerMode; /*!< Set ADC low power mode.
                                             This parameter can be a value of @ref ADC_LL_EC_LP_MODE

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_SetLowPowerMode(). */

} LL_ADC_InitTypeDef;

/**
  * @brief  Structure definition of some features of ADC group regular.
  * @note   These parameters have an impact on ADC scope: ADC group regular.
  *         Refer to corresponding unitary functions into
  *         @ref ADC_LL_EF_Configuration_ADC_Group_Regular
  *         (functions with prefix "REG").
  * @note   The setting of these parameters by function @ref LL_ADC_REG_Init()
  *         is conditioned to ADC state:
  *         ADC instance must be disabled.
  *         This condition is applied to all ADC features, for efficiency
  *         and compatibility over all STM32 families. However, the different
  *         features can be set under different ADC state conditions
  *         (setting possible with ADC enabled without conversion on going,
  *         ADC enabled with conversion on going, ...)
  *         Each feature can be updated afterwards with a unitary function
  *         and potentially with ADC in a different state than disabled,
  *         refer to description of each function for setting
  *         conditioned to ADC state.
  */
typedef struct
{
  uint32_t TriggerSource; /*!< Set ADC group regular conversion trigger source: internal (SW start) or from external peripheral (timer event, external interrupt line).
                                             This parameter can be a value of @ref ADC_LL_EC_REG_TRIGGER_SOURCE
                                             @note On this STM32 series, setting trigger source to external trigger also set trigger polarity to rising edge
                                                   (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value).
                                                   In case of need to modify trigger edge, use function @ref LL_ADC_REG_SetTriggerEdge().

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetTriggerSource(). */

  uint32_t SequencerLength; /*!< Set ADC group regular sequencer length.
                                             This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_SCAN_LENGTH

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerLength(). */

  uint32_t SequencerDiscont; /*!< Set ADC group regular sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
                                             This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_DISCONT_MODE
                                             @note This parameter has an effect only if group regular sequencer is enabled
                                                   (scan length of 2 ranks or more).

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerDiscont(). */

  uint32_t ContinuousMode; /*!< Set ADC continuous conversion mode on ADC group regular, whether ADC conversions are performed in single mode (one conversion per trigger) or in continuous mode (after the first trigger, following conversions launched successively automatically).
                                             This parameter can be a value of @ref ADC_LL_EC_REG_CONTINUOUS_MODE
                                             Note: It is not possible to enable both ADC group regular continuous mode and discontinuous mode.

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetContinuousMode(). */

  uint32_t DataTransferMode; /*!< Set ADC group regular conversion data transfer mode: no transfer, transfer by DMA (Limited/Unlimited) or DFSDM.
                                             This parameter can be a value of @ref ADC_LL_EC_REG_DATA_TRANSFER_MODE

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetDataTransferMode(). */

  uint32_t Overrun; /*!< Set ADC group regular behavior in case of overrun:
                                             data preserved or overwritten.
                                             This parameter can be a value of @ref ADC_LL_EC_REG_OVR_DATA_BEHAVIOR

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetOverrun(). */

} LL_ADC_REG_InitTypeDef;

/**
  * @brief  Structure definition of some features of ADC group injected.
  * @note   These parameters have an impact on ADC scope: ADC group injected.
  *         Refer to corresponding unitary functions into
  *         @ref ADC_LL_EF_Configuration_ADC_Group_Regular
  *         (functions with prefix "INJ").
  * @note   The setting of these parameters by function @ref LL_ADC_INJ_Init()
  *         is conditioned to ADC state:
  *         ADC instance must be disabled.
  *         This condition is applied to all ADC features, for efficiency
  *         and compatibility over all STM32 families. However, the different
  *         features can be set under different ADC state conditions
  *         (setting possible with ADC enabled without conversion on going,
  *         ADC enabled with conversion on going, ...)
  *         Each feature can be updated afterwards with a unitary function
  *         and potentially with ADC in a different state than disabled,
  *         refer to description of each function for setting
  *         conditioned to ADC state.
  */
typedef struct
{
  uint32_t TriggerSource; /*!< Set ADC group injected conversion trigger source: internal (SW start) or from external peripheral (timer event, external interrupt line).
                                             This parameter can be a value of @ref ADC_LL_EC_INJ_TRIGGER_SOURCE
                                             @note On this STM32 series, setting trigger source to external trigger also set trigger polarity to rising edge
                                                   (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value).
                                                   In case of need to modify trigger edge, use function @ref LL_ADC_INJ_SetTriggerEdge().

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTriggerSource(). */

  uint32_t SequencerLength; /*!< Set ADC group injected sequencer length.
                                             This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_SCAN_LENGTH

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerLength(). */

  uint32_t SequencerDiscont; /*!< Set ADC group injected sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
                                             This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_DISCONT_MODE
                                             @note This parameter has an effect only if group injected sequencer is enabled
                                                   (scan length of 2 ranks or more).

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerDiscont(). */

  uint32_t TrigAuto; /*!< Set ADC group injected conversion trigger: independent or from ADC group regular.
                                             This parameter can be a value of @ref ADC_LL_EC_INJ_TRIG_AUTO
                                             Note: This parameter must be set to set to independent trigger if injected trigger source is set to an external trigger.

                                             This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTrigAuto(). */

} LL_ADC_INJ_InitTypeDef;

/**
  * @}
  */


/* Exported constants --------------------------------------------------------*/
/** @defgroup ADC_LL_Exported_Constants ADC Exported Constants
  * @{
  */

/** @defgroup ADC_LL_EC_FLAG ADC flags
  * @brief    Flags defines which can be used with LL_ADC_ReadReg function
  * @{
  */
# 678 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_IT ADC interruptions for configuration (interruption enable or disable)
  * @brief    IT defines which can be used with LL_ADC_ReadReg and  LL_ADC_WriteReg functions
  * @{
  */
# 697 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_REGISTERS  ADC registers compliant with specific purpose
  * @{
  */
/* List of ADC registers intended to be used (most commonly) with             */
/* DMA transfer.                                                              */
/* Refer to function @ref LL_ADC_DMA_GetRegAddr().                            */


/**
  * @}
  */

/** @defgroup ADC_LL_EC_COMMON_CLOCK_SOURCE  ADC common - Clock source
  * @{
  */
# 731 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_COMMON_PATH_INTERNAL  ADC common - Measurement path to internal channels
  * @{
  */
/* Note: Other measurement paths to internal channels may be available        */
/*       (connections to other peripherals).                                  */
/*       If they are not listed below, they do not require any specific       */
/*       path enable. In this case, Access to measurement path is done        */
/*       only by selecting the corresponding ADC internal channel.            */




/**
  * @}
  */

/** @defgroup ADC_LL_EC_BOOST_MODE ADC instance - Boost mode
  * @{
  */





/**
  * @}
  */

/** @defgroup ADC_LL_EC_CALIBRATION_OFFSET_LINEARITY  ADC instance - Calibration mode for offset and linearity
  * @{
  */



/**
  * @}
  */

/** @defgroup ADC_LL_EC_CALIBRATION_LINEARITY_WORD  ADC instance - Calibration linearity words
  * @{
  */






/**
  * @}
  */

/** @defgroup ADC_LL_EC_RESOLUTION  ADC instance - Resolution
  * @{
  */
# 803 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
                                                                                            /*!< The resolution setting is managed internally in the driver:
                                                                                                    "LL_ADC_RESOLUTION_8B" definition: keep using the "100b" value (corresponding to STM32H74x/5x rev Y).
                                                                                                    Rev.V value "111b" is handled through functions "LL_ADC_SetResolution/LL_ADC_GetResolution"  with a dedicated check on DBGMCU IDCODE register */




/**
  * @}
  */
# 826 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/** @defgroup ADC_LL_EC_LEFT_BIT_SHIFT   ADC left Shift
  * @{
  */
# 845 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_LP_MODE  ADC instance - Low power mode
  * @{
  */


/**
  * @}
  */

/** @defgroup ADC_LL_EC_OFFSET_NB  ADC instance - Offset number
  * @{
  */




/**
  * @}
  */

/** @defgroup ADC_LL_EC_OFFSET_SIGNED_SATURATION ADC instance - Offset signed saturation mode
  * @{
  */


/**
  * @}
  */

/** @defgroup ADC_LL_EC_OFFSET_RSHIFT ADC instance - Offset right shift
  * @{
  */


/**
  * @}
  */
# 917 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/** @defgroup ADC_LL_EC_GROUPS  ADC instance - Groups
  * @{
  */



/**
  * @}
  */

/** @defgroup ADC_LL_EC_CHANNEL  ADC instance - Channel number
  * @{
  */
# 972 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_REG_TRIGGER_SOURCE  ADC group regular - Trigger source
  * @{
  */
# 1007 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_REG_TRIGGER_EDGE  ADC group regular - Trigger edge
  * @{
  */



/**
  * @}
  */
# 1035 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/** @defgroup ADC_LL_EC_REG_CONTINUOUS_MODE  ADC group regular - Continuous mode
* @{
*/


/**
  * @}
  */

/** @defgroup ADC_LL_EC_REG_DATA_TRANSFER_MODE  ADC group regular - Data transfer mode of ADC conversion data
  * @{
  */




/**
  * @}
  */
# 1068 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/** @defgroup ADC_LL_EC_REG_OVR_DATA_BEHAVIOR  ADC group regular - Overrun behavior on conversion data
* @{
*/


/**
  * @}
  */

/** @defgroup ADC_LL_EC_REG_SEQ_SCAN_LENGTH  ADC group regular - Sequencer scan length
  * @{
  */
# 1096 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_REG_SEQ_DISCONT_MODE  ADC group regular - Sequencer discontinuous mode
  * @{
  */
# 1112 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_REG_SEQ_RANKS  ADC group regular - Sequencer ranks
  * @{
  */
# 1135 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_INJ_TRIGGER_SOURCE  ADC group injected - Trigger source
  * @{
  */
# 1168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_INJ_TRIGGER_EDGE  ADC group injected - Trigger edge
  * @{
  */



/**
  * @}
  */

/** @defgroup ADC_LL_EC_INJ_TRIG_AUTO  ADC group injected - Automatic trigger mode
* @{
*/


/**
  * @}
  */

/** @defgroup ADC_LL_EC_INJ_CONTEXT_QUEUE  ADC group injected - Context queue mode
  * @{
  */



/**
  * @}
  */

/** @defgroup ADC_LL_EC_INJ_SEQ_SCAN_LENGTH  ADC group injected - Sequencer scan length
  * @{
  */




/**
  * @}
  */

/** @defgroup ADC_LL_EC_INJ_SEQ_DISCONT_MODE  ADC group injected - Sequencer discontinuous mode
  * @{
  */


/**
  * @}
  */

/** @defgroup ADC_LL_EC_INJ_SEQ_RANKS  ADC group injected - Sequencer ranks
  * @{
  */




/**
  * @}
  */

/** @defgroup ADC_LL_EC_CHANNEL_SAMPLINGTIME  Channel - Sampling time
  * @{
  */
# 1243 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */
# 1263 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/** @defgroup ADC_LL_EC_CHANNEL_SINGLE_DIFF_ENDING  Channel - Single or differential ending
  * @{
  */



/**
  * @}
  */

/** @defgroup ADC_LL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number
  * @{
  */



/**
  * @}
  */

/** @defgroup ADC_LL_EC_AWD_CHANNELS  Analog watchdog - Monitored channels
  * @{
  */
# 1365 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_AWD_THRESHOLDS  Analog watchdog - Thresholds
  * @{
  */


/**
  * @}
  */
# 1394 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/** @defgroup ADC_LL_EC_OVS_SCOPE  Oversampling - Oversampling scope
  * @{
  */





/**
  * @}
  */

/** @defgroup ADC_LL_EC_OVS_DISCONT_MODE  Oversampling - Discontinuous mode
  * @{
  */


/**
  * @}
  */
# 1431 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/** @defgroup ADC_LL_EC_OVS_SHIFT  Oversampling - Data shift
  * @{
  */
# 1446 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_MULTI_MODE  Multimode - Mode
  * @{
  */
# 1461 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_MULTI_DMA_TRANSFER  Multimode - DMA transfer
  * @{
  */



/**
  * @}
  */

/** @defgroup ADC_LL_EC_MULTI_TWOSMP_DELAY  Multimode - Delay between two sampling phases
  * @{
  */
# 1491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EC_MULTI_MASTER_SLAVE  Multimode - ADC master or slave
  * @{
  */



/**
  * @}
  */



/** @defgroup ADC_LL_EC_HW_DELAYS  Definitions of ADC hardware constraints delays
  * @note   Only ADC peripheral HW delays are defined in ADC LL driver driver,
  *         not timeout values.
  *         For details on delays values, refer to descriptions in source code
  *         above each literal definition.
  * @{
  */

/* Note: Only ADC peripheral HW delays are defined in ADC LL driver driver,   */
/*       not timeout values.                                                  */
/*       Timeout values for ADC operations are dependent to device clock      */
/*       configuration (system clock versus ADC clock),                       */
/*       and therefore must be defined in user application.                   */
/*       Indications for estimation of ADC timeout delays, for this           */
/*       STM32 series:                                                         */
/*       - ADC calibration time: maximum delay is 16384/fADC.                   */
/*         (refer to device datasheet, parameter "tCAL")                      */
/*       - ADC enable time: maximum delay is 1 conversion cycle.              */
/*         (refer to device datasheet, parameter "tSTAB")                     */
/*       - ADC disable time: maximum delay should be a few ADC clock cycles   */
/*       - ADC stop conversion time: maximum delay should be a few ADC clock  */
/*         cycles                                                             */
/*       - ADC conversion time: duration depending on ADC clock and ADC       */
/*         configuration.                                                     */
/*         (refer to device reference manual, section "Timing")               */

/* Delay for ADC stabilization time (ADC voltage regulator start-up time)     */
/* Delay set to maximum value (refer to device datasheet,                     */
/* parameter "tADCVREG_STUP").                                                */
/* Unit: us                                                                   */


/* Delay for internal voltage reference stabilization time.                   */
/* Delay set to maximum value (refer to device datasheet,                     */
/* parameter "ts_vrefint").                                                   */
/* Unit: us                                                                   */


/* Delay for temperature sensor stabilization time.                           */
/* Literal set to maximum value (refer to device datasheet,                   */
/* parameter "tSTART_RUN").                                                   */
/* Unit: us                                                                   */


/* Delay required between ADC end of calibration and ADC enable.              */
/* Note: On this STM32 series, a minimum number of ADC clock cycles            */
/*       are required between ADC end of calibration and ADC enable.          */
/*       Wait time can be computed in user application by waiting for the     */
/*       equivalent number of CPU cycles, by taking into account              */
/*       ratio of CPU clock versus ADC clock prescalers.                      */
/* Unit: ADC clock cycles.                                                    */


/* Fixed timeout value for ADC linearity word bit set/clear delay.                         */
/* Values defined to be higher than worst cases: low clock frequency,                      */
/* maximum prescalers.                                                                     */
/* Ex of profile low frequency : f_ADC at 4,577 Khz (minimum value                         */
/* according to Data sheet), linearity set/clear bit delay MAX = 6 / f_ADC + 3 cycles AHB  */
/*           6 / 4577 = 1,311ms                                                            */
/* At maximum CPU speed (400 MHz), this means                                              */
/*    3.58 * 400 MHz = 524400 CPU cycles                                                   */


/**
  * @}
  */

/**
  * @}
  */


/* Exported macro ------------------------------------------------------------*/
/** @defgroup ADC_LL_Exported_Macros ADC Exported Macros
  * @{
  */

/** @defgroup ADC_LL_EM_WRITE_READ Common write and read registers Macros
  * @{
  */

/**
  * @brief  Write a value in ADC register
  * @param  __INSTANCE__ ADC Instance
  * @param  __REG__ Register to be written
  * @param  __VALUE__ Value to be written in the register
  * @retval None
  */


/**
  * @brief  Read a value in ADC register
  * @param  __INSTANCE__ ADC Instance
  * @param  __REG__ Register to be read
  * @retval Register value
  */

/**
  * @}
  */

/** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro
  * @{
  */
# 1647 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to get ADC channel number in decimal format
  *         from literals LL_ADC_CHANNEL_x.
  * @note   Example:
  *           __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4)
  *           will return decimal number "4".
  * @note   The input can be a value from functions where a channel
  *         number is returned, either defined with number
  *         or with bitfield (only one bit must be set).
  * @param  __CHANNEL__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval Value between Min_Data=0 and Max_Data=18
  */
# 1700 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x
  *         from number in decimal format.
  * @note   Example:
  *           __LL_ADC_DECIMAL_NB_TO_CHANNEL(4)
  *           will return a data equivalent to "LL_ADC_CHANNEL_4".
  * @param  __DECIMAL_NB__ Value between Min_Data=0 and Max_Data=18
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).\n
  *         (1, 2) For ADC channel read back from ADC register,
  *                comparison with internal channel parameter to be done
  *                using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
  */
# 1757 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to determine whether the selected channel
  *         corresponds to literal definitions of driver.
  * @note   The different literal definitions of ADC channels are:
  *         - ADC internal channel:
  *           LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...
  *         - ADC external channel (channel connected to a GPIO pin):
  *           LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...
  * @note   The channel parameter must be a value defined from literal
  *         definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
  *         LL_ADC_CHANNEL_TEMPSENSOR, ...),
  *         ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...),
  *         must not be a value from functions where a channel number is
  *         returned from ADC registers,
  *         because internal and external channels share the same channel
  *         number in ADC registers. The differentiation is made only with
  *         parameters definitions of driver.
  * @param  __CHANNEL__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel connected to a GPIO pin).
  *         Value "1" if the channel corresponds to a parameter definition of a ADC internal channel.
  */



/**
  * @brief  Helper macro to convert a channel defined from parameter
  *         definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
  *         LL_ADC_CHANNEL_TEMPSENSOR, ...),
  *         to its equivalent parameter definition of a ADC external channel
  *         (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...).
  * @note   The channel parameter can be, additionally to a value
  *         defined from parameter definition of a ADC internal channel
  *         (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...),
  *         a value defined from parameter definition of
  *         ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
  *         or a value from functions where a channel number is returned
  *         from ADC registers.
  * @param  __CHANNEL__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0
  *         @arg @ref LL_ADC_CHANNEL_1
  *         @arg @ref LL_ADC_CHANNEL_2
  *         @arg @ref LL_ADC_CHANNEL_3
  *         @arg @ref LL_ADC_CHANNEL_4
  *         @arg @ref LL_ADC_CHANNEL_5
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  */



/**
  * @brief  Helper macro to determine whether the internal channel
  *         selected is available on the ADC instance selected.
  * @note   The channel parameter must be a value defined from parameter
  *         definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
  *         LL_ADC_CHANNEL_TEMPSENSOR, ...),
  *         must not be a value defined from parameter definition of
  *         ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
  *         or a value from functions where a channel number is
  *         returned from ADC registers,
  *         because internal and external channels share the same channel
  *         number in ADC registers. The differentiation is made only with
  *         parameters definitions of driver.
  * @param  __ADC_INSTANCE__ ADC instance
  * @param  __CHANNEL__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.
  * @retval Value "0" if the internal channel selected is not available on the ADC instance selected.
  *         Value "1" if the internal channel selected is available on the ADC instance selected.
  */
# 1937 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to define ADC analog watchdog parameter:
  *         define a single channel to monitor with analog watchdog
  *         from sequencer channel and groups definition.
  * @note   To be used with function @ref LL_ADC_SetAnalogWDMonitChannels().
  *         Example:
  *           LL_ADC_SetAnalogWDMonitChannels(
  *             ADC1, LL_ADC_AWD1,
  *             __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR))
  * @param  __CHANNEL__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).\n
  *         (1, 2) For ADC channel read back from ADC register,
  *                comparison with internal channel parameter to be done
  *                using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
  * @param  __GROUP__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_GROUP_REGULAR
  *         @arg @ref LL_ADC_GROUP_INJECTED
  *         @arg @ref LL_ADC_GROUP_REGULAR_INJECTED
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_AWD_DISABLE
  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG        (0)
  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ        (0)
  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_0_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_1_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_2_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_3_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_4_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_5_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_6_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_7_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_8_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_9_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_10_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_11_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_12_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_13_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_14_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_15_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_16_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_17_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_18_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_19_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_19_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_19_REG_INJ
  *         @arg @ref LL_ADC_AWD_CH_VREFINT_REG          (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_VREFINT_INJ          (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ         (1)
  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG       (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ       (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ      (1)
  *         @arg @ref LL_ADC_AWD_CH_VBAT_REG             (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_VBAT_INJ             (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ            (1)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_REG     (0)(2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_INJ     (0)(2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_REG_INJ    (2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_REG     (0)(2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_INJ     (0)(2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_REG_INJ    (2)
  *
  *         (0) On STM32H7, parameter available only on analog watchdog number: AWD1.\n
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.
  */
# 2079 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to set the value of ADC analog watchdog threshold high
  *         or low in function of ADC resolution, when ADC resolution is
  *         different of 16 bits.
  * @note   To be used with function @ref LL_ADC_SetAnalogWDThresholds().
  *         Example, with a ADC resolution of 8 bits, to set the value of
  *         analog watchdog threshold high (on 18 bits):
  *           LL_ADC_SetAnalogWDThresholds
  *            (< ADCx param >,
  *             __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, <threshold_value_18_bits>)
  *            );
  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @param  __AWD_THRESHOLD__ Value between Min_Data=0x000000 and Max_Data=0xFFFFFF
  * @retval Value between Min_Data=0x000000 and Max_Data=0xFFFFFF
  */



/**
  * @brief  Helper macro to get the value of ADC analog watchdog threshold high
  *         or low in function of ADC resolution, when ADC resolution is
  *         different of 16 bits.
  * @note   To be used with function @ref LL_ADC_GetAnalogWDThresholds().
  *         Example, with a ADC resolution of 8 bits, to get the value of
  *         analog watchdog threshold high (on 18 bits):
  *           < threshold_value_18_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION
  *            (LL_ADC_RESOLUTION_8B,
  *             LL_ADC_GetAnalogWDThresholds(<ADCx param>, LL_ADC_AWD_THRESHOLD_HIGH)
  *            );
  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @param  __AWD_THRESHOLD_16_BITS__ Value between Min_Data=0x000000 and Max_Data=0xFFFFFF
  * @retval Value between Min_Data=0x000000 and Max_Data=0xFFFFFF
  */



/**
  * @brief  Helper macro to set the ADC calibration value with both single ended
  *         and differential modes calibration factors concatenated.
  * @note   To be used with function @ref LL_ADC_SetCalibrationOffsetFactor().
  *         Example, to set calibration factors single ended to 0x55
  *         and differential ended to 0x2A:
  *           LL_ADC_SetCalibrationOffsetFactor(
  *             ADC1,
  *             __LL_ADC_CALIB_FACTOR_SINGLE_DIFF(0x55, 0x2A))
  * @param  __CALIB_FACTOR_SINGLE_ENDED__ Value between Min_Data=0x00 and Max_Data=0x7F
  * @param  __CALIB_FACTOR_DIFFERENTIAL__ Value between Min_Data=0x00 and Max_Data=0x7F
  * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
  */



/**
  * @brief  Helper macro to get the ADC multimode conversion data of ADC master
  *         or ADC slave from raw value with both ADC conversion data concatenated.
  * @note   This macro is intended to be used when multimode transfer by DMA
  *         is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer().
  *         In this case the transferred data need to processed with this macro
  *         to separate the conversion data of ADC master and ADC slave.
  * @param  __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_MULTI_MASTER
  *         @arg @ref LL_ADC_MULTI_SLAVE
  * @param  __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF
  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
  */



/**
  * @brief  Helper macro to select, from a ADC instance, to which ADC instance
  *         it has a dependence in multimode (ADC master of the corresponding
  *         ADC common instance).
  * @note   In case of device with multimode available and a mix of
  *         ADC instances compliant and not compliant with multimode feature,
  *         ADC instances not compliant with multimode feature are
  *         considered as master instances (do not depend to
  *         any other ADC instance).
  * @param  __ADCx__ ADC instance
  * @retval __ADCx__ ADC instance master of the corresponding ADC common instance
  */
# 2177 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to select the ADC common instance
  *         to which is belonging the selected ADC instance.
  * @note   ADC common register instance can be used for:
  *         - Set parameters common to several ADC instances
  *         - Multimode (for devices with several ADC instances)
  *         Refer to functions having argument "ADCxy_COMMON" as parameter.
  * @param  __ADCx__ ADC instance
  * @retval ADC common register instance
  */
# 2202 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to check if all ADC instances sharing the same
  *         ADC common instance are disabled.
  * @note   This check is required by functions with setting conditioned to
  *         ADC state:
  *         All ADC instances of the ADC common group must be disabled.
  *         Refer to functions having argument "ADCxy_COMMON" as parameter.
  * @note   On devices with only 1 ADC common instance, parameter of this macro
  *         is useless and can be ignored (parameter kept for compatibility
  *         with devices featuring several ADC common instances).
  * @param  __ADCXY_COMMON__ ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval Value "0" if all ADC instances sharing the same ADC common instance
  *         are disabled.
  *         Value "1" if at least one ADC instance sharing the same ADC common instance
  *         is enabled.
  */
# 2236 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to define the ADC conversion data full-scale digital
  *         value corresponding to the selected ADC resolution.
  * @note   ADC conversion data full-scale corresponds to voltage range
  *         determined by analog voltage references Vref+ and Vref-
  *         (refer to reference manual).
  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @retval ADC conversion data full-scale digital value (unit: digital value of ADC conversion data)
  */
# 2270 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to convert the ADC conversion data from
  *         a resolution to another resolution.
  * @param  __DATA__ ADC conversion data to be converted
  * @param  __ADC_RESOLUTION_CURRENT__ Resolution of the data to be converted
  *         This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @param  __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion
  *         This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @retval ADC conversion data to the requested resolution
  */
# 2374 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to calculate the voltage (unit: mVolt)
  *         corresponding to a ADC conversion data (unit: digital value).
  * @note   Analog reference voltage (Vref+) must be either known from
  *         user board environment or can be calculated using ADC measurement
  *         and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
  * @param  __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
  * @param  __ADC_DATA__ ADC conversion data (resolution 16 bits)
  *                       (unit: digital value).
  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @retval ADC conversion data equivalent voltage value (unit: mVolt)
  */







/**
  * @brief  Helper macro to calculate analog reference voltage (Vref+)
  *         (unit: mVolt) from ADC conversion data of internal voltage
  *         reference VrefInt.
  * @note   Computation is using VrefInt calibration value
  *         stored in system memory for each device during production.
  * @note   This voltage depends on user board environment: voltage level
  *         connected to pin Vref+.
  *         On devices with small package, the pin Vref+ is not present
  *         and internally bonded to pin Vdda.
  * @note   On this STM32 series, calibration data of internal voltage reference
  *         VrefInt corresponds to a resolution of 16 bits,
  *         this is the recommended ADC resolution to convert voltage of
  *         internal voltage reference VrefInt.
  *         Otherwise, this macro performs the processing to scale
  *         ADC conversion data to 16 bits.
  * @param  __VREFINT_ADC_DATA__ ADC conversion data (resolution 16 bits)
  *         of internal voltage reference VrefInt (unit: digital value).
  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @retval Analog reference voltage (unit: mV)
  */
# 2432 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to calculate the temperature (unit: degree Celsius)
  *         from ADC conversion data of internal temperature sensor.
  * @note   Computation is using temperature sensor calibration values
  *         stored in system memory for each device during production.
  * @note   Calculation formula:
  *           Temperature = ((TS_ADC_DATA - TS_CAL1)
  *                           * (TS_CAL2_TEMP - TS_CAL1_TEMP))
  *                         / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
  *           with TS_ADC_DATA = temperature sensor raw data measured by ADC
  *                Avg_Slope = (TS_CAL2 - TS_CAL1)
  *                            / (TS_CAL2_TEMP - TS_CAL1_TEMP)
  *                TS_CAL1   = equivalent TS_ADC_DATA at temperature
  *                            TEMP_DEGC_CAL1 (calibrated in factory)
  *                TS_CAL2   = equivalent TS_ADC_DATA at temperature
  *                            TEMP_DEGC_CAL2 (calibrated in factory)
  *         Caution: Calculation relevancy under reserve that calibration
  *                  parameters are correct (address and data).
  *                  To calculate temperature using temperature sensor
  *                  datasheet typical values (generic values less, therefore
  *                  less accurate than calibrated values),
  *                  use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS().
  * @note   As calculation input, the analog reference voltage (Vref+) must be
  *         defined as it impacts the ADC LSB equivalent voltage.
  * @note   Analog reference voltage (Vref+) must be either known from
  *         user board environment or can be calculated using ADC measurement
  *         and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
  * @note   On this STM32 series, calibration data of temperature sensor
  *         corresponds to a resolution of 16 bits,
  *         this is the recommended ADC resolution to convert voltage of
  *         temperature sensor.
  *         Otherwise, this macro performs the processing to scale
  *         ADC conversion data to 16 bits.
  * @param  __VREFANALOG_VOLTAGE__  Analog reference voltage (unit: mV)
  * @param  __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal
  *                                 temperature sensor (unit: digital value).
  * @param  __ADC_RESOLUTION__      ADC resolution at which internal temperature
  *                                 sensor voltage has been measured.
  *         This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @retval Temperature (unit: degree Celsius)
  */
# 2492 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Helper macro to calculate the temperature (unit: degree Celsius)
  *         from ADC conversion data of internal temperature sensor.
  * @note   Computation is using temperature sensor typical values
  *         (refer to device datasheet).
  * @note   Calculation formula:
  *           Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV)
  *                         / Avg_Slope + CALx_TEMP
  *           with TS_ADC_DATA      = temperature sensor raw data measured by ADC
  *                                   (unit: digital value)
  *                Avg_Slope        = temperature sensor slope
  *                                   (unit: uV/Degree Celsius)
  *                TS_TYP_CALx_VOLT = temperature sensor digital value at
  *                                   temperature CALx_TEMP (unit: mV)
  *         Caution: Calculation relevancy under reserve the temperature sensor
  *                  of the current device has characteristics in line with
  *                  datasheet typical values.
  *                  If temperature sensor calibration values are available on
  *                  on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()),
  *                  temperature calculation will be more accurate using
  *                  helper macro @ref __LL_ADC_CALC_TEMPERATURE().
  * @note   As calculation input, the analog reference voltage (Vref+) must be
  *         defined as it impacts the ADC LSB equivalent voltage.
  * @note   Analog reference voltage (Vref+) must be either known from
  *         user board environment or can be calculated using ADC measurement
  *         and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
  * @note   ADC measurement data must correspond to a resolution of 16 bits
  *         (full scale digital value 4095). If not the case, the data must be
  *         preliminarily rescaled to an equivalent resolution of 16 bits.
  * @param  __TEMPSENSOR_TYP_AVGSLOPE__   Device datasheet data: Temperature sensor slope typical value (unit: uV/DegCelsius).
  *                                       On STM32H7, refer to device datasheet parameter "Avg_Slope".
  * @param  __TEMPSENSOR_TYP_CALX_V__     Device datasheet data: Temperature sensor voltage typical value (at temperature and Vref+ defined in parameters below) (unit: mV).
  *                                       On STM32H7, refer to device datasheet parameter "V30" (corresponding to TS_CAL1).
  * @param  __TEMPSENSOR_CALX_TEMP__      Device datasheet data: Temperature at which temperature sensor voltage (see parameter above) is corresponding (unit: mV)
  * @param  __VREFANALOG_VOLTAGE__        Analog voltage reference (Vref+) voltage (unit: mV)
  * @param  __TEMPSENSOR_ADC_DATA__       ADC conversion data of internal temperature sensor (unit: digital value).
  * @param  __ADC_RESOLUTION__            ADC resolution at which internal temperature sensor voltage has been measured.
  *         This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @retval Temperature (unit: degree Celsius)
  */
# 2555 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/**
  * @}
  */


/* Exported functions --------------------------------------------------------*/
/** @defgroup ADC_LL_Exported_Functions ADC Exported Functions
  * @{
  */

/** @defgroup ADC_LL_EF_DMA_Management ADC DMA management
  * @{
  */

/**
  * @brief  Function to help to configure DMA transfer from ADC: retrieve the
  *         ADC register address from ADC instance and a list of ADC registers
  *         intended to be used (most commonly) with DMA transfer.
  * @note   These ADC registers are data registers:
  *         when ADC conversion data is available in ADC data registers,
  *         ADC generates a DMA transfer request.
  * @note   This macro is intended to be used with LL DMA driver, refer to
  *         function "LL_DMA_ConfigAddresses()".
  *         Example:
  *           LL_DMA_ConfigAddresses(DMA1,
  *                                  LL_DMA_CHANNEL_1,
  *                                  LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA),
  *                                  (uint32_t)&< array or variable >,
  *                                  LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
  * @note   For devices with several ADC: in multimode, some devices
  *         use a different data register outside of ADC instance scope
  *         (common data register). This macro manages this register difference,
  *         only ADC instance has to be set as parameter.
  * @rmtoll DR       RDATA          LL_ADC_DMA_GetRegAddr\n
  *         CDR      RDATA_MST      LL_ADC_DMA_GetRegAddr\n
  *         CDR      RDATA_SLV      LL_ADC_DMA_GetRegAddr
  * @param  ADCx ADC instance
  * @param  Register This parameter can be one of the following values:
  *         @arg @ref LL_ADC_DMA_REG_REGULAR_DATA
  *         @arg @ref LL_ADC_DMA_REG_REGULAR_DATA_MULTI (1)
  *
  *         (1) Available on devices with several ADC instances.
  * @retval ADC register address
  */
static inline uint32_t LL_ADC_DMA_GetRegAddr(const ADC_TypeDef *ADCx, uint32_t Register)
{
  uint32_t data_reg_addr;

  if (Register == (0x00000000UL))
  {
    /* Retrieve address of register DR */
    data_reg_addr = (uint32_t) & (ADCx->DR);
  }
  else
  {
    /* Retrieve address of register CDR */
    data_reg_addr = (uint32_t) & ((((((ADCx) == ((ADC_TypeDef *) (((0x40000000UL) + 0x00020000UL) + 0x2000UL))) || ((ADCx) == ((ADC_TypeDef *) (((0x40000000UL) + 0x00020000UL) + 0x2100UL)))) ? ( (((ADC_Common_TypeDef *) (((0x40000000UL) + 0x00020000UL) + 0x2300UL))) ) : ( (((ADC_Common_TypeDef *) (((0x40000000UL) + 0x18020000UL) + 0x6300UL))) ) ))->CDR);
  }

  return data_reg_addr;
}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to several ADC instances
  * @{
  */

/**
  * @brief  Set parameter common to several ADC: Clock source and prescaler.
  * @note   On this STM32 series, if ADC group injected is used, some
  *         clock ratio constraints between ADC clock and AHB clock
  *         must be respected.
  *         Refer to reference manual.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         All ADC instances of the ADC common group must be disabled.
  *         This check can be done with function @ref LL_ADC_IsEnabled() for each
  *         ADC instance or by using helper macro helper macro
  *         @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
  * @rmtoll CCR      CKMODE         LL_ADC_SetCommonClock\n
  *         CCR      PRESC          LL_ADC_SetCommonClock
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @param  CommonClock This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1
  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV1
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV2
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV4
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV6
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV8
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV10
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV12
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV16
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV32
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV64
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV128
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV256
  * @retval None
  */
static inline void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock)
{
  (((ADCxy_COMMON->CCR)) = ((((((ADCxy_COMMON->CCR))) & (~((0x3UL << (16U)) | (0xFUL << (18U))))) | (CommonClock))));
}

/**
  * @brief  Get parameter common to several ADC: Clock source and prescaler.
  * @rmtoll CCR      CKMODE         LL_ADC_GetCommonClock\n
  *         CCR      PRESC          LL_ADC_GetCommonClock
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV1
  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV2
  *         @arg @ref LL_ADC_CLOCK_SYNC_PCLK_DIV4
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV1
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV2
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV4
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV6
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV8
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV10
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV12
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV16
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV32
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV64
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV128
  *         @arg @ref LL_ADC_CLOCK_ASYNC_DIV256
  */
static inline uint32_t LL_ADC_GetCommonClock(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return (uint32_t)(((ADCxy_COMMON->CCR) & ((0x3UL << (16U)) | (0xFUL << (18U)))));
}

/**
  * @brief  Set parameter common to several ADC: measurement path to internal
  *         channels (VrefInt, temperature sensor, ...).
  * @note   One or several values can be selected.
  *         Example: (LL_ADC_PATH_INTERNAL_VREFINT |
  *                   LL_ADC_PATH_INTERNAL_TEMPSENSOR)
  * @note   Stabilization time of measurement path to internal channel:
  *         After enabling internal paths, before starting ADC conversion,
  *         a delay is required for internal voltage reference and
  *         temperature sensor stabilization time.
  *         Refer to device datasheet.
  *         Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US.
  *         Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US.
  * @note   ADC internal channel sampling time constraint:
  *         For ADC conversion of internal channels,
  *         a sampling time minimum value is required.
  *         Refer to device datasheet.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         All ADC instances of the ADC common group must be disabled.
  *         This check can be done with function @ref LL_ADC_IsEnabled() for each
  *         ADC instance or by using helper macro helper macro
  *         @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
  * @rmtoll CCR      VREFEN         LL_ADC_SetCommonPathInternalCh\n
  *         CCR      TSEN           LL_ADC_SetCommonPathInternalCh\n
  *         CCR      VBATEN         LL_ADC_SetCommonPathInternalCh
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @param  PathInternal This parameter can be a combination of the following values:
  *         @arg @ref LL_ADC_PATH_INTERNAL_NONE
  *         @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
  *         @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
  *         @arg @ref LL_ADC_PATH_INTERNAL_VBAT
  * @retval None
  */
static inline void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal)
{
  (((ADCxy_COMMON->CCR)) = ((((((ADCxy_COMMON->CCR))) & (~((0x1UL << (22U)) | (0x1UL << (23U)) | (0x1UL << (24U))))) | (PathInternal))));
}

/**
  * @brief  Get parameter common to several ADC: measurement path to internal
  *         channels (VrefInt, temperature sensor, ...).
  * @note   One or several values can be selected.
  *         Example: (LL_ADC_PATH_INTERNAL_VREFINT |
  *                   LL_ADC_PATH_INTERNAL_TEMPSENSOR)
  * @rmtoll CCR      VREFEN         LL_ADC_GetCommonPathInternalCh\n
  *         CCR      TSEN           LL_ADC_GetCommonPathInternalCh\n
  *         CCR      VBATEN         LL_ADC_GetCommonPathInternalCh
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval Returned value can be a combination of the following values:
  *         @arg @ref LL_ADC_PATH_INTERNAL_NONE
  *         @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
  *         @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
  *         @arg @ref LL_ADC_PATH_INTERNAL_VBAT
  */
static inline uint32_t LL_ADC_GetCommonPathInternalCh(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return (uint32_t)(((ADCxy_COMMON->CCR) & ((0x1UL << (22U)) | (0x1UL << (23U)) | (0x1UL << (24U)))));
}

/**
  * @brief  Set parameter common to several ADC: measurement path to
  *         internal channels (VrefInt, temperature sensor, ...).
  *         Add paths to the current configuration.
  * @note   One or several values can be selected.
  *         Example: (LL_ADC_PATH_INTERNAL_VREFINT |
  *                   LL_ADC_PATH_INTERNAL_TEMPSENSOR)
  * @note   Stabilization time of measurement path to internal channel:
  *         After enabling internal paths, before starting ADC conversion,
  *         a delay is required for internal voltage reference and
  *         temperature sensor stabilization time.
  *         Refer to device datasheet.
  *         Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US.
  *         Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US.
  * @note   ADC internal channel sampling time constraint:
  *         For ADC conversion of internal channels,
  *         a sampling time minimum value is required.
  *         Refer to device datasheet.
  * @rmtoll CCR      VREFEN         LL_ADC_SetCommonPathInternalChAdd\n
  *         CCR      TSEN           LL_ADC_SetCommonPathInternalChAdd\n
  *         CCR      VBATEN        LL_ADC_SetCommonPathInternalChAdd
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @param  PathInternal This parameter can be a combination of the following values:
  *         @arg @ref LL_ADC_PATH_INTERNAL_NONE
  *         @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
  *         @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
  *         @arg @ref LL_ADC_PATH_INTERNAL_VBAT
  * @retval None
  */
static inline void LL_ADC_SetCommonPathInternalChAdd(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal)
{
  ((ADCxy_COMMON->CCR) |= (PathInternal));
}

/**
  * @brief  Set parameter common to several ADC: measurement path to
  *         internal channels (VrefInt, temperature sensor, ...).
  *         Remove paths to the current configuration.
  * @note   One or several values can be selected.
  *         Example: (LL_ADC_PATH_INTERNAL_VREFINT |
  *                   LL_ADC_PATH_INTERNAL_TEMPSENSOR)
  * @rmtoll CCR      VREFEN         LL_ADC_SetCommonPathInternalChRem\n
  *         CCR      TSEN           LL_ADC_SetCommonPathInternalChRem\n
  *         CCR      VBATEN        LL_ADC_SetCommonPathInternalChRem
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @param  PathInternal This parameter can be a combination of the following values:
  *         @arg @ref LL_ADC_PATH_INTERNAL_NONE
  *         @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
  *         @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
  *         @arg @ref LL_ADC_PATH_INTERNAL_VBAT
  * @retval None
  */
static inline void LL_ADC_SetCommonPathInternalChRem(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal)
{
  ((ADCxy_COMMON->CCR) &= ~(PathInternal));
}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC instance
  * @{
  */

/**
  * @brief  Set ADC calibration factor in the mode single-ended
  *         or differential (for devices with differential mode available).
  * @note   This function is intended to set calibration parameters
  *         without having to perform a new calibration using
  *         @ref LL_ADC_StartCalibration().
  * @note   For devices with differential mode available:
  *         Calibration of offset is specific to each of
  *         single-ended and differential modes
  *         (calibration factor must be specified for each of these
  *         differential modes, if used afterwards and if the application
  *         requires their calibration).
  *         Calibration of linearity is common to both
  *         single-ended and differential modes
  *         (calibration factor can be specified only once).
  * @note   In case of setting calibration factors of both modes single ended
  *         and differential (parameter LL_ADC_BOTH_SINGLE_DIFF_ENDED):
  *         both calibration factors must be concatenated.
  *         To perform this processing, use helper macro
  *         @ref __LL_ADC_CALIB_FACTOR_SINGLE_DIFF().
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be enabled, without calibration on going, without conversion
  *         on going on group regular.
  * @rmtoll CALFACT  CALFACT_S      LL_ADC_SetCalibrationOffsetFactor\n
  *         CALFACT  CALFACT_D      LL_ADC_SetCalibrationOffsetFactor
  * @param  ADCx ADC instance
  * @param  SingleDiff This parameter can be one of the following values:
  *         @arg @ref LL_ADC_SINGLE_ENDED
  *         @arg @ref LL_ADC_DIFFERENTIAL_ENDED
  *         @arg @ref LL_ADC_BOTH_SINGLE_DIFF_ENDED
  * @param  CalibrationFactor Value between Min_Data=0x00 and Max_Data=0x7F
  * @retval None
  */
static inline void LL_ADC_SetCalibrationOffsetFactor(ADC_TypeDef *ADCx, uint32_t SingleDiff, uint32_t CalibrationFactor)
{





  (((ADCx->CALFACT)) = ((((((ADCx->CALFACT))) & (~(SingleDiff & ((0x7FFUL << (16U)) | (0x7FFUL << (0U)))))) | (CalibrationFactor << (((SingleDiff & (0x00010000UL)) >> ((16UL) - 4UL)) & ~(SingleDiff & (0x7FFUL << (0U))))))))

                                                                                                                                                                      ;

}

/**
  * @brief  Get ADC calibration factor in the mode single-ended
  *         or differential (for devices with differential mode available).
  * @note   Calibration factors are set by hardware after performing
  *         a calibration run using function @ref LL_ADC_StartCalibration().
  * @note   For devices with differential mode available:
  *         Calibration of offset is specific to each of
  *         single-ended and differential modes
  *         Calibration of linearity is common to both
  *         single-ended and differential modes
  * @rmtoll CALFACT  CALFACT_S      LL_ADC_GetCalibrationOffsetFactor\n
  *         CALFACT  CALFACT_D      LL_ADC_GetCalibrationOffsetFactor
  * @param  ADCx ADC instance
  * @param  SingleDiff This parameter can be one of the following values:
  *         @arg @ref LL_ADC_SINGLE_ENDED
  *         @arg @ref LL_ADC_DIFFERENTIAL_ENDED
  * @retval Value between Min_Data=0x00 and Max_Data=0x7F
  */
static inline uint32_t LL_ADC_GetCalibrationOffsetFactor(const ADC_TypeDef *ADCx, uint32_t SingleDiff)
{
  /* Retrieve bits with position in register depending on parameter           */
  /* "SingleDiff".                                                            */
  /* Parameter used with mask "ADC_SINGLEDIFF_CALIB_FACTOR_MASK" because      */
  /* containing other bits reserved for other purpose.                        */



  return (uint32_t)(((ADCx->CALFACT) & ((SingleDiff & ((0x7FFUL << (16U)) | (0x7FFUL << (0U)))))) >> ((SingleDiff & (0x00010000UL)) >> ((16UL) - 4UL)));

}

/**
  * @brief  Set ADC Linear calibration factor in the mode single-ended.
  * @note   This function is intended to set linear calibration parameters
  *         without having to perform a new calibration using
  *         @ref LL_ADC_StartCalibration().
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be enabled, without calibration on going, without conversion
  *         on going on group regular.
  * @rmtoll CALFACT2  LINCALFACT      LL_ADC_SetCalibrationLinearFactor\n
  *         CALFACT2  LINCALFACT      LL_ADC_SetCalibrationLinearFactor
  * @param  ADCx ADC instance
  * @param  LinearityWord This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD1
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD2
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD3
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD4
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD5
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD6
  * @param  CalibrationFactor Value between Min_Data=0x00 and Max_Data=0x3FFFFFFF
  * @retval None
  */
static inline void LL_ADC_SetCalibrationLinearFactor(ADC_TypeDef *ADCx, uint32_t LinearityWord, uint32_t CalibrationFactor)
{
# 2939 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
  uint32_t timeout_cpu_cycles = (524400UL);
  (((ADCx->CALFACT2)) = ((((((ADCx->CALFACT2))) & (~((0x3FFFFFFFUL << (0U))))) | (CalibrationFactor))));
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~((0x1UL << (16U))))) | (LinearityWord))));
  while ((((ADCx->CR) & (LinearityWord)) == 0UL) && (timeout_cpu_cycles > 0UL))
  {
    timeout_cpu_cycles--;
  }

}

/**
  * @brief  Get ADC Linear calibration factor in the mode single-ended.
  * @note   Calibration factors are set by hardware after performing
  *         a calibration run using function @ref LL_ADC_StartCalibration().
  * @rmtoll CALFACT2  LINCALFACT      LL_ADC_GetCalibrationLinearFactor\n
  *         CALFACT2  LINCALFACT      LL_ADC_GetCalibrationLinearFactor
  * @param  ADCx ADC instance
  * @param  LinearityWord This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD1
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD2
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD3
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD4
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD5
  *         @arg @ref LL_ADC_CALIB_LINEARITY_WORD6
  * @retval Value between Min_Data=0x00 and Max_Data=0x3FFFFFFF
  */
static inline uint32_t LL_ADC_GetCalibrationLinearFactor(ADC_TypeDef *ADCx, uint32_t LinearityWord)
{
  uint32_t timeout_cpu_cycles = (524400UL);
  ((ADCx->CR) &= ~(LinearityWord));
  while ((((ADCx->CR) & (LinearityWord)) != 0UL) && (timeout_cpu_cycles > 0UL))
  {
    timeout_cpu_cycles--;
  }



  return (uint32_t)(((ADCx->CALFACT2) & ((0x3FFFFFFFUL << (0U)))));

}
/**
  * @brief  Set ADC resolution.
  *         Refer to reference manual for alignments formats
  *         dependencies to ADC resolutions.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll CFGR     RES            LL_ADC_SetResolution
  * @param  ADCx ADC instance
  * @param  Resolution This parameter can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  * @retval None
  */
static inline void LL_ADC_SetResolution(ADC_TypeDef *ADCx, uint32_t Resolution)
{
# 3027 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
  if ((((DBGMCU_TypeDef *) (0x5C001000UL))->IDCODE & 0x30000000UL) == 0x10000000UL)
  {
    (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x7UL << (2U))))) | (Resolution))));
  }
  else
  {
    if (((0x4UL << (2U)) ) == Resolution)
    {
      (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x7UL << (2U))))) | (Resolution | 0x0000000CUL))));
    }
    else
    {
      (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x7UL << (2U))))) | (Resolution))));
    }
  }


}

/**
  * @brief  Get ADC resolution.
  *         Refer to reference manual for alignments formats
  *         dependencies to ADC resolutions.
  * @rmtoll CFGR     RES            LL_ADC_GetResolution
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_RESOLUTION_16B (1)
  *         @arg @ref LL_ADC_RESOLUTION_14B
  *         @arg @ref LL_ADC_RESOLUTION_12B
  *         @arg @ref LL_ADC_RESOLUTION_10B
  *         @arg @ref LL_ADC_RESOLUTION_8B
  *         @arg @ref LL_ADC_RESOLUTION_6B  (2)
  *         (1): Specific to ADC instance: ADC1, ADC2
  *         (2): Specific to ADC instance: ADC3
  */
static inline uint32_t LL_ADC_GetResolution(const ADC_TypeDef *ADCx)
{
# 3086 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
  if ((((DBGMCU_TypeDef *) (0x5C001000UL))->IDCODE & 0x30000000UL) == 0x10000000UL)
  {
    return (uint32_t)(((ADCx->CFGR) & ((0x7UL << (2U)))));
  }
  else
  {
    if ((uint32_t)(((ADCx->CFGR) & ((0x7UL << (2U))))) == 0x0000001CUL)
    {
      return (((0x4UL << (2U)) ));
    }
    else
    {
      return (uint32_t)(((ADCx->CFGR) & ((0x7UL << (2U)))));
    }
  }


}

/**
  * @brief  Set ADC low power mode.
  * @note   Description of ADC low power modes:
  *         - ADC low power mode "auto wait": Dynamic low power mode,
  *           ADC conversions occurrences are limited to the minimum necessary
  *           in order to reduce power consumption.
  *           New ADC conversion starts only when the previous
  *           unitary conversion data (for ADC group regular)
  *           or previous sequence conversions data (for ADC group injected)
  *           has been retrieved by user software.
  *           In the meantime, ADC remains idle: does not performs any
  *           other conversion.
  *           This mode allows to automatically adapt the ADC conversions
  *           triggers to the speed of the software that reads the data.
  *           Moreover, this avoids risk of overrun for low frequency
  *           applications.
  *           How to use this low power mode:
  *           - It is not recommended to use with interruption or DMA
  *             since these modes have to clear immediately the EOC flag
  *             (by CPU to free the IRQ pending event or by DMA).
  *             Auto wait will work but fort a very short time, discarding
  *             its intended benefit (except specific case of high load of CPU
  *             or DMA transfers which can justify usage of auto wait).
  *           - Do use with polling: 1. Start conversion,
  *             2. Later on, when conversion data is needed: poll for end of
  *             conversion  to ensure that conversion is completed and
  *             retrieve ADC conversion data. This will trig another
  *             ADC conversion start.
  *         - ADC low power mode "auto power-off" (feature available on
  *           this device if parameter LL_ADC_LP_AUTOPOWEROFF is available):
  *           the ADC automatically powers-off after a conversion and
  *           automatically wakes up when a new conversion is triggered
  *           (with startup time between trigger and start of sampling).
  *           This feature can be combined with low power mode "auto wait".
  * @note   With ADC low power mode "auto wait", the ADC conversion data read
  *         is corresponding to previous ADC conversion start, independently
  *         of delay during which ADC was idle.
  *         Therefore, the ADC conversion data may be outdated: does not
  *         correspond to the current voltage level on the selected
  *         ADC channel.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll CFGR     AUTDLY         LL_ADC_SetLowPowerMode
  * @param  ADCx ADC instance
  * @param  LowPowerMode This parameter can be one of the following values:
  *         @arg @ref LL_ADC_LP_MODE_NONE
  *         @arg @ref LL_ADC_LP_AUTOWAIT
  * @retval None
  */
static inline void LL_ADC_SetLowPowerMode(ADC_TypeDef *ADCx, uint32_t LowPowerMode)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x1UL << (14U))))) | (LowPowerMode))));
}

/**
  * @brief  Get ADC low power mode:
  * @note   Description of ADC low power modes:
  *         - ADC low power mode "auto wait": Dynamic low power mode,
  *           ADC conversions occurrences are limited to the minimum necessary
  *           in order to reduce power consumption.
  *           New ADC conversion starts only when the previous
  *           unitary conversion data (for ADC group regular)
  *           or previous sequence conversions data (for ADC group injected)
  *           has been retrieved by user software.
  *           In the meantime, ADC remains idle: does not performs any
  *           other conversion.
  *           This mode allows to automatically adapt the ADC conversions
  *           triggers to the speed of the software that reads the data.
  *           Moreover, this avoids risk of overrun for low frequency
  *           applications.
  *           How to use this low power mode:
  *           - It is not recommended to use with interruption or DMA
  *             since these modes have to clear immediately the EOC flag
  *             (by CPU to free the IRQ pending event or by DMA).
  *             Auto wait will work but fort a very short time, discarding
  *             its intended benefit (except specific case of high load of CPU
  *             or DMA transfers which can justify usage of auto wait).
  *           - Do use with polling: 1. Start conversion,
  *             2. Later on, when conversion data is needed: poll for end of
  *             conversion  to ensure that conversion is completed and
  *             retrieve ADC conversion data. This will trig another
  *             ADC conversion start.
  *         - ADC low power mode "auto power-off" (feature available on
  *           this device if parameter LL_ADC_LP_AUTOPOWEROFF is available):
  *           the ADC automatically powers-off after a conversion and
  *           automatically wakes up when a new conversion is triggered
  *           (with startup time between trigger and start of sampling).
  *           This feature can be combined with low power mode "auto wait".
  * @note   With ADC low power mode "auto wait", the ADC conversion data read
  *         is corresponding to previous ADC conversion start, independently
  *         of delay during which ADC was idle.
  *         Therefore, the ADC conversion data may be outdated: does not
  *         correspond to the current voltage level on the selected
  *         ADC channel.
  * @rmtoll CFGR     AUTDLY         LL_ADC_GetLowPowerMode
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_LP_MODE_NONE
  *         @arg @ref LL_ADC_LP_AUTOWAIT
  */
static inline uint32_t LL_ADC_GetLowPowerMode(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR) & ((0x1UL << (14U)))));
}

/**
  * @brief  Set ADC selected Channel.
  * @note   This function set the pre-selection of channel configuration.
  * @note   Caution: Channel selections is dependent to ADC instance and IP version:
  *         For STM32H72x/3x This is applicable only for ADC1/ADC2
  *         For Rest of STM32H7xxx This is applicable only all the ADCs instances.
  *
  * @param  ADCx ADC instance
  * @param  Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0
  *         @arg @ref LL_ADC_CHANNEL_1
  *         @arg @ref LL_ADC_CHANNEL_2
  *         @arg @ref LL_ADC_CHANNEL_3
  *         @arg @ref LL_ADC_CHANNEL_4
  *         @arg @ref LL_ADC_CHANNEL_5
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  * @retval None
  */
static inline void LL_ADC_SetChannelPreselection(ADC_TypeDef *ADCx, uint32_t Channel)
{







    /* ADC channels preselection */
    ADCx->PCSEL |= (1UL << (((((Channel) & ((0xFFFFFUL << (0U)))) == 0UL) ? ( ((Channel) & ((0x1FUL << (26U)))) >> (26UL) ) : ( (uint32_t)(__CLZ(__RBIT((Channel)))) ) ) & 0x1FUL));

}

/**
  * @brief  Gets ADC pre-selected Channel.
  * @note   This function gets the pre-selected ADC channel.
  * @note   Caution: Channel selections is dependent to ADC instance and IP version:
  *         For STM32H72x/3x This is applicable only for ADC1/ADC2
  *         For Rest of STM32H7xxx This is applicable on all the ADCs instances.
  *
  * @param  ADCx ADC instance
  * @param  Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0
  *         @arg @ref LL_ADC_CHANNEL_1
  *         @arg @ref LL_ADC_CHANNEL_2
  *         @arg @ref LL_ADC_CHANNEL_3
  *         @arg @ref LL_ADC_CHANNEL_4
  *         @arg @ref LL_ADC_CHANNEL_5
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  * @retval the preselection state of Channel (!= 0 : pre-selected, == 0 : not pre-selected)
  */
static inline uint32_t LL_ADC_GetChannelPreselection(const ADC_TypeDef *ADCx, uint32_t Channel)
{
# 3301 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
    /* Gets preselected ADC channel */
    return (uint32_t)(((ADCx->PCSEL) & (1UL << (((((Channel) & ((0xFFFFFUL << (0U)))) == 0UL) ? ( ((Channel) & ((0x1FUL << (26U)))) >> (26UL) ) : ( (uint32_t)(__CLZ(__RBIT((Channel)))) ) ) & 0x1FUL))));

}

/**
  * @brief  Set ADC selected offset number 1, 2, 3 or 4.
  * @note   This function set the 2 items of offset configuration:
  *         - ADC channel to which the offset programmed will be applied
  *           (independently of channel mapped on ADC group regular
  *           or group injected)
  *         - Offset level (offset to be subtracted from the raw
  *           converted data).
  * @note   Caution: Offset format is dependent to ADC resolution:
  *         offset has to be left-aligned on bit 15 (handling maximum ADC resolution 16 bit),
  *         the LSB (right bits) are set to 0.
  * @note   This function enables the offset, by default. It can be forced
  *         to disable state using function LL_ADC_SetOffsetState().
  * @note   If a channel is mapped on several offsets numbers, only the offset
  *         with the lowest value is considered for the subtraction.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @note   On STM32H7, some fast channels are available: fast analog inputs
  *         coming from GPIO pads (ADC_IN0..5).
  * @rmtoll OFR1     OFFSET1_CH     LL_ADC_SetOffset\n
  *         OFR1     OFFSET1        LL_ADC_SetOffset\n
  *         OFR1     OFFSET1_EN     LL_ADC_SetOffset\n
  *         OFR2     OFFSET2_CH     LL_ADC_SetOffset\n
  *         OFR2     OFFSET2        LL_ADC_SetOffset\n
  *         OFR2     OFFSET2_EN     LL_ADC_SetOffset\n
  *         OFR3     OFFSET3_CH     LL_ADC_SetOffset\n
  *         OFR3     OFFSET3        LL_ADC_SetOffset\n
  *         OFR3     OFFSET3_EN     LL_ADC_SetOffset\n
  *         OFR4     OFFSET4_CH     LL_ADC_SetOffset\n
  *         OFR4     OFFSET4        LL_ADC_SetOffset\n
  *         OFR4     OFFSET4_EN     LL_ADC_SetOffset
  * @param  ADCx ADC instance
  * @param  Offsety This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_1
  *         @arg @ref LL_ADC_OFFSET_2
  *         @arg @ref LL_ADC_OFFSET_3
  *         @arg @ref LL_ADC_OFFSET_4
  * @param  Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @param  OffsetLevel Value between Min_Data=0x000 and Max_Data=0x3FFFFFF
  * @retval None
  */
static inline void LL_ADC_SetOffset(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t Channel, uint32_t OffsetLevel)
{
  volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->OFR1)) + ((Offsety) << 2UL))));
# 3391 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
  {
    (((*preg)) = ((((((*preg))) & (~((0x1FUL << (26U)) | (0x3FFFFFFUL << (0U))))) | ((Channel & ((0x1FUL << (26U)))) | OffsetLevel))))

                                                                    ;
  }
}

/**
  * @brief  Get for the ADC selected offset number 1, 2, 3 or 4:
  *         Channel to which the offset programmed will be applied
  *         (independently of channel mapped on ADC group regular
  *         or group injected)
  * @note   Usage of the returned channel number:
  *         - To reinject this channel into another function LL_ADC_xxx:
  *           the returned channel number is only partly formatted on definition
  *           of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
  *           with parts of literals LL_ADC_CHANNEL_x or using
  *           helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
  *           Then the selected literal LL_ADC_CHANNEL_x can be used
  *           as parameter for another function.
  *         - To get the channel number in decimal format:
  *           process the returned value with the helper macro
  *           @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
  * @note   On STM32H7, some fast channels are available: fast analog inputs
  *         coming from GPIO pads (ADC_IN0..5).
  * @rmtoll OFR1     OFFSET1_CH     LL_ADC_GetOffsetChannel\n
  *         OFR2     OFFSET2_CH     LL_ADC_GetOffsetChannel\n
  *         OFR3     OFFSET3_CH     LL_ADC_GetOffsetChannel\n
  *         OFR4     OFFSET4_CH     LL_ADC_GetOffsetChannel
  * @param  ADCx ADC instance
  * @param  Offsety This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_1
  *         @arg @ref LL_ADC_OFFSET_2
  *         @arg @ref LL_ADC_OFFSET_3
  *         @arg @ref LL_ADC_OFFSET_4
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).\n
  *         (1, 2) For ADC channel read back from ADC register,
  *                comparison with internal channel parameter to be done
  *                using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
  */
static inline uint32_t LL_ADC_GetOffsetChannel(const ADC_TypeDef *ADCx, uint32_t Offsety)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->OFR1)) + ((Offsety) << 2UL))));

  return (uint32_t) ((*preg) & ((0x1FUL << (26U))));
}

/**
  * @brief  Get for the ADC selected offset number 1, 2, 3 or 4:
  *         Offset level (offset to be subtracted from the raw
  *         converted data).
  * @note   Caution: Offset format is dependent to ADC resolution:
  *         offset has to be left-aligned on bit 15 (handling maximum ADC resolution 16 bit),
  *         the LSB (right bits) are set to 0.
  * @rmtoll OFR1     OFFSET1        LL_ADC_GetOffsetLevel\n
  *         OFR2     OFFSET2        LL_ADC_GetOffsetLevel\n
  *         OFR3     OFFSET3        LL_ADC_GetOffsetLevel\n
  *         OFR4     OFFSET4        LL_ADC_GetOffsetLevel
  * @param  ADCx ADC instance
  * @param  Offsety This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_1
  *         @arg @ref LL_ADC_OFFSET_2
  *         @arg @ref LL_ADC_OFFSET_3
  *         @arg @ref LL_ADC_OFFSET_4
  * @retval Value between Min_Data=0x000 and Max_Data=0x3FFFFFF
  */
static inline uint32_t LL_ADC_GetOffsetLevel(const ADC_TypeDef *ADCx, uint32_t Offsety)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->OFR1)) + ((Offsety) << 2UL))));

  return (uint32_t) ((*preg) & ((0x3FFFFFFUL << (0U))));
}


/**
  * @brief  Set data right shift for the ADC selected offset number 1, 2, 3 or 4:
  *         signed offset saturation if enabled or disabled.
  * @rmtoll CFGR2    RSHIFT          LL_ADC_SetDataRightShift\n
  * @param  ADCx ADC instance
  * @param  Offsety This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_1
  *         @arg @ref LL_ADC_OFFSET_2
  *         @arg @ref LL_ADC_OFFSET_3
  *         @arg @ref LL_ADC_OFFSET_4
  * @param  RigthShift This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_RSHIFT_ENABLE
  *         @arg @ref LL_ADC_OFFSET_RSHIFT_DISABLE
  * @retval Returned None
  */
static inline void LL_ADC_SetDataRightShift(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t RigthShift)
{
  (((ADCx->CFGR2)) = ((((((ADCx->CFGR2))) & (~(((0x1UL << (11U)) | (0x1UL << (12U)) | (0x1UL << (13U)) | (0x1UL << (14U)))))) | (RigthShift << (Offsety & 0x1FUL)))));
}

/**
  * @brief  Get data right shift for the ADC selected offset number 1, 2, 3 or 4:
  *         signed offset saturation if enabled or disabled.
  * @rmtoll CFGR2    RSHIFT          LL_ADC_GetDataRightShift\n
  * @param  ADCx ADC instance
  * @param  Offsety This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_1
  *         @arg @ref LL_ADC_OFFSET_2
  *         @arg @ref LL_ADC_OFFSET_3
  *         @arg @ref LL_ADC_OFFSET_4
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_RSHIFT_ENABLE
  *         @arg @ref LL_ADC_OFFSET_RSHIFT_DISABLE
  */
static inline uint32_t LL_ADC_GetDataRightShift(const ADC_TypeDef *ADCx, uint32_t Offsety)
{
  return (uint32_t)((((ADCx->CFGR2) & (((0x1UL << (11U)) << (Offsety & 0x1FUL))))) >> (Offsety & 0x1FUL));
}

/**
  * @brief  Set signed saturation for the ADC selected offset number 1, 2, 3 or 4:
  *         signed offset saturation if enabled or disabled.
  * @rmtoll OFR1     SSATE          LL_ADC_SetOffsetSignedSaturation\n
  *         OFR2     SSATE          LL_ADC_SetOffsetSignedSaturation\n
  *         OFR3     SSATE          LL_ADC_SetOffsetSignedSaturation\n
  *         OFR4     SSATE          LL_ADC_SetOffsetSignedSaturation
  * @param  ADCx ADC instance
  * @param  Offsety This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_1
  *         @arg @ref LL_ADC_OFFSET_2
  *         @arg @ref LL_ADC_OFFSET_3
  *         @arg @ref LL_ADC_OFFSET_4
  * @param  OffsetSignedSaturation This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_SIGNED_SATURATION_ENABLE
  *         @arg @ref LL_ADC_OFFSET_SIGNED_SATURATION_DISABLE
  * @retval Returned None
  */
static inline void LL_ADC_SetOffsetSignedSaturation(ADC_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetSignedSaturation)
{







  {
    volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->OFR1)) + ((Offsety) << 2UL))));
    (((*preg)) = ((((((*preg))) & (~((0x1UL << (31U))))) | (OffsetSignedSaturation))));
  }
}

/**
  * @brief  Get signed saturation for the ADC selected offset number 1, 2, 3 or 4:
  *         signed offset saturation if enabled or disabled.
  * @rmtoll OFR1     SSATE          LL_ADC_GetOffsetSignedSaturation\n
  *         OFR2     SSATE          LL_ADC_GetOffsetSignedSaturation\n
  *         OFR3     SSATE          LL_ADC_GetOffsetSignedSaturation\n
  *         OFR4     SSATE          LL_ADC_GetOffsetSignedSaturation
  * @param  ADCx ADC instance
  * @param  Offsety This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_1
  *         @arg @ref LL_ADC_OFFSET_2
  *         @arg @ref LL_ADC_OFFSET_3
  *         @arg @ref LL_ADC_OFFSET_4
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_OFFSET_SIGNED_SATURATION_ENABLE
  *         @arg @ref LL_ADC_OFFSET_SIGNED_SATURATION_DISABLE
  */
static inline uint32_t LL_ADC_GetOffsetSignedSaturation(const ADC_TypeDef *ADCx, uint32_t Offsety)
{
# 3594 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
  {
    const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->OFR1)) + ((Offsety) << 2UL))));
    return (uint32_t) ((*preg) & ((0x1UL << (31U))));
  }
}
# 3805 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: group regular
  * @{
  */

/**
  * @brief  Set ADC group regular conversion trigger source:
  *         internal (SW start) or from external peripheral (timer event,
  *         external interrupt line).
  * @note   On this STM32 series, setting trigger source to external trigger
  *         also set trigger polarity to rising edge
  *         (default setting for compatibility with some ADC on other
  *         STM32 families having this setting set by HW default value).
  *         In case of need to modify trigger edge, use
  *         function @ref LL_ADC_REG_SetTriggerEdge().
  * @note   Availability of parameters of trigger sources from timer
  *         depends on timers availability on the selected device.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on group regular.
  * @rmtoll CFGR     EXTSEL         LL_ADC_REG_SetTriggerSource\n
  *         CFGR     EXTEN          LL_ADC_REG_SetTriggerSource
  * @param  ADCx ADC instance
  * @param  TriggerSource This parameter can be one of the following values:
  *         @arg @ref LL_ADC_REG_TRIG_SOFTWARE
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
  *         @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4
  *         @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1
  *         @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3
  *         @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM1_OUT
  *         @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM2_OUT
  *         @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM3_OUT
  * @retval None
  */
static inline void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x3UL << (10U)) | (0x1FUL << (5U))))) | (TriggerSource))));
}

/**
  * @brief  Get ADC group regular conversion trigger source:
  *         internal (SW start) or from external peripheral (timer event,
  *         external interrupt line).
  * @note   To determine whether group regular trigger source is
  *         internal (SW start) or external, without detail
  *         of which peripheral is selected as external trigger,
  *         (equivalent to
  *         "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)")
  *         use function @ref LL_ADC_REG_IsTriggerSourceSWStart.
  * @note   Availability of parameters of trigger sources from timer
  *         depends on timers availability on the selected device.
  * @rmtoll CFGR     EXTSEL         LL_ADC_REG_GetTriggerSource\n
  *         CFGR     EXTEN          LL_ADC_REG_GetTriggerSource
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_REG_TRIG_SOFTWARE
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH1
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH2
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_CH3
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
  *         @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM8_TRGO2
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM1_TRGO2
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM15_TRGO
  *         @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH4
  *         @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG1
  *         @arg @ref LL_ADC_REG_TRIG_EXT_HRTIM_TRG3
  *         @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM1_OUT
  *         @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM2_OUT
  *         @arg @ref LL_ADC_REG_TRIG_EXT_LPTIM3_OUT
  */
static inline uint32_t LL_ADC_REG_GetTriggerSource(const ADC_TypeDef *ADCx)
{
  volatile uint32_t TriggerSource = ((ADCx->CFGR) & ((0x1FUL << (5U)) | (0x3UL << (10U))));

  /* Value for shift of {0; 4; 8; 12} depending on value of bitfield          */
  /* corresponding to ADC_CFGR_EXTEN {0; 1; 2; 3}.                            */
  uint32_t ShiftExten = ((TriggerSource & (0x3UL << (10U))) >> ((10UL) - 2UL));

  /* Set bitfield corresponding to ADC_CFGR_EXTEN and ADC_CFGR_EXTSEL         */
  /* to match with triggers literals definition.                              */
  return ((TriggerSource
           & (((((0x00000000UL) & (0x1FUL << (5U))) << (4U * 0UL)) | (((0x1FUL << (5U))) << (4U * 1UL)) | (((0x1FUL << (5U))) << (4U * 2UL)) | (((0x1FUL << (5U))) << (4U * 3UL)) ) >> ShiftExten) & (0x1FUL << (5U)))
          | ((((((0x00000000UL) & (0x3UL << (10U))) << (4U * 0UL)) | ((((0x1UL << (10U)))) << (4U * 1UL)) | ((((0x1UL << (10U)))) << (4U * 2UL)) | ((((0x1UL << (10U)))) << (4U * 3UL)) ) >> ShiftExten) & (0x3UL << (10U)))
         );
}

/**
  * @brief  Get ADC group regular conversion trigger source internal (SW start)
  *         or external.
  * @note   In case of group regular trigger source set to external trigger,
  *         to determine which peripheral is selected as external trigger,
  *         use function @ref LL_ADC_REG_GetTriggerSource().
  * @rmtoll CFGR     EXTEN          LL_ADC_REG_IsTriggerSourceSWStart
  * @param  ADCx ADC instance
  * @retval Value "0" if trigger source external trigger
  *         Value "1" if trigger source SW start.
  */
static inline uint32_t LL_ADC_REG_IsTriggerSourceSWStart(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CFGR) & ((0x3UL << (10U)))) == ((0x00000000UL) & (0x3UL << (10U)))) ? 1UL : 0UL);
}

/**
  * @brief  Set ADC group regular conversion trigger polarity.
  * @note   Applicable only for trigger source set to external trigger.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on group regular.
  * @rmtoll CFGR     EXTEN          LL_ADC_REG_SetTriggerEdge
  * @param  ADCx ADC instance
  * @param  ExternalTriggerEdge This parameter can be one of the following values:
  *         @arg @ref LL_ADC_REG_TRIG_EXT_RISING
  *         @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
  *         @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
  * @retval None
  */
static inline void LL_ADC_REG_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x3UL << (10U))))) | (ExternalTriggerEdge))));
}

/**
  * @brief  Get ADC group regular conversion trigger polarity.
  * @note   Applicable only for trigger source set to external trigger.
  * @rmtoll CFGR     EXTEN          LL_ADC_REG_GetTriggerEdge
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_REG_TRIG_EXT_RISING
  *         @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
  *         @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
  */
static inline uint32_t LL_ADC_REG_GetTriggerEdge(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR) & ((0x3UL << (10U)))));
}
# 4000 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Set ADC group regular sequencer length and scan direction.
  * @note   Description of ADC group regular sequencer features:
  *         - For devices with sequencer fully configurable
  *           (function "LL_ADC_REG_SetSequencerRanks()" available):
  *           sequencer length and each rank affectation to a channel
  *           are configurable.
  *           This function performs configuration of:
  *           - Sequence length: Number of ranks in the scan sequence.
  *           - Sequence direction: Unless specified in parameters, sequencer
  *             scan direction is forward (from rank 1 to rank n).
  *           Sequencer ranks are selected using
  *           function "LL_ADC_REG_SetSequencerRanks()".
  *         - For devices with sequencer not fully configurable
  *           (function "LL_ADC_REG_SetSequencerChannels()" available):
  *           sequencer length and each rank affectation to a channel
  *           are defined by channel number.
  *           This function performs configuration of:
  *           - Sequence length: Number of ranks in the scan sequence is
  *             defined by number of channels set in the sequence,
  *             rank of each channel is fixed by channel HW number.
  *             (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
  *           - Sequence direction: Unless specified in parameters, sequencer
  *             scan direction is forward (from lowest channel number to
  *             highest channel number).
  *           Sequencer ranks are selected using
  *           function "LL_ADC_REG_SetSequencerChannels()".
  * @note   Sequencer disabled is equivalent to sequencer of 1 rank:
  *         ADC conversion on only 1 channel.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on group regular.
  * @rmtoll SQR1     L              LL_ADC_REG_SetSequencerLength
  * @param  ADCx ADC instance
  * @param  SequencerNbRanks This parameter can be one of the following values:
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
  * @retval None
  */
static inline void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
{
  (((ADCx->SQR1)) = ((((((ADCx->SQR1))) & (~((0xFUL << (0U))))) | (SequencerNbRanks))));
}

/**
  * @brief  Get ADC group regular sequencer length and scan direction.
  * @note   Description of ADC group regular sequencer features:
  *         - For devices with sequencer fully configurable
  *           (function "LL_ADC_REG_SetSequencerRanks()" available):
  *           sequencer length and each rank affectation to a channel
  *           are configurable.
  *           This function retrieves:
  *           - Sequence length: Number of ranks in the scan sequence.
  *           - Sequence direction: Unless specified in parameters, sequencer
  *             scan direction is forward (from rank 1 to rank n).
  *           Sequencer ranks are selected using
  *           function "LL_ADC_REG_SetSequencerRanks()".
  *         - For devices with sequencer not fully configurable
  *           (function "LL_ADC_REG_SetSequencerChannels()" available):
  *           sequencer length and each rank affectation to a channel
  *           are defined by channel number.
  *           This function retrieves:
  *           - Sequence length: Number of ranks in the scan sequence is
  *             defined by number of channels set in the sequence,
  *             rank of each channel is fixed by channel HW number.
  *             (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
  *           - Sequence direction: Unless specified in parameters, sequencer
  *             scan direction is forward (from lowest channel number to
  *             highest channel number).
  *           Sequencer ranks are selected using
  *           function "LL_ADC_REG_SetSequencerChannels()".
  * @note   Sequencer disabled is equivalent to sequencer of 1 rank:
  *         ADC conversion on only 1 channel.
  * @rmtoll SQR1     L              LL_ADC_REG_GetSequencerLength
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
  *         @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
  */
static inline uint32_t LL_ADC_REG_GetSequencerLength(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->SQR1) & ((0xFUL << (0U)))));
}

/**
  * @brief  Set ADC group regular sequencer discontinuous mode:
  *         sequence subdivided and scan conversions interrupted every selected
  *         number of ranks.
  * @note   It is not possible to enable both ADC group regular
  *         continuous mode and sequencer discontinuous mode.
  * @note   It is not possible to enable both ADC auto-injected mode
  *         and ADC group regular sequencer discontinuous mode.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on group regular.
  * @rmtoll CFGR     DISCEN         LL_ADC_REG_SetSequencerDiscont\n
  *         CFGR     DISCNUM        LL_ADC_REG_SetSequencerDiscont
  * @param  ADCx ADC instance
  * @param  SeqDiscont This parameter can be one of the following values:
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
  * @retval None
  */
static inline void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x1UL << (16U)) | (0x7UL << (17U))))) | (SeqDiscont))));
}

/**
  * @brief  Get ADC group regular sequencer discontinuous mode:
  *         sequence subdivided and scan conversions interrupted every selected
  *         number of ranks.
  * @rmtoll CFGR     DISCEN         LL_ADC_REG_GetSequencerDiscont\n
  *         CFGR     DISCNUM        LL_ADC_REG_GetSequencerDiscont
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
  *         @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
  */
static inline uint32_t LL_ADC_REG_GetSequencerDiscont(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR) & ((0x1UL << (16U)) | (0x7UL << (17U)))));
}

/**
  * @brief  Set ADC group regular sequence: channel on the selected
  *         scan sequence rank.
  * @note   This function performs configuration of:
  *         - Channels ordering into each rank of scan sequence:
  *           whatever channel can be placed into whatever rank.
  * @note   On this STM32 series, ADC group regular sequencer is
  *         fully configurable: sequencer length and each rank
  *         affectation to a channel are configurable.
  *         Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
  * @note   Depending on devices and packages, some channels may not be available.
  *         Refer to device datasheet for channels availability.
  * @note   On this STM32 series, to measure internal channels (VrefInt,
  *         TempSensor, ...), measurement paths to internal channels must be
  *         enabled separately.
  *         This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on group regular.
  * @rmtoll SQR1     SQ1            LL_ADC_REG_SetSequencerRanks\n
  *         SQR1     SQ2            LL_ADC_REG_SetSequencerRanks\n
  *         SQR1     SQ3            LL_ADC_REG_SetSequencerRanks\n
  *         SQR1     SQ4            LL_ADC_REG_SetSequencerRanks\n
  *         SQR2     SQ5            LL_ADC_REG_SetSequencerRanks\n
  *         SQR2     SQ6            LL_ADC_REG_SetSequencerRanks\n
  *         SQR2     SQ7            LL_ADC_REG_SetSequencerRanks\n
  *         SQR2     SQ8            LL_ADC_REG_SetSequencerRanks\n
  *         SQR2     SQ9            LL_ADC_REG_SetSequencerRanks\n
  *         SQR3     SQ10           LL_ADC_REG_SetSequencerRanks\n
  *         SQR3     SQ11           LL_ADC_REG_SetSequencerRanks\n
  *         SQR3     SQ12           LL_ADC_REG_SetSequencerRanks\n
  *         SQR3     SQ13           LL_ADC_REG_SetSequencerRanks\n
  *         SQR3     SQ14           LL_ADC_REG_SetSequencerRanks\n
  *         SQR4     SQ15           LL_ADC_REG_SetSequencerRanks\n
  *         SQR4     SQ16           LL_ADC_REG_SetSequencerRanks
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_REG_RANK_1
  *         @arg @ref LL_ADC_REG_RANK_2
  *         @arg @ref LL_ADC_REG_RANK_3
  *         @arg @ref LL_ADC_REG_RANK_4
  *         @arg @ref LL_ADC_REG_RANK_5
  *         @arg @ref LL_ADC_REG_RANK_6
  *         @arg @ref LL_ADC_REG_RANK_7
  *         @arg @ref LL_ADC_REG_RANK_8
  *         @arg @ref LL_ADC_REG_RANK_9
  *         @arg @ref LL_ADC_REG_RANK_10
  *         @arg @ref LL_ADC_REG_RANK_11
  *         @arg @ref LL_ADC_REG_RANK_12
  *         @arg @ref LL_ADC_REG_RANK_13
  *         @arg @ref LL_ADC_REG_RANK_14
  *         @arg @ref LL_ADC_REG_RANK_15
  *         @arg @ref LL_ADC_REG_RANK_16
  * @param  Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval None
  */
static inline void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
{
  /* Set bits with content of parameter "Channel" with bits position          */
  /* in register and register position depending on parameter "Rank".         */
  /* Parameters "Rank" and "Channel" are used with masks because containing   */
  /* other bits reserved for other purpose.                                   */
  volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->SQR1)) + ((((Rank & ((0x00000000UL) | (0x00000100UL) | (0x00000200UL) | (0x00000300UL))) >> (8UL))) << 2UL))));

  (((*preg)) = ((((((*preg))) & (~(((0x1FUL << (0U))) << (Rank & (((0x1FUL << (0U)))))))) | (((Channel & ((0x1FUL << (26U)))) >> (26UL)) << (Rank & (((0x1FUL << (0U)))))))))

                                                                                                                                   ;
}

/**
  * @brief  Get ADC group regular sequence: channel on the selected
  *         scan sequence rank.
  * @note   On this STM32 series, ADC group regular sequencer is
  *         fully configurable: sequencer length and each rank
  *         affectation to a channel are configurable.
  *         Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
  * @note   Depending on devices and packages, some channels may not be available.
  *         Refer to device datasheet for channels availability.
  * @note   Usage of the returned channel number:
  *         - To reinject this channel into another function LL_ADC_xxx:
  *           the returned channel number is only partly formatted on definition
  *           of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
  *           with parts of literals LL_ADC_CHANNEL_x or using
  *           helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
  *           Then the selected literal LL_ADC_CHANNEL_x can be used
  *           as parameter for another function.
  *         - To get the channel number in decimal format:
  *           process the returned value with the helper macro
  *           @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
  * @rmtoll SQR1     SQ1            LL_ADC_REG_GetSequencerRanks\n
  *         SQR1     SQ2            LL_ADC_REG_GetSequencerRanks\n
  *         SQR1     SQ3            LL_ADC_REG_GetSequencerRanks\n
  *         SQR1     SQ4            LL_ADC_REG_GetSequencerRanks\n
  *         SQR2     SQ5            LL_ADC_REG_GetSequencerRanks\n
  *         SQR2     SQ6            LL_ADC_REG_GetSequencerRanks\n
  *         SQR2     SQ7            LL_ADC_REG_GetSequencerRanks\n
  *         SQR2     SQ8            LL_ADC_REG_GetSequencerRanks\n
  *         SQR2     SQ9            LL_ADC_REG_GetSequencerRanks\n
  *         SQR3     SQ10           LL_ADC_REG_GetSequencerRanks\n
  *         SQR3     SQ11           LL_ADC_REG_GetSequencerRanks\n
  *         SQR3     SQ12           LL_ADC_REG_GetSequencerRanks\n
  *         SQR3     SQ13           LL_ADC_REG_GetSequencerRanks\n
  *         SQR3     SQ14           LL_ADC_REG_GetSequencerRanks\n
  *         SQR4     SQ15           LL_ADC_REG_GetSequencerRanks\n
  *         SQR4     SQ16           LL_ADC_REG_GetSequencerRanks
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_REG_RANK_1
  *         @arg @ref LL_ADC_REG_RANK_2
  *         @arg @ref LL_ADC_REG_RANK_3
  *         @arg @ref LL_ADC_REG_RANK_4
  *         @arg @ref LL_ADC_REG_RANK_5
  *         @arg @ref LL_ADC_REG_RANK_6
  *         @arg @ref LL_ADC_REG_RANK_7
  *         @arg @ref LL_ADC_REG_RANK_8
  *         @arg @ref LL_ADC_REG_RANK_9
  *         @arg @ref LL_ADC_REG_RANK_10
  *         @arg @ref LL_ADC_REG_RANK_11
  *         @arg @ref LL_ADC_REG_RANK_12
  *         @arg @ref LL_ADC_REG_RANK_13
  *         @arg @ref LL_ADC_REG_RANK_14
  *         @arg @ref LL_ADC_REG_RANK_15
  *         @arg @ref LL_ADC_REG_RANK_16
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).\n
  *         (1, 2) For ADC channel read back from ADC register,
  *                comparison with internal channel parameter to be done
  *                using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
  */
static inline uint32_t LL_ADC_REG_GetSequencerRanks(const ADC_TypeDef *ADCx, uint32_t Rank)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->SQR1)) + ((((Rank & ((0x00000000UL) | (0x00000100UL) | (0x00000200UL) | (0x00000300UL))) >> (8UL))) << 2UL))));

  return (uint32_t)((((*preg) & (((0x1FUL << (0U))) << (Rank & (((0x1FUL << (0U)))))))

                     >> (Rank & (((0x1FUL << (0U)))))) << (26UL)
                   );
}

/**
  * @brief  Set ADC continuous conversion mode on ADC group regular.
  * @note   Description of ADC continuous conversion mode:
  *         - single mode: one conversion per trigger
  *         - continuous mode: after the first trigger, following
  *           conversions launched successively automatically.
  * @note   It is not possible to enable both ADC group regular
  *         continuous mode and sequencer discontinuous mode.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on group regular.
  * @rmtoll CFGR     CONT           LL_ADC_REG_SetContinuousMode
  * @param  ADCx ADC instance
  * @param  Continuous This parameter can be one of the following values:
  *         @arg @ref LL_ADC_REG_CONV_SINGLE
  *         @arg @ref LL_ADC_REG_CONV_CONTINUOUS
  * @retval None
  */
static inline void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x1UL << (13U))))) | (Continuous))));
}

/**
  * @brief  Get ADC continuous conversion mode on ADC group regular.
  * @note   Description of ADC continuous conversion mode:
  *         - single mode: one conversion per trigger
  *         - continuous mode: after the first trigger, following
  *           conversions launched successively automatically.
  * @rmtoll CFGR     CONT           LL_ADC_REG_GetContinuousMode
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_REG_CONV_SINGLE
  *         @arg @ref LL_ADC_REG_CONV_CONTINUOUS
  */
static inline uint32_t LL_ADC_REG_GetContinuousMode(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR) & ((0x1UL << (13U)))));
}
/**
  * @brief  Set ADC data transfer mode
  * @note   Conversion data can be either:
  *            - Available in Data Register
  *            - Transferred by DMA in one shot mode
  *            - Transferred by DMA in circular mode
  *            - Transferred to DFSDM data register
  * @rmtoll CFGR     DMNGT           LL_ADC_REG_SetDataTransferMode
  * @param  ADCx ADC instance
  * @param  DataTransferMode Select Data Management configuration
  * @retval None
  */
static inline void LL_ADC_REG_SetDataTransferMode(ADC_TypeDef *ADCx, uint32_t DataTransferMode)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x3UL << (0U))))) | (DataTransferMode))));
}
# 4532 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @brief  Get ADC data transfer mode
  * @note   Conversion data can be either:
  *            - Available in Data Register
  *            - Transferred by DMA in one shot mode
  *            - Transferred by DMA in circular mode
  *            - Transferred to DFSDM data register
  * @rmtoll CFGR     DMNGT           LL_ADC_REG_GetDataTransferMode
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_REG_DR_TRANSFER
  *         @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
  *         @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
  *         @arg @ref LL_ADC_REG_DFSDM_TRANSFER
  */
static inline uint32_t LL_ADC_REG_GetDataTransferMode(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR) & ((0x3UL << (0U)))));
}


/**
  * @brief  Set ADC group regular behavior in case of overrun:
  *         data preserved or overwritten.
  * @note   Compatibility with devices without feature overrun:
  *         other devices without this feature have a behavior
  *         equivalent to data overwritten.
  *         The default setting of overrun is data preserved.
  *         Therefore, for compatibility with all devices, parameter
  *         overrun should be set to data overwritten.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on group regular.
  * @rmtoll CFGR     OVRMOD         LL_ADC_REG_SetOverrun
  * @param  ADCx ADC instance
  * @param  Overrun This parameter can be one of the following values:
  *         @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED
  *         @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN
  * @retval None
  */
static inline void LL_ADC_REG_SetOverrun(ADC_TypeDef *ADCx, uint32_t Overrun)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x1UL << (12U))))) | (Overrun))));
}

/**
  * @brief  Get ADC group regular behavior in case of overrun:
  *         data preserved or overwritten.
  * @rmtoll CFGR     OVRMOD         LL_ADC_REG_GetOverrun
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_REG_OVR_DATA_PRESERVED
  *         @arg @ref LL_ADC_REG_OVR_DATA_OVERWRITTEN
  */
static inline uint32_t LL_ADC_REG_GetOverrun(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR) & ((0x1UL << (12U)))));
}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: group injected
  * @{
  */

/**
  * @brief  Set ADC group injected conversion trigger source:
  *         internal (SW start) or from external peripheral (timer event,
  *         external interrupt line).
  * @note   On this STM32 series, setting trigger source to external trigger
  *         also set trigger polarity to rising edge
  *         (default setting for compatibility with some ADC on other
  *         STM32 families having this setting set by HW default value).
  *         In case of need to modify trigger edge, use
  *         function @ref LL_ADC_INJ_SetTriggerEdge().
  * @note   Availability of parameters of trigger sources from timer
  *         depends on timers availability on the selected device.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must not be disabled. Can be enabled with or without conversion
  *         on going on either groups regular or injected.
  * @rmtoll JSQR     JEXTSEL        LL_ADC_INJ_SetTriggerSource\n
  *         JSQR     JEXTEN         LL_ADC_INJ_SetTriggerSource
  * @param  ADCx ADC instance
  * @param  TriggerSource This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM1_OUT
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM2_OUT
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM3_OUT
  * @retval None
  */
static inline void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
{
  (((ADCx->JSQR)) = ((((((ADCx->JSQR))) & (~((0x1FUL << (2U)) | (0x3UL << (7U))))) | (TriggerSource))));
}

/**
  * @brief  Get ADC group injected conversion trigger source:
  *         internal (SW start) or from external peripheral (timer event,
  *         external interrupt line).
  * @note   To determine whether group injected trigger source is
  *         internal (SW start) or external, without detail
  *         of which peripheral is selected as external trigger,
  *         (equivalent to
  *         "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)")
  *         use function @ref LL_ADC_INJ_IsTriggerSourceSWStart.
  * @note   Availability of parameters of trigger sources from timer
  *         depends on timers availability on the selected device.
  * @rmtoll JSQR     JEXTSEL        LL_ADC_INJ_GetTriggerSource\n
  *         JSQR     JEXTEN         LL_ADC_INJ_GetTriggerSource
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM1_OUT
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM2_OUT
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM3_OUT
  */
static inline uint32_t LL_ADC_INJ_GetTriggerSource(const ADC_TypeDef *ADCx)
{
  volatile uint32_t TriggerSource = ((ADCx->JSQR) & ((0x1FUL << (2U)) | (0x3UL << (7U))));

  /* Value for shift of {0; 4; 8; 12} depending on value of bitfield          */
  /* corresponding to ADC_JSQR_JEXTEN {0; 1; 2; 3}.                           */
  uint32_t ShiftJexten = ((TriggerSource & (0x3UL << (7U))) >> (( 6UL) - 2UL));

  /* Set bitfield corresponding to ADC_JSQR_JEXTEN and ADC_JSQR_JEXTSEL       */
  /* to match with triggers literals definition.                              */
  return ((TriggerSource
           & (((((0x00000000UL) & (0x1FUL << (2U))) << (4U * 0UL)) | (((0x1FUL << (2U))) << (4U * 1UL)) | (((0x1FUL << (2U))) << (4U * 2UL)) | (((0x1FUL << (2U))) << (4U * 3UL)) ) >> ShiftJexten) & (0x1FUL << (2U)))
          | ((((((0x00000000UL) & (0x3UL << (7U))) << (4U * 0UL)) | ((((0x1UL << (7U)))) << (4U * 1UL)) | ((((0x1UL << (7U)))) << (4U * 2UL)) | ((((0x1UL << (7U)))) << (4U * 3UL)) ) >> ShiftJexten) & (0x3UL << (7U)))
         );
}

/**
  * @brief  Get ADC group injected conversion trigger source internal (SW start)
            or external
  * @note   In case of group injected trigger source set to external trigger,
  *         to determine which peripheral is selected as external trigger,
  *         use function @ref LL_ADC_INJ_GetTriggerSource.
  * @rmtoll JSQR     JEXTEN         LL_ADC_INJ_IsTriggerSourceSWStart
  * @param  ADCx ADC instance
  * @retval Value "0" if trigger source external trigger
  *         Value "1" if trigger source SW start.
  */
static inline uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->JSQR) & ((0x3UL << (7U)))) == ((0x00000000UL) & (0x3UL << (7U)))) ? 1UL : 0UL);
}

/**
  * @brief  Set ADC group injected conversion trigger polarity.
  *         Applicable only for trigger source set to external trigger.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must not be disabled. Can be enabled with or without conversion
  *         on going on either groups regular or injected.
  * @rmtoll JSQR     JEXTEN         LL_ADC_INJ_SetTriggerEdge
  * @param  ADCx ADC instance
  * @param  ExternalTriggerEdge This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
  * @retval None
  */
static inline void LL_ADC_INJ_SetTriggerEdge(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
{
  (((ADCx->JSQR)) = ((((((ADCx->JSQR))) & (~((0x3UL << (7U))))) | (ExternalTriggerEdge))));
}

/**
  * @brief  Get ADC group injected conversion trigger polarity.
  *         Applicable only for trigger source set to external trigger.
  * @rmtoll JSQR     JEXTEN         LL_ADC_INJ_GetTriggerEdge
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
  */
static inline uint32_t LL_ADC_INJ_GetTriggerEdge(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->JSQR) & ((0x3UL << (7U)))));
}

/**
  * @brief  Set ADC group injected sequencer length and scan direction.
  * @note   This function performs configuration of:
  *         - Sequence length: Number of ranks in the scan sequence.
  *         - Sequence direction: Unless specified in parameters, sequencer
  *           scan direction is forward (from rank 1 to rank n).
  * @note   Sequencer disabled is equivalent to sequencer of 1 rank:
  *         ADC conversion on only 1 channel.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must not be disabled. Can be enabled with or without conversion
  *         on going on either groups regular or injected.
  * @rmtoll JSQR     JL             LL_ADC_INJ_SetSequencerLength
  * @param  ADCx ADC instance
  * @param  SequencerNbRanks This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
  * @retval None
  */
static inline void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
{
  (((ADCx->JSQR)) = ((((((ADCx->JSQR))) & (~((0x3UL << (0U))))) | (SequencerNbRanks))));
}

/**
  * @brief  Get ADC group injected sequencer length and scan direction.
  * @note   This function retrieves:
  *         - Sequence length: Number of ranks in the scan sequence.
  *         - Sequence direction: Unless specified in parameters, sequencer
  *           scan direction is forward (from rank 1 to rank n).
  * @note   Sequencer disabled is equivalent to sequencer of 1 rank:
  *         ADC conversion on only 1 channel.
  * @rmtoll JSQR     JL             LL_ADC_INJ_GetSequencerLength
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
  */
static inline uint32_t LL_ADC_INJ_GetSequencerLength(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->JSQR) & ((0x3UL << (0U)))));
}

/**
  * @brief  Set ADC group injected sequencer discontinuous mode:
  *         sequence subdivided and scan conversions interrupted every selected
  *         number of ranks.
  * @note   It is not possible to enable both ADC group injected
  *         auto-injected mode and sequencer discontinuous mode.
  * @rmtoll CFGR     JDISCEN        LL_ADC_INJ_SetSequencerDiscont
  * @param  ADCx ADC instance
  * @param  SeqDiscont This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
  *         @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
  * @retval None
  */
static inline void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x1UL << (20U))))) | (SeqDiscont))));
}

/**
  * @brief  Get ADC group injected sequencer discontinuous mode:
  *         sequence subdivided and scan conversions interrupted every selected
  *         number of ranks.
  * @rmtoll CFGR     JDISCEN        LL_ADC_INJ_GetSequencerDiscont
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
  *         @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
  */
static inline uint32_t LL_ADC_INJ_GetSequencerDiscont(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR) & ((0x1UL << (20U)))));
}

/**
  * @brief  Set ADC group injected sequence: channel on the selected
  *         sequence rank.
  * @note   Depending on devices and packages, some channels may not be available.
  *         Refer to device datasheet for channels availability.
  * @note   On this STM32 series, to measure internal channels (VrefInt,
  *         TempSensor, ...), measurement paths to internal channels must be
  *         enabled separately.
  *         This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
  * @note   On STM32H7, some fast channels are available: fast analog inputs
  *         coming from GPIO pads (ADC_IN0..5).
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must not be disabled. Can be enabled with or without conversion
  *         on going on either groups regular or injected.
  * @rmtoll JSQR     JSQ1           LL_ADC_INJ_SetSequencerRanks\n
  *         JSQR     JSQ2           LL_ADC_INJ_SetSequencerRanks\n
  *         JSQR     JSQ3           LL_ADC_INJ_SetSequencerRanks\n
  *         JSQR     JSQ4           LL_ADC_INJ_SetSequencerRanks
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_RANK_1
  *         @arg @ref LL_ADC_INJ_RANK_2
  *         @arg @ref LL_ADC_INJ_RANK_3
  *         @arg @ref LL_ADC_INJ_RANK_4
  * @param  Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval None
  */
static inline void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
{
  /* Set bits with content of parameter "Channel" with bits position          */
  /* in register depending on parameter "Rank".                               */
  /* Parameters "Rank" and "Channel" are used with masks because containing   */
  /* other bits reserved for other purpose.                                   */
  (((ADCx->JSQR)) = ((((((ADCx->JSQR))) & (~((((0x1FUL << (26U))) >> (26UL)) << (Rank & (((0x1FUL << (0U)))))))) | (((Channel & ((0x1FUL << (26U)))) >> (26UL)) << (Rank & (((0x1FUL << (0U)))))))))

                                                                                                                                   ;
}

/**
  * @brief  Get ADC group injected sequence: channel on the selected
  *         sequence rank.
  * @note   Depending on devices and packages, some channels may not be available.
  *         Refer to device datasheet for channels availability.
  * @note   Usage of the returned channel number:
  *         - To reinject this channel into another function LL_ADC_xxx:
  *           the returned channel number is only partly formatted on definition
  *           of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
  *           with parts of literals LL_ADC_CHANNEL_x or using
  *           helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
  *           Then the selected literal LL_ADC_CHANNEL_x can be used
  *           as parameter for another function.
  *         - To get the channel number in decimal format:
  *           process the returned value with the helper macro
  *           @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
  * @rmtoll JSQR     JSQ1           LL_ADC_INJ_GetSequencerRanks\n
  *         JSQR     JSQ2           LL_ADC_INJ_GetSequencerRanks\n
  *         JSQR     JSQ3           LL_ADC_INJ_GetSequencerRanks\n
  *         JSQR     JSQ4           LL_ADC_INJ_GetSequencerRanks
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_RANK_1
  *         @arg @ref LL_ADC_INJ_RANK_2
  *         @arg @ref LL_ADC_INJ_RANK_3
  *         @arg @ref LL_ADC_INJ_RANK_4
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).\n
  *         (1, 2) For ADC channel read back from ADC register,
  *                comparison with internal channel parameter to be done
  *                using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
  */
static inline uint32_t LL_ADC_INJ_GetSequencerRanks(const ADC_TypeDef *ADCx, uint32_t Rank)
{
  return (uint32_t)((((ADCx->JSQR) & ((((0x1FUL << (26U))) >> (26UL)) << (Rank & (((0x1FUL << (0U)))))))

                    >> (Rank & (((0x1FUL << (0U)))))) << (26UL)
                   );
}

/**
  * @brief  Set ADC group injected conversion trigger:
  *         independent or from ADC group regular.
  * @note   This mode can be used to extend number of data registers
  *         updated after one ADC conversion trigger and with data
  *         permanently kept (not erased by successive conversions of scan of
  *         ADC sequencer ranks), up to 5 data registers:
  *         1 data register on ADC group regular, 4 data registers
  *         on ADC group injected.
  * @note   If ADC group injected injected trigger source is set to an
  *         external trigger, this feature must be must be set to
  *         independent trigger.
  *         ADC group injected automatic trigger is compliant only with
  *         group injected trigger source set to SW start, without any
  *         further action on  ADC group injected conversion start or stop:
  *         in this case, ADC group injected is controlled only
  *         from ADC group regular.
  * @note   It is not possible to enable both ADC group injected
  *         auto-injected mode and sequencer discontinuous mode.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll CFGR     JAUTO          LL_ADC_INJ_SetTrigAuto
  * @param  ADCx ADC instance
  * @param  TrigAuto This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
  *         @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
  * @retval None
  */
static inline void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x1UL << (25U))))) | (TrigAuto))));
}

/**
  * @brief  Get ADC group injected conversion trigger:
  *         independent or from ADC group regular.
  * @rmtoll CFGR     JAUTO          LL_ADC_INJ_GetTrigAuto
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
  *         @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
  */
static inline uint32_t LL_ADC_INJ_GetTrigAuto(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR) & ((0x1UL << (25U)))));
}

/**
  * @brief  Set ADC group injected contexts queue mode.
  * @note   A context is a setting of group injected sequencer:
  *         - group injected trigger
  *         - sequencer length
  *         - sequencer ranks
  *         If contexts queue is disabled:
  *         - only 1 sequence can be configured
  *           and is active perpetually.
  *         If contexts queue is enabled:
  *         - up to 2 contexts can be queued
  *           and are checked in and out as a FIFO stack (first-in, first-out).
  *         - If a new context is set when queues is full, error is triggered
  *           by interruption "Injected Queue Overflow".
  *         - Two behaviors are possible when all contexts have been processed:
  *           the contexts queue can maintain the last context active perpetually
  *           or can be empty and injected group triggers are disabled.
  *         - Triggers can be only external (not internal SW start)
  *         - Caution: The sequence must be fully configured in one time
  *           (one write of register JSQR makes a check-in of a new context
  *           into the queue).
  *           Therefore functions to set separately injected trigger and
  *           sequencer channels cannot be used, register JSQR must be set
  *           using function @ref LL_ADC_INJ_ConfigQueueContext().
  * @note   This parameter can be modified only when no conversion is on going
  *         on either groups regular or injected.
  * @note   A modification of the context mode (bit JQDIS) causes the contexts
  *         queue to be flushed and the register JSQR is cleared.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll CFGR     JQM            LL_ADC_INJ_SetQueueMode\n
  *         CFGR     JQDIS          LL_ADC_INJ_SetQueueMode
  * @param  ADCx ADC instance
  * @param  QueueMode This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_QUEUE_DISABLE
  *         @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE
  *         @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY
  * @retval None
  */
static inline void LL_ADC_INJ_SetQueueMode(ADC_TypeDef *ADCx, uint32_t QueueMode)
{
  (((ADCx->CFGR)) = ((((((ADCx->CFGR))) & (~((0x1UL << (21U)) | (0x1UL << (31U))))) | (QueueMode))));
}

/**
  * @brief  Get ADC group injected context queue mode.
  * @rmtoll CFGR     JQM            LL_ADC_INJ_GetQueueMode\n
  *         CFGR     JQDIS          LL_ADC_INJ_GetQueueMode
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_INJ_QUEUE_DISABLE
  *         @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE
  *         @arg @ref LL_ADC_INJ_QUEUE_2CONTEXTS_END_EMPTY
  */
static inline uint32_t LL_ADC_INJ_GetQueueMode(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR) & ((0x1UL << (21U)) | (0x1UL << (31U)))));
}

/**
  * @brief  Set one context on ADC group injected that will be checked in
  *         contexts queue.
  * @note   A context is a setting of group injected sequencer:
  *         - group injected trigger
  *         - sequencer length
  *         - sequencer ranks
  *         This function is intended to be used when contexts queue is enabled,
  *         because the sequence must be fully configured in one time
  *         (functions to set separately injected trigger and sequencer channels
  *         cannot be used):
  *         Refer to function @ref LL_ADC_INJ_SetQueueMode().
  * @note   In the contexts queue, only the active context can be read.
  *         The parameters of this function can be read using functions:
  *         @arg @ref LL_ADC_INJ_GetTriggerSource()
  *         @arg @ref LL_ADC_INJ_GetTriggerEdge()
  *         @arg @ref LL_ADC_INJ_GetSequencerRanks()
  * @note   On this STM32 series, to measure internal channels (VrefInt,
  *         TempSensor, ...), measurement paths to internal channels must be
  *         enabled separately.
  *         This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
  * @note   On STM32H7, some fast channels are available: fast analog inputs
  *         coming from GPIO pads (ADC_IN0..5).
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must not be disabled. Can be enabled with or without conversion
  *         on going on either groups regular or injected.
  * @rmtoll JSQR     JEXTSEL        LL_ADC_INJ_ConfigQueueContext\n
  *         JSQR     JEXTEN         LL_ADC_INJ_ConfigQueueContext\n
  *         JSQR     JL             LL_ADC_INJ_ConfigQueueContext\n
  *         JSQR     JSQ1           LL_ADC_INJ_ConfigQueueContext\n
  *         JSQR     JSQ2           LL_ADC_INJ_ConfigQueueContext\n
  *         JSQR     JSQ3           LL_ADC_INJ_ConfigQueueContext\n
  *         JSQR     JSQ4           LL_ADC_INJ_ConfigQueueContext
  * @param  ADCx ADC instance
  * @param  TriggerSource This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_CH4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_CH4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM1_TRGO2
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM8_TRGO2
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH3
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH1
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM6_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_TIM15_TRGO
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG2
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_HRTIM_TRG4
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM1_OUT
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM2_OUT
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_LPTIM3_OUT
  * @param  ExternalTriggerEdge This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
  *         @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
  *
  *         Note: This parameter is discarded in case of SW start:
  *               parameter "TriggerSource" set to "LL_ADC_INJ_TRIG_SOFTWARE".
  * @param  SequencerNbRanks This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
  *         @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
  * @param  Rank1_Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @param  Rank2_Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @param  Rank3_Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @param  Rank4_Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval None
  */
static inline void LL_ADC_INJ_ConfigQueueContext(ADC_TypeDef *ADCx,
                                                   uint32_t TriggerSource,
                                                   uint32_t ExternalTriggerEdge,
                                                   uint32_t SequencerNbRanks,
                                                   uint32_t Rank1_Channel,
                                                   uint32_t Rank2_Channel,
                                                   uint32_t Rank3_Channel,
                                                   uint32_t Rank4_Channel)
{
  /* Set bits with content of parameter "Rankx_Channel" with bits position    */
  /* in register depending on literal "LL_ADC_INJ_RANK_x".                    */
  /* Parameters "Rankx_Channel" and "LL_ADC_INJ_RANK_x" are used with masks   */
  /* because containing other bits reserved for other purpose.                */
  /* If parameter "TriggerSource" is set to SW start, then parameter          */
  /* "ExternalTriggerEdge" is discarded.                                      */
  uint32_t is_trigger_not_sw = (uint32_t)((TriggerSource != (0x00000000UL)) ? 1UL : 0UL);
  (((ADCx->JSQR)) = ((((((ADCx->JSQR))) & (~((0x1FUL << (2U)) | (0x3UL << (7U)) | (0x1FUL << (27U)) | (0x1FUL << (21U)) | (0x1FUL << (15U)) | (0x1FUL << (9U)) | (0x3UL << (0U))))) | ((TriggerSource & (0x1FUL << (2U))) | (ExternalTriggerEdge * (is_trigger_not_sw)) | (((Rank4_Channel & ((0x1FUL << (26U)))) >> (26UL)) << (((0x00000300UL) | ((27U))) & (((0x1FUL << (0U)))))) | (((Rank3_Channel & ((0x1FUL << (26U)))) >> (26UL)) << (((0x00000200UL) | ((21U))) & (((0x1FUL << (0U)))))) | (((Rank2_Channel & ((0x1FUL << (26U)))) >> (26UL)) << (((0x00000100UL) | ((15U))) & (((0x1FUL << (0U)))))) | (((Rank1_Channel & ((0x1FUL << (26U)))) >> (26UL)) << (((0x00000000UL) | ((9U))) & (((0x1FUL << (0U)))))) | SequencerNbRanks))))
# 5310 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
             ;
}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels
  * @{
  */

/**
  * @brief  Set sampling time of the selected ADC channel
  *         Unit: ADC clock cycles.
  * @note   On this device, sampling time is on channel scope: independently
  *         of channel mapped on ADC group regular or injected.
  * @note   In case of internal channel (VrefInt, TempSensor, ...) to be
  *         converted:
  *         sampling time constraints must be respected (sampling time can be
  *         adjusted in function of ADC clock frequency and sampling time
  *         setting).
  *         Refer to device datasheet for timings values (parameters TS_vrefint,
  *         TS_temp, ...).
  * @note   Conversion time is the addition of sampling time and processing time.
  *         On this STM32 series, ADC processing time is:
  *         - 12.5 ADC clock cycles at ADC resolution 12 bits
  *         - 10.5 ADC clock cycles at ADC resolution 10 bits
  *         - 8.5 ADC clock cycles at ADC resolution 8 bits
  *         - 6.5 ADC clock cycles at ADC resolution 6 bits
  * @note   In case of ADC conversion of internal channel (VrefInt,
  *         temperature sensor, ...), a sampling time minimum value
  *         is required.
  *         Refer to device datasheet.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll SMPR1    SMP0           LL_ADC_SetChannelSamplingTime\n
  *         SMPR1    SMP1           LL_ADC_SetChannelSamplingTime\n
  *         SMPR1    SMP2           LL_ADC_SetChannelSamplingTime\n
  *         SMPR1    SMP3           LL_ADC_SetChannelSamplingTime\n
  *         SMPR1    SMP4           LL_ADC_SetChannelSamplingTime\n
  *         SMPR1    SMP5           LL_ADC_SetChannelSamplingTime\n
  *         SMPR1    SMP6           LL_ADC_SetChannelSamplingTime\n
  *         SMPR1    SMP7           LL_ADC_SetChannelSamplingTime\n
  *         SMPR1    SMP8           LL_ADC_SetChannelSamplingTime\n
  *         SMPR1    SMP9           LL_ADC_SetChannelSamplingTime\n
  *         SMPR2    SMP10          LL_ADC_SetChannelSamplingTime\n
  *         SMPR2    SMP11          LL_ADC_SetChannelSamplingTime\n
  *         SMPR2    SMP12          LL_ADC_SetChannelSamplingTime\n
  *         SMPR2    SMP13          LL_ADC_SetChannelSamplingTime\n
  *         SMPR2    SMP14          LL_ADC_SetChannelSamplingTime\n
  *         SMPR2    SMP15          LL_ADC_SetChannelSamplingTime\n
  *         SMPR2    SMP16          LL_ADC_SetChannelSamplingTime\n
  *         SMPR2    SMP17          LL_ADC_SetChannelSamplingTime\n
  *         SMPR2    SMP18          LL_ADC_SetChannelSamplingTime
  * @param  ADCx ADC instance
  * @param  Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @param  SamplingTime This parameter can be one of the following values:
  *         @arg @ref LL_ADC_SAMPLINGTIME_1CYCLE_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_8CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_16CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_32CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_64CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_387CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_810CYCLES_5
  * @retval None
  */
static inline void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime)
{
  /* Set bits with content of parameter "SamplingTime" with bits position     */
  /* in register and register position depending on parameter "Channel".      */
  /* Parameter "Channel" is used with masks because containing                */
  /* other bits reserved for other purpose.                                   */
  volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->SMPR1)) + ((((Channel & ((0x00000000UL) | (0x02000000UL))) >> (25UL))) << 2UL))));

  (((*preg)) = ((((((*preg))) & (~((0x7UL << (0U)) << ((Channel & (0x01F00000UL)) >> (20UL))))) | (SamplingTime << ((Channel & (0x01F00000UL)) >> (20UL))))))

                                                                                                               ;
}

/**
  * @brief  Get sampling time of the selected ADC channel
  *         Unit: ADC clock cycles.
  * @note   On this device, sampling time is on channel scope: independently
  *         of channel mapped on ADC group regular or injected.
  * @note   Conversion time is the addition of sampling time and processing time.
  *         On this STM32 series, ADC processing time is:
  *         - 12.5 ADC clock cycles at ADC resolution 12 bits
  *         - 10.5 ADC clock cycles at ADC resolution 10 bits
  *         - 8.5 ADC clock cycles at ADC resolution 8 bits
  *         - 6.5 ADC clock cycles at ADC resolution 6 bits
  * @rmtoll SMPR1    SMP0           LL_ADC_GetChannelSamplingTime\n
  *         SMPR1    SMP1           LL_ADC_GetChannelSamplingTime\n
  *         SMPR1    SMP2           LL_ADC_GetChannelSamplingTime\n
  *         SMPR1    SMP3           LL_ADC_GetChannelSamplingTime\n
  *         SMPR1    SMP4           LL_ADC_GetChannelSamplingTime\n
  *         SMPR1    SMP5           LL_ADC_GetChannelSamplingTime\n
  *         SMPR1    SMP6           LL_ADC_GetChannelSamplingTime\n
  *         SMPR1    SMP7           LL_ADC_GetChannelSamplingTime\n
  *         SMPR1    SMP8           LL_ADC_GetChannelSamplingTime\n
  *         SMPR1    SMP9           LL_ADC_GetChannelSamplingTime\n
  *         SMPR2    SMP10          LL_ADC_GetChannelSamplingTime\n
  *         SMPR2    SMP11          LL_ADC_GetChannelSamplingTime\n
  *         SMPR2    SMP12          LL_ADC_GetChannelSamplingTime\n
  *         SMPR2    SMP13          LL_ADC_GetChannelSamplingTime\n
  *         SMPR2    SMP14          LL_ADC_GetChannelSamplingTime\n
  *         SMPR2    SMP15          LL_ADC_GetChannelSamplingTime\n
  *         SMPR2    SMP16          LL_ADC_GetChannelSamplingTime\n
  *         SMPR2    SMP17          LL_ADC_GetChannelSamplingTime\n
  *         SMPR2    SMP18          LL_ADC_GetChannelSamplingTime
  * @param  ADCx ADC instance
  * @param  Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_0           (3)
  *         @arg @ref LL_ADC_CHANNEL_1           (3)
  *         @arg @ref LL_ADC_CHANNEL_2           (3)
  *         @arg @ref LL_ADC_CHANNEL_3           (3)
  *         @arg @ref LL_ADC_CHANNEL_4           (3)
  *         @arg @ref LL_ADC_CHANNEL_5           (3)
  *         @arg @ref LL_ADC_CHANNEL_6
  *         @arg @ref LL_ADC_CHANNEL_7
  *         @arg @ref LL_ADC_CHANNEL_8
  *         @arg @ref LL_ADC_CHANNEL_9
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  *         @arg @ref LL_ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref LL_ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref LL_ADC_CHANNEL_VBAT         (1)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref LL_ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_SAMPLINGTIME_1CYCLE_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_2CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_8CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_16CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_32CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_64CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_387CYCLES_5
  *         @arg @ref LL_ADC_SAMPLINGTIME_810CYCLES_5
  */
static inline uint32_t LL_ADC_GetChannelSamplingTime(const ADC_TypeDef *ADCx, uint32_t Channel)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->SMPR1)) + ((((Channel & ((0x00000000UL) | (0x02000000UL))) >> (25UL))) << 2UL))));

  return (uint32_t)(((*preg) & ((0x7UL << (0U)) << ((Channel & (0x01F00000UL)) >> (20UL))))

                    >> ((Channel & (0x01F00000UL)) >> (20UL))
                   );
}

/**
  * @brief  Set mode single-ended or differential input of the selected
  *         ADC channel.
  * @note   Channel ending is on channel scope: independently of channel mapped
  *         on ADC group regular or injected.
  *         In differential mode: Differential measurement is carried out
  *         between the selected channel 'i' (positive input) and
  *         channel 'i+1' (negative input). Only channel 'i' has to be
  *         configured, channel 'i+1' is configured automatically.
  * @note   Refer to Reference Manual to ensure the selected channel is
  *         available in differential mode.
  *         For example, internal channels (VrefInt, TempSensor, ...) are
  *         not available in differential mode.
  * @note   When configuring a channel 'i' in differential mode,
  *         the channel 'i+1' is not usable separately.
  * @note   On STM32H7, some channels are internally fixed to single-ended inputs
  *         configuration:
  *         - ADC1: Channels 0, 6, 7, 8, 9, 13, 14, 15, 17, and 19
  *         - ADC2: Channels 0, 6, 7, 8, 9, 13, 14, 15 and 19
  *         - ADC3: Channels 0, 6, 7, 8, 9, 12, 16, 17, and 19
  * @note   For ADC channels configured in differential mode, both inputs
  *         should be biased at (Vref+)/2 +/-200mV.
  *         (Vref+ is the analog voltage reference)
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be ADC disabled.
  * @note   One or several values can be selected.
  *         Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...)
  * @rmtoll DIFSEL   DIFSEL         LL_ADC_SetChannelSingleDiff
  * @param  ADCx ADC instance
  * @param  Channel This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CHANNEL_1
  *         @arg @ref LL_ADC_CHANNEL_2
  *         @arg @ref LL_ADC_CHANNEL_3
  *         @arg @ref LL_ADC_CHANNEL_4
  *         @arg @ref LL_ADC_CHANNEL_5
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  * @param  SingleDiff This parameter can be a combination of the following values:
  *         @arg @ref LL_ADC_SINGLE_ENDED
  *         @arg @ref LL_ADC_DIFFERENTIAL_ENDED
  * @retval None
  */
static inline void LL_ADC_SetChannelSingleDiff(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SingleDiff)
{
# 5574 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
  /* Bits of channels in single or differential mode are set only for         */
  /* differential mode (for single mode, mask of bits allowed to be set is    */
  /* shifted out of range of bits of channels in single or differential mode. */
  (((ADCx->DIFSEL)) = ((((((ADCx->DIFSEL))) & (~(Channel & (((0xFFFFFUL << (0U))))))) | ((Channel & (((0xFFFFFUL << (0U))))) & ((0xFFFFFUL << (0U)) >> (SingleDiff & ((0x010UL << (0U)) | (0x008UL << (0U)))))))))

                                                                                                                               ;

}

/**
  * @brief  Get mode single-ended or differential input of the selected
  *         ADC channel.
  * @note   When configuring a channel 'i' in differential mode,
  *         the channel 'i+1' is not usable separately.
  *         Therefore, to ensure a channel is configured in single-ended mode,
  *         the configuration of channel itself and the channel 'i-1' must be
  *         read back (to ensure that the selected channel channel has not been
  *         configured in differential mode by the previous channel).
  * @note   Refer to Reference Manual to ensure the selected channel is
  *         available in differential mode.
  *         For example, internal channels (VrefInt, TempSensor, ...) are
  *         not available in differential mode.
  * @note   When configuring a channel 'i' in differential mode,
  *         the channel 'i+1' is not usable separately.
  * @note   On STM32H7, some channels are internally fixed to single-ended inputs
  *         configuration:
  *         - ADC1: Channels 0, 6, 7, 8, 9, 13, 14, 15, 17, and 19
  *         - ADC2: Channels 0, 6, 7, 8, 9, 13, 14, 15 and 19
  *         - ADC3: Channels 0, 6, 7, 8, 9, 12, 16, 17, and 19
  * @note   One or several values can be selected. In this case, the value
  *         returned is null if all channels are in single ended-mode.
  *         Example: (LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...)
  * @rmtoll DIFSEL   DIFSEL         LL_ADC_GetChannelSingleDiff
  * @param  ADCx ADC instance
  * @param  Channel This parameter can be a combination of the following values:
  *         @arg @ref LL_ADC_CHANNEL_1
  *         @arg @ref LL_ADC_CHANNEL_2
  *         @arg @ref LL_ADC_CHANNEL_3
  *         @arg @ref LL_ADC_CHANNEL_4
  *         @arg @ref LL_ADC_CHANNEL_5
  *         @arg @ref LL_ADC_CHANNEL_10
  *         @arg @ref LL_ADC_CHANNEL_11
  *         @arg @ref LL_ADC_CHANNEL_12
  *         @arg @ref LL_ADC_CHANNEL_13
  *         @arg @ref LL_ADC_CHANNEL_14
  *         @arg @ref LL_ADC_CHANNEL_15
  *         @arg @ref LL_ADC_CHANNEL_16
  *         @arg @ref LL_ADC_CHANNEL_17
  *         @arg @ref LL_ADC_CHANNEL_18
  *         @arg @ref LL_ADC_CHANNEL_19
  * @retval 0: channel in single-ended mode, else: channel in differential mode
  */
static inline uint32_t LL_ADC_GetChannelSingleDiff(const ADC_TypeDef *ADCx, uint32_t Channel)
{



  return (uint32_t)(((ADCx->DIFSEL) & ((Channel & (((0xFFFFFUL << (0U))))))));

}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: analog watchdog
  * @{
  */

/**
  * @brief  Set ADC analog watchdog monitored channels:
  *         a single channel, multiple channels or all channels,
  *         on ADC groups regular and-or injected.
  * @note   Once monitored channels are selected, analog watchdog
  *         is enabled.
  * @note   In case of need to define a single channel to monitor
  *         with analog watchdog from sequencer channel definition,
  *         use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP().
  * @note   On this STM32 series, there are 2 kinds of analog watchdog
  *         instance:
  *         - AWD standard (instance AWD1):
  *           - channels monitored: can monitor 1 channel or all channels.
  *           - groups monitored: ADC groups regular and-or injected.
  *           - resolution: resolution is not limited (corresponds to
  *             ADC resolution configured).
  *         - AWD flexible (instances AWD2, AWD3):
  *           - channels monitored: flexible on channels monitored, selection is
  *             channel wise, from from 1 to all channels.
  *             Specificity of this analog watchdog: Multiple channels can
  *             be selected. For example:
  *             (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
  *           - groups monitored: not selection possible (monitoring on both
  *             groups regular and injected).
  *             Channels selected are monitored on groups regular and injected:
  *             LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
  *             LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
  *           - resolution: resolution is limited to 8 bits: if ADC resolution is
  *             12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
  *             the 2 LSB are ignored.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll CFGR     AWD1CH         LL_ADC_SetAnalogWDMonitChannels\n
  *         CFGR     AWD1SGL        LL_ADC_SetAnalogWDMonitChannels\n
  *         CFGR     AWD1EN         LL_ADC_SetAnalogWDMonitChannels\n
  *         CFGR     JAWD1EN        LL_ADC_SetAnalogWDMonitChannels\n
  *         AWD2CR   AWD2CH         LL_ADC_SetAnalogWDMonitChannels\n
  *         AWD3CR   AWD3CH         LL_ADC_SetAnalogWDMonitChannels
  * @param  ADCx ADC instance
  * @param  AWDy This parameter can be one of the following values:
  *         @arg @ref LL_ADC_AWD1
  *         @arg @ref LL_ADC_AWD2
  *         @arg @ref LL_ADC_AWD3
  * @param  AWDChannelGroup This parameter can be one of the following values:
  *         @arg @ref LL_ADC_AWD_DISABLE
  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG        (0)
  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ        (0)
  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_0_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_1_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_2_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_3_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_4_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_5_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_6_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_7_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_8_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_9_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_10_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_11_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_12_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_13_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_14_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_15_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_16_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_17_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_18_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_19_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_19_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_19_REG_INJ
  *         @arg @ref LL_ADC_AWD_CH_VREFINT_REG          (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_VREFINT_INJ          (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ         (1)
  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG       (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ       (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ      (1)
  *         @arg @ref LL_ADC_AWD_CH_VBAT_REG             (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_VBAT_INJ             (0)(1)
  *         @arg @ref LL_ADC_AWD_CH_VBAT_REG_INJ            (1)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_REG     (0)(2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_INJ     (0)(2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH1_ADC2_REG_INJ    (2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_REG     (0)(2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_INJ     (0)(2)
  *         @arg @ref LL_ADC_AWD_CH_DAC1CH2_ADC2_REG_INJ    (2)
  *
  *         (0) On STM32H7, parameter available only on analog watchdog number: AWD1.\n
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.
  * @retval None
  */
static inline void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDChannelGroup)
{
  /* Set bits with content of parameter "AWDChannelGroup" with bits position  */
  /* in register and register position depending on parameter "AWDy".         */
  /* Parameters "AWDChannelGroup" and "AWDy" are used with masks because      */
  /* containing other bits reserved for other purpose.                        */
  volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->CFGR)) + ((((AWDy & ((0x00000000UL) | (0x00100000UL) | (0x00200000UL))) >> (20UL)) + ((AWDy & ((0x00001UL << (0U)))) * (0x00000024UL))) << 2UL))))
                                                                                                                                  ;

  (((*preg)) = ((((((*preg))) & (~((AWDy & (((0x1FUL << (26U)) | (0x1UL << (24U)) | (0x1UL << (23U)) | (0x1UL << (22U))) | ((0xFFFFFUL << (0U)))))))) | (AWDChannelGroup & AWDy))))

                                    ;
}

/**
  * @brief  Get ADC analog watchdog monitored channel.
  * @note   Usage of the returned channel number:
  *         - To reinject this channel into another function LL_ADC_xxx:
  *           the returned channel number is only partly formatted on definition
  *           of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
  *           with parts of literals LL_ADC_CHANNEL_x or using
  *           helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
  *           Then the selected literal LL_ADC_CHANNEL_x can be used
  *           as parameter for another function.
  *         - To get the channel number in decimal format:
  *           process the returned value with the helper macro
  *           @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
  *           Applicable only when the analog watchdog is set to monitor
  *           one channel.
  * @note   On this STM32 series, there are 2 kinds of analog watchdog
  *         instance:
  *         - AWD standard (instance AWD1):
  *           - channels monitored: can monitor 1 channel or all channels.
  *           - groups monitored: ADC groups regular and-or injected.
  *           - resolution: resolution is not limited (corresponds to
  *             ADC resolution configured).
  *         - AWD flexible (instances AWD2, AWD3):
  *           - channels monitored: flexible on channels monitored, selection is
  *             channel wise, from from 1 to all channels.
  *             Specificity of this analog watchdog: Multiple channels can
  *             be selected. For example:
  *             (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
  *           - groups monitored: not selection possible (monitoring on both
  *             groups regular and injected).
  *             Channels selected are monitored on groups regular and injected:
  *             LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
  *             LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
  *           - resolution: resolution is limited to 8 bits: if ADC resolution is
  *             12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
  *             the 2 LSB are ignored.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll CFGR     AWD1CH         LL_ADC_GetAnalogWDMonitChannels\n
  *         CFGR     AWD1SGL        LL_ADC_GetAnalogWDMonitChannels\n
  *         CFGR     AWD1EN         LL_ADC_GetAnalogWDMonitChannels\n
  *         CFGR     JAWD1EN        LL_ADC_GetAnalogWDMonitChannels\n
  *         AWD2CR   AWD2CH         LL_ADC_GetAnalogWDMonitChannels\n
  *         AWD3CR   AWD3CH         LL_ADC_GetAnalogWDMonitChannels
  * @param  ADCx ADC instance
  * @param  AWDy This parameter can be one of the following values:
  *         @arg @ref LL_ADC_AWD1
  *         @arg @ref LL_ADC_AWD2 (1)
  *         @arg @ref LL_ADC_AWD3 (1)
  *
  *         (1) On this AWD number, monitored channel can be retrieved
  *             if only 1 channel is programmed (or none or all channels).
  *             This function cannot retrieve monitored channel if
  *             multiple channels are programmed simultaneously
  *             by bitfield.
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_AWD_DISABLE
  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG        (0)
  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ        (0)
  *         @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_0_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_1_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_2_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_3_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_4_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_5_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_6_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_7_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_8_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_9_INJ           (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_10_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_11_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_12_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_13_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_14_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_15_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_16_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_17_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_18_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ
  *         @arg @ref LL_ADC_AWD_CHANNEL_19_REG          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_19_INJ          (0)
  *         @arg @ref LL_ADC_AWD_CHANNEL_19_REG_INJ
  *
  *         (0) On STM32H7, parameter available only on analog watchdog number: AWD1.
  */
static inline uint32_t LL_ADC_GetAnalogWDMonitChannels(const ADC_TypeDef *ADCx, uint32_t AWDy)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->CFGR)) + ((((AWDy & ((0x00000000UL) | (0x00100000UL) | (0x00200000UL))) >> (20UL)) + ((AWDy & ((0x00001UL << (0U)))) * (0x00000024UL))) << 2UL))))
                                                                                                                                        ;

  uint32_t AnalogWDMonitChannels = (((*preg) & (AWDy)) & AWDy & (((0x1FUL << (26U)) | (0x1UL << (24U)) | (0x1UL << (23U)) | (0x1UL << (22U))) | ((0xFFFFFUL << (0U)))));

  /* If "AnalogWDMonitChannels" == 0, then the selected AWD is disabled       */
  /* (parameter value LL_ADC_AWD_DISABLE).                                    */
  /* Else, the selected AWD is enabled and is monitoring a group of channels  */
  /* or a single channel.                                                     */
  if (AnalogWDMonitChannels != 0UL)
  {
    if (AWDy == (((0x1FUL << (26U)) | (0x1UL << (24U)) | (0x1UL << (23U)) | (0x1UL << (22U))) | (0x00000000UL)))
    {
      if ((AnalogWDMonitChannels & (0x1UL << (22U))) == 0UL)
      {
        /* AWD monitoring a group of channels */
        AnalogWDMonitChannels = ((AnalogWDMonitChannels
                                  | (((0xFFFFFUL << (0U))))
                                 )
                                 & (~((0x1FUL << (26U))))
                                );
      }
      else
      {
        /* AWD monitoring a single channel */
        AnalogWDMonitChannels = (AnalogWDMonitChannels
                                 | ((0x00001UL << (0U)) << (AnalogWDMonitChannels >> (26U)))
                                );
      }
    }
    else
    {
      if ((AnalogWDMonitChannels & ((0xFFFFFUL << (0U)))) == ((0xFFFFFUL << (0U))))
      {
        /* AWD monitoring a group of channels */
        AnalogWDMonitChannels = (((0xFFFFFUL << (0U)))
                                 | (((0x1UL << (24U)) | (0x1UL << (23U))))
                                );
      }
      else
      {
        /* AWD monitoring a single channel */
        /* AWD monitoring a group of channels */
        AnalogWDMonitChannels = (AnalogWDMonitChannels
                                 | ((0x1UL << (24U)) | (0x1UL << (23U)) | (0x1UL << (22U)))
                                 | (((((AnalogWDMonitChannels) & ((0xFFFFFUL << (0U)))) == 0UL) ? ( ((AnalogWDMonitChannels) & ((0x1FUL << (26U)))) >> (26UL) ) : ( (uint32_t)(__CLZ(__RBIT((AnalogWDMonitChannels)))) ) ) << (26U))
                                );
      }
    }
  }

  return AnalogWDMonitChannels;
}

/**
  * @brief  Set ADC analog watchdog threshold value of threshold
  *         high or low.
  * @note   In case of ADC resolution different of 12 bits,
  *         analog watchdog thresholds data require a specific shift.
  *         Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION().
  * @note   On this STM32 series, there are 2 kinds of analog watchdog
  *         instance:
  *         - AWD standard (instance AWD1):
  *           - channels monitored: can monitor 1 channel or all channels.
  *           - groups monitored: ADC groups regular and-or injected.
  *           - resolution: resolution is not limited (corresponds to
  *             ADC resolution configured).
  *         - AWD flexible (instances AWD2, AWD3):
  *           - channels monitored: flexible on channels monitored, selection is
  *             channel wise, from from 1 to all channels.
  *             Specificity of this analog watchdog: Multiple channels can
  *             be selected. For example:
  *             (LL_ADC_AWD_CHANNEL4_REG_INJ | LL_ADC_AWD_CHANNEL5_REG_INJ | ...)
  *           - groups monitored: not selection possible (monitoring on both
  *             groups regular and injected).
  *             Channels selected are monitored on groups regular and injected:
  *             LL_ADC_AWD_CHANNELxx_REG_INJ (do not use parameters
  *             LL_ADC_AWD_CHANNELxx_REG and LL_ADC_AWD_CHANNELxx_INJ)
  *           - resolution: resolution is limited to 8 bits: if ADC resolution is
  *             12 bits the 4 LSB are ignored, if ADC resolution is 10 bits
  *             the 2 LSB are ignored.
  * @note   If ADC oversampling is enabled, ADC analog watchdog thresholds are
  *         impacted: the comparison of analog watchdog thresholds is done
  *         on oversampling intermediate computation (after ratio, before shift
  *         application): intermediate register bitfield [32:7]
  *         (26 most significant bits).
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either ADC groups regular or injected.
  * @rmtoll TR1      HT1            LL_ADC_SetAnalogWDThresholds\n
  *         TR2      HT2            LL_ADC_SetAnalogWDThresholds\n
  *         TR3      HT3            LL_ADC_SetAnalogWDThresholds\n
  *         TR1      LT1            LL_ADC_SetAnalogWDThresholds\n
  *         TR2      LT2            LL_ADC_SetAnalogWDThresholds\n
  *         TR3      LT3            LL_ADC_SetAnalogWDThresholds
  * @param  ADCx ADC instance
  * @param  AWDy This parameter can be one of the following values:
  *         @arg @ref LL_ADC_AWD1
  *         @arg @ref LL_ADC_AWD2
  *         @arg @ref LL_ADC_AWD3
  * @param  AWDThresholdsHighLow This parameter can be one of the following values:
  *         @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
  *         @arg @ref LL_ADC_AWD_THRESHOLD_LOW
  * @param  AWDThresholdValue Value between Min_Data=0x000 and Max_Data=0xFFF
  * @retval None
  */
static inline void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdsHighLow, uint32_t AWDThresholdValue)
{
# 6052 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
  /* Set bits with content of parameter "AWDThresholdValue" with bits         */
  /* position in register and register position depending on parameters       */
  /* "AWDThresholdsHighLow" and "AWDy".                                       */
  /* Parameters "AWDy" and "AWDThresholdValue" are used with masks because    */
  /* containing other bits reserved for other purpose.                        */
  volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->LTR1)) + (((((AWDy & (((0x00000000UL)) | ((0x00100000UL)) | ((0x00200000UL)))) >> ((20UL))) * 2UL) + ((AWDy & ((0x00001UL << (0U)))) * (0x00000022UL)) + (AWDThresholdsHighLow)) << 2UL))))

                                                                               ;

  (((*preg)) = ((((((*preg))) & (~((0x3FFFFFFUL << (0U))))) | (AWDThresholdValue))));

}

/**
  * @brief  Get ADC analog watchdog threshold value of threshold high,
  *         threshold low or raw data with ADC thresholds high and low
  *         concatenated.
  * @note   In case of ADC resolution different of 12 bits,
  *         analog watchdog thresholds data require a specific shift.
  *         Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION().
  * @rmtoll TR1      HT1            LL_ADC_GetAnalogWDThresholds\n
  *         TR2      HT2            LL_ADC_GetAnalogWDThresholds\n
  *         TR3      HT3            LL_ADC_GetAnalogWDThresholds\n
  *         TR1      LT1            LL_ADC_GetAnalogWDThresholds\n
  *         TR2      LT2            LL_ADC_GetAnalogWDThresholds\n
  *         TR3      LT3            LL_ADC_GetAnalogWDThresholds
  * @param  ADCx ADC instance
  * @param  AWDy This parameter can be one of the following values:
  *         @arg @ref LL_ADC_AWD1
  *         @arg @ref LL_ADC_AWD2
  *         @arg @ref LL_ADC_AWD3
  * @param  AWDThresholdsHighLow This parameter can be one of the following values:
  *         @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
  *         @arg @ref LL_ADC_AWD_THRESHOLD_LOW
  * @retval Value between Min_Data=0x000 and Max_Data=0x3FFFFFF
*/
static inline uint32_t LL_ADC_GetAnalogWDThresholds(const ADC_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdsHighLow)
{
# 6110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
   const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->LTR1)) + (((((AWDy & (((0x00000000UL)) | ((0x00100000UL)) | ((0x00200000UL)))) >> ((20UL))) * 2UL) + ((AWDy & ((0x00001UL << (0U)))) * (0x00000022UL)) + (AWDThresholdsHighLow)) << 2UL))))

                                                                                            ;

  return (uint32_t)(((*preg) & ((0x3FFFFFFUL << (0U)))));

}
# 6263 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
/**
  * @}
  */

/** @defgroup ADC_LL_EF_Configuration_ADC_oversampling Configuration of ADC transversal scope: oversampling
  * @{
  */

/**
  * @brief  Set ADC oversampling scope: ADC groups regular and-or injected
  *         (availability of ADC group injected depends on STM32 families).
  * @note   If both groups regular and injected are selected,
  *         specify behavior of ADC group injected interrupting
  *         group regular: when ADC group injected is triggered,
  *         the oversampling on ADC group regular is either
  *         temporary stopped and continued, or resumed from start
  *         (oversampler buffer reset).
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll CFGR2    ROVSE          LL_ADC_SetOverSamplingScope\n
  *         CFGR2    JOVSE          LL_ADC_SetOverSamplingScope\n
  *         CFGR2    ROVSM          LL_ADC_SetOverSamplingScope
  * @param  ADCx ADC instance
  * @param  OvsScope This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OVS_DISABLE
  *         @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED
  *         @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED
  *         @arg @ref LL_ADC_OVS_GRP_INJECTED
  *         @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED
  * @retval None
  */
static inline void LL_ADC_SetOverSamplingScope(ADC_TypeDef *ADCx, uint32_t OvsScope)
{
  (((ADCx->CFGR2)) = ((((((ADCx->CFGR2))) & (~((0x1UL << (0U)) | (0x1UL << (1U)) | (0x1UL << (10U))))) | (OvsScope))));
}

/**
  * @brief  Get ADC oversampling scope: ADC groups regular and-or injected
  *         (availability of ADC group injected depends on STM32 families).
  * @note   If both groups regular and injected are selected,
  *         specify behavior of ADC group injected interrupting
  *         group regular: when ADC group injected is triggered,
  *         the oversampling on ADC group regular is either
  *         temporary stopped and continued, or resumed from start
  *         (oversampler buffer reset).
  * @rmtoll CFGR2    ROVSE          LL_ADC_GetOverSamplingScope\n
  *         CFGR2    JOVSE          LL_ADC_GetOverSamplingScope\n
  *         CFGR2    ROVSM          LL_ADC_GetOverSamplingScope
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_OVS_DISABLE
  *         @arg @ref LL_ADC_OVS_GRP_REGULAR_CONTINUED
  *         @arg @ref LL_ADC_OVS_GRP_REGULAR_RESUMED
  *         @arg @ref LL_ADC_OVS_GRP_INJECTED
  *         @arg @ref LL_ADC_OVS_GRP_INJ_REG_RESUMED
  */
static inline uint32_t LL_ADC_GetOverSamplingScope(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR2) & ((0x1UL << (0U)) | (0x1UL << (1U)) | (0x1UL << (10U)))));
}

/**
  * @brief  Set ADC oversampling discontinuous mode (triggered mode)
  *         on the selected ADC group.
  * @note   Number of oversampled conversions are done either in:
  *         - continuous mode (all conversions of oversampling ratio
  *           are done from 1 trigger)
  *         - discontinuous mode (each conversion of oversampling ratio
  *           needs a trigger)
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on group regular.
  * @note   On this STM32 series, oversampling discontinuous mode
  *         (triggered mode) can be used only when oversampling is
  *         set on group regular only and in resumed mode.
  * @rmtoll CFGR2    TROVS          LL_ADC_SetOverSamplingDiscont
  * @param  ADCx ADC instance
  * @param  OverSamplingDiscont This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OVS_REG_CONT
  *         @arg @ref LL_ADC_OVS_REG_DISCONT
  * @retval None
  */
static inline void LL_ADC_SetOverSamplingDiscont(ADC_TypeDef *ADCx, uint32_t OverSamplingDiscont)
{
  (((ADCx->CFGR2)) = ((((((ADCx->CFGR2))) & (~((0x1UL << (9U))))) | (OverSamplingDiscont))));
}

/**
  * @brief  Get ADC oversampling discontinuous mode (triggered mode)
  *         on the selected ADC group.
  * @note   Number of oversampled conversions are done either in:
  *         - continuous mode (all conversions of oversampling ratio
  *           are done from 1 trigger)
  *         - discontinuous mode (each conversion of oversampling ratio
  *           needs a trigger)
  * @rmtoll CFGR2    TROVS          LL_ADC_GetOverSamplingDiscont
  * @param  ADCx ADC instance
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_OVS_REG_CONT
  *         @arg @ref LL_ADC_OVS_REG_DISCONT
  */
static inline uint32_t LL_ADC_GetOverSamplingDiscont(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR2) & ((0x1UL << (9U)))));
}

/**
  * @brief  Set ADC oversampling
  *         (impacting both ADC groups regular and injected)
  * @note   This function set the 2 items of oversampling configuration:
  *         - ratio
  *         - shift
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be disabled or enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll CFGR2    OVSS           LL_ADC_ConfigOverSamplingRatioShift\n
  *         CFGR2    OVSR           LL_ADC_ConfigOverSamplingRatioShift
  * @param  ADCx ADC instance
  * @param  Ratio This parameter can be in the range from 1 to 1024.
  *         In the case of ADC3 can be one of the following values:
  *         @arg @ref LL_ADC_OVS_RATIO_2
  *         @arg @ref LL_ADC_OVS_RATIO_4
  *         @arg @ref LL_ADC_OVS_RATIO_8
  *         @arg @ref LL_ADC_OVS_RATIO_16
  *         @arg @ref LL_ADC_OVS_RATIO_32
  *         @arg @ref LL_ADC_OVS_RATIO_64
  *         @arg @ref LL_ADC_OVS_RATIO_128
  *         @arg @ref LL_ADC_OVS_RATIO_256
  * @param  Shift This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OVS_SHIFT_NONE
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_9
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_10
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_11
  * @retval None
  */
static inline void LL_ADC_ConfigOverSamplingRatioShift(ADC_TypeDef *ADCx, uint32_t Ratio, uint32_t Shift)
{
# 6423 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
  (((ADCx->CFGR2)) = ((((((ADCx->CFGR2))) & (~(((0xFUL << (5U)) | (0x3FFUL << (16U)))))) | ((Shift | (((Ratio - 1UL) << (16U))))))));


}

/**
  * @brief  Get ADC oversampling ratio
  *        (impacting both ADC groups regular and injected)
  * @rmtoll CFGR2    OVSR           LL_ADC_GetOverSamplingRatio
  * @param  ADCx ADC instance
  * @retval Ratio This parameter can be in the from 1 to 1024.
  *         In the case of ADC3 can be one of the following values:
  *         @arg @ref LL_ADC_OVS_RATIO_2
  *         @arg @ref LL_ADC_OVS_RATIO_4
  *         @arg @ref LL_ADC_OVS_RATIO_8
  *         @arg @ref LL_ADC_OVS_RATIO_16
  *         @arg @ref LL_ADC_OVS_RATIO_32
  *         @arg @ref LL_ADC_OVS_RATIO_64
  *         @arg @ref LL_ADC_OVS_RATIO_128
  *         @arg @ref LL_ADC_OVS_RATIO_256
*/
static inline uint32_t LL_ADC_GetOverSamplingRatio(const ADC_TypeDef *ADCx)
{
# 6457 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_adc.h"
  return (((uint32_t)(((ADCx->CFGR2) & ((0x3FFUL << (16U))))) + (1UL << (16U))) >> (16U));


}

/**
  * @brief  Get ADC oversampling shift
  *        (impacting both ADC groups regular and injected)
  * @rmtoll CFGR2    OVSS           LL_ADC_GetOverSamplingShift
  * @param  ADCx ADC instance
  * @retval Shift This parameter can be one of the following values:
  *         @arg @ref LL_ADC_OVS_SHIFT_NONE
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_1
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_2
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_3
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_4
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_5
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_6
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_7
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_8
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_9
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_10
  *         @arg @ref LL_ADC_OVS_SHIFT_RIGHT_11
*/
static inline uint32_t LL_ADC_GetOverSamplingShift(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->CFGR2) & ((0xFUL << (5U)))));
}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_Configuration_ADC_Multimode Configuration of ADC hierarchical scope: multimode
  * @{
  */
/**
  * @brief  Set ADC boost mode.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC boost must be configured, without calibration on going, without conversion
  *         on going on group regular.
  * @rmtoll CR  BOOST      LL_ADC_SetBoostMode
  * @param  ADCx ADC instance
  * @param  BoostMode This parameter can be one of the following values:
  *         @arg @ref LL_ADC_BOOST_MODE_6MHZ25
  *         @arg @ref LL_ADC_BOOST_MODE_12MHZ5
  *         @arg @ref LL_ADC_BOOST_MODE_20MHZ
  *         @arg @ref LL_ADC_BOOST_MODE_25MHZ
  *         @arg @ref LL_ADC_BOOST_MODE_50MHZ
  * @retval None
  */
static inline void LL_ADC_SetBoostMode(ADC_TypeDef *ADCx, uint32_t BoostMode)
{






  if ((((DBGMCU_TypeDef *) (0x5C001000UL))->IDCODE & 0x30000000UL) == 0x10000000UL)
  {
    (((ADCx->CR)) = ((((((ADCx->CR))) & (~((0x1UL << (8U))))) | ((BoostMode >> 2UL)))));
  }
  else
  {
    (((ADCx->CR)) = ((((((ADCx->CR))) & (~((0x3UL << (8U))))) | ((BoostMode & (0x3UL << (8U)))))));
  }

}


/**
  * @brief  Get ADC boost mode.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC boost must be configured, without calibration on going, without conversion
  *         on going on group regular.
  * @rmtoll CR  BOOST      LL_ADC_GetBoostMode
  * @param  ADCx ADC instance
  * @retval 0: Boost disabled 1: Boost enabled
  */
static inline uint32_t LL_ADC_GetBoostMode(const ADC_TypeDef *ADCx)
{
  if ((((DBGMCU_TypeDef *) (0x5C001000UL))->IDCODE & 0x30000000UL) == 0x10000000UL)
  {
    return (uint32_t)((ADCx->CR) & ((0x1UL << (8U))));
  }
  else
  {
    return ((((ADCx->CR) & ((0x3UL << (8U)))) == ((0x3UL << (8U)))) ? 1UL : 0UL);
  }
}

/**
  * @brief  Set ADC multimode configuration to operate in independent mode
  *         or multimode (for devices with several ADC instances).
  * @note   If multimode configuration: the selected ADC instance is
  *         either master or slave depending on hardware.
  *         Refer to reference manual.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         All ADC instances of the ADC common group must be disabled.
  *         This check can be done with function @ref LL_ADC_IsEnabled() for each
  *         ADC instance or by using helper macro
  *         @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
  * @rmtoll CCR      DUAL           LL_ADC_SetMultimode
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @param  Multimode This parameter can be one of the following values:
  *         @arg @ref LL_ADC_MULTI_INDEPENDENT
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
  *         @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
  *         @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
  * @retval None
  */
static inline void LL_ADC_SetMultimode(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t Multimode)
{
  (((ADCxy_COMMON->CCR)) = ((((((ADCxy_COMMON->CCR))) & (~((0x1FUL << (0U))))) | (Multimode))));
}

/**
  * @brief  Get ADC multimode configuration to operate in independent mode
  *         or multimode (for devices with several ADC instances).
  * @note   If multimode configuration: the selected ADC instance is
  *         either master or slave depending on hardware.
  *         Refer to reference manual.
  * @rmtoll CCR      DUAL           LL_ADC_GetMultimode
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_MULTI_INDEPENDENT
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIMULT
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_INTERL
  *         @arg @ref LL_ADC_MULTI_DUAL_INJ_SIMULT
  *         @arg @ref LL_ADC_MULTI_DUAL_INJ_ALTERN
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_SIM
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_SIM_INJ_ALT
  *         @arg @ref LL_ADC_MULTI_DUAL_REG_INT_INJ_SIM
  */
static inline uint32_t LL_ADC_GetMultimode(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return (uint32_t)(((ADCxy_COMMON->CCR) & ((0x1FUL << (0U)))));
}

/**
  * @brief  Set ADC multimode conversion data transfer: no transfer
  *         or transfer by DMA.
  * @note   If ADC multimode transfer by DMA is not selected:
  *         each ADC uses its own DMA channel, with its individual
  *         DMA transfer settings.
  *         If ADC multimode transfer by DMA is selected:
  *         One DMA channel is used for both ADC (DMA of ADC master)
  *         Specifies the DMA requests mode:
  *         - Limited mode (One shot mode): DMA transfer requests are stopped
  *           when number of DMA data transfers (number of
  *           ADC conversions) is reached.
  *           This ADC mode is intended to be used with DMA mode non-circular.
  *         - Unlimited mode: DMA transfer requests are unlimited,
  *           whatever number of DMA data transfers (number of
  *           ADC conversions).
  *           This ADC mode is intended to be used with DMA mode circular.
  * @note   If ADC DMA requests mode is set to unlimited and DMA is set to
  *         mode non-circular:
  *         when DMA transfers size will be reached, DMA will stop transfers of
  *         ADC conversions data ADC will raise an overrun error
  *         (overrun flag and interruption if enabled).
  * @note   How to retrieve multimode conversion data:
  *         Whatever multimode transfer by DMA setting: using function
  *         @ref LL_ADC_REG_ReadMultiConversionData32().
  *         If ADC multimode transfer by DMA is selected: conversion data
  *         is a raw data with ADC master and slave concatenated.
  *         A macro is available to get the conversion data of
  *         ADC master or ADC slave: see helper macro
  *         @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         All ADC instances of the ADC common group must be disabled
  *         or enabled without conversion on going on group regular.
  * @rmtoll CCR      DAMDF          LL_ADC_GetMultiDMATransfer\n
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @param  MultiDMATransfer This parameter can be one of the following values:
  *         @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
  *         @arg @ref LL_ADC_MULTI_REG_DMA_RES_32_10B
  *         @arg @ref LL_ADC_MULTI_REG_DMA_RES_8B
  * @retval None
  */
static inline void LL_ADC_SetMultiDMATransfer(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiDMATransfer)
{
  (((ADCxy_COMMON->CCR)) = ((((((ADCxy_COMMON->CCR))) & (~((0x3UL << (14U))))) | (MultiDMATransfer))));
}

/**
  * @brief  Get ADC multimode conversion data transfer: no transfer
  *         or transfer by DMA.
  * @note   If ADC multimode transfer by DMA is not selected:
  *         each ADC uses its own DMA channel, with its individual
  *         DMA transfer settings.
  *         If ADC multimode transfer by DMA is selected:
  *         One DMA channel is used for both ADC (DMA of ADC master)
  *         Specifies the DMA requests mode:
  *         - Limited mode (One shot mode): DMA transfer requests are stopped
  *           when number of DMA data transfers (number of
  *           ADC conversions) is reached.
  *           This ADC mode is intended to be used with DMA mode non-circular.
  *         - Unlimited mode: DMA transfer requests are unlimited,
  *           whatever number of DMA data transfers (number of
  *           ADC conversions).
  *           This ADC mode is intended to be used with DMA mode circular.
  * @note   If ADC DMA requests mode is set to unlimited and DMA is set to
  *         mode non-circular:
  *         when DMA transfers size will be reached, DMA will stop transfers of
  *         ADC conversions data ADC will raise an overrun error
  *         (overrun flag and interruption if enabled).
  * @note   How to retrieve multimode conversion data:
  *         Whatever multimode transfer by DMA setting: using function
  *         @ref LL_ADC_REG_ReadMultiConversionData32().
  *         If ADC multimode transfer by DMA is selected: conversion data
  *         is a raw data with ADC master and slave concatenated.
  *         A macro is available to get the conversion data of
  *         ADC master or ADC slave: see helper macro
  *         @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
  * @rmtoll CCR      DAMDF          LL_ADC_GetMultiDMATransfer\n
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_MULTI_REG_DMA_EACH_ADC
  *         @arg @ref LL_ADC_MULTI_REG_DMA_RES_32_10B
  *         @arg @ref LL_ADC_MULTI_REG_DMA_RES_8B
  */
static inline uint32_t LL_ADC_GetMultiDMATransfer(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return (uint32_t)(((ADCxy_COMMON->CCR) & ((0x3UL << (14U)))));
}

/**
  * @brief  Set ADC multimode delay between 2 sampling phases.
  * @note   The sampling delay range depends on ADC resolution:
  *         - ADC resolution 12 bits can have maximum delay of 12 cycles.
  *         - ADC resolution 10 bits can have maximum delay of 10 cycles.
  *         - ADC resolution  8 bits can have maximum delay of  8 cycles.
  *         - ADC resolution  6 bits can have maximum delay of  6 cycles.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         All ADC instances of the ADC common group must be disabled.
  *         This check can be done with function @ref LL_ADC_IsEnabled() for each
  *         ADC instance or by using helper macro helper macro
  *         @ref __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE().
  * @rmtoll CCR      DELAY          LL_ADC_SetMultiTwoSamplingDelay
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @param  MultiTwoSamplingDelay This parameter can be one of the following values:
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE_5
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES_5
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES_5
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES_5 (1)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES_5_8_BITS
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES_5 (2)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES_5_10_BITS
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES  (3)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES_5 (4)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES_5_12_BITS
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES_5 (5)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES  (6)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES  (7)
  *
  *         (1) Parameter available only if ADC resolution is 16, 14, 12 or 10 bits.
  *         (2) Parameter available only if ADC resolution is 16, 14 or 12  bits.
  *         (3) Parameter available only if ADC resolution is 10 or 8 bits.
  *         (4) Parameter available only if ADC resolution is 16 or 14 bits.
  *         (5) Parameter available only if ADC resolution is 16 bits.
  *         (6) Parameter available only if ADC resolution is 12 bits.
  *         (7) Parameter available only if ADC resolution is 16 or 14 bits.
  * @retval None
  */
static inline void LL_ADC_SetMultiTwoSamplingDelay(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t MultiTwoSamplingDelay)
{
  (((ADCxy_COMMON->CCR)) = ((((((ADCxy_COMMON->CCR))) & (~((0xFUL << (8U))))) | (MultiTwoSamplingDelay))));
}

/**
  * @brief  Get ADC multimode delay between 2 sampling phases.
  * @rmtoll CCR      DELAY          LL_ADC_GetMultiTwoSamplingDelay
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval Returned value can be one of the following values:
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_1CYCLE_5
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_2CYCLES_5
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_3CYCLES_5
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES_5 (1)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_4CYCLES_5_8_BITS
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES_5 (2)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_5CYCLES_5_10_BITS
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES  (3)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES_5 (4)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_6CYCLES_5_12_BITS
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_7CYCLES_5 (5)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_8CYCLES  (6)
  *         @arg @ref LL_ADC_MULTI_TWOSMP_DELAY_9CYCLES  (7)
  *
  *         (1) Parameter available only if ADC resolution is 16, 14, 12 or 10 bits.
  *         (2) Parameter available only if ADC resolution is 16, 14 or 12  bits.
  *         (3) Parameter available only if ADC resolution is 10 or 8 bits.
  *         (4) Parameter available only if ADC resolution is 16 or 14 bits.
  *         (5) Parameter available only if ADC resolution is 16 bits.
  *         (6) Parameter available only if ADC resolution is 12 bits.
  *         (7) Parameter available only if ADC resolution is 16 or 14 bits.
  */
static inline uint32_t LL_ADC_GetMultiTwoSamplingDelay(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return (uint32_t)(((ADCxy_COMMON->CCR) & ((0xFUL << (8U)))));
}

/**
  * @}
  */
/** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance
  * @{
  */

/**
  * @brief  Put ADC instance in deep power down state.
  * @note   In case of ADC calibration necessary: When ADC is in deep-power-down
  *         state, the internal analog calibration is lost. After exiting from
  *         deep power down, calibration must be relaunched or calibration factor
  *         (preliminarily saved) must be set back into calibration register.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be ADC disabled.
  * @rmtoll CR       DEEPPWD        LL_ADC_EnableDeepPowerDown
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableDeepPowerDown(ADC_TypeDef *ADCx)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~(((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U)))))) | ((0x1UL << (29U))))))

                            ;
}

/**
  * @brief  Disable ADC deep power down mode.
  * @note   In case of ADC calibration necessary: When ADC is in deep-power-down
  *         state, the internal analog calibration is lost. After exiting from
  *         deep power down, calibration must be relaunched or calibration factor
  *         (preliminarily saved) must be set back into calibration register.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be ADC disabled.
  * @rmtoll CR       DEEPPWD        LL_ADC_DisableDeepPowerDown
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableDeepPowerDown(ADC_TypeDef *ADCx)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  ((ADCx->CR) &= ~(((0x1UL << (29U)) | ((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U))))));
}

/**
  * @brief  Get the selected ADC instance deep power down state.
  * @rmtoll CR       DEEPPWD        LL_ADC_IsDeepPowerDownEnabled
  * @param  ADCx ADC instance
  * @retval 0: deep power down is disabled, 1: deep power down is enabled.
  */
static inline uint32_t LL_ADC_IsDeepPowerDownEnabled(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CR) & ((0x1UL << (29U)))) == ((0x1UL << (29U)))) ? 1UL : 0UL);
}

/**
  * @brief  Enable ADC instance internal voltage regulator.
  * @note   On this STM32 series, after ADC internal voltage regulator enable,
  *         a delay for ADC internal voltage regulator stabilization
  *         is required before performing a ADC calibration or ADC enable.
  *         Refer to device datasheet, parameter tADCVREG_STUP.
  *         Refer to literal @ref LL_ADC_DELAY_INTERNAL_REGUL_STAB_US.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be ADC disabled.
  * @rmtoll CR       ADVREGEN       LL_ADC_EnableInternalRegulator
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableInternalRegulator(ADC_TypeDef *ADCx)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~(((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U)))))) | ((0x1UL << (28U))))))

                             ;
}

/**
  * @brief  Disable ADC internal voltage regulator.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be ADC disabled.
  * @rmtoll CR       ADVREGEN       LL_ADC_DisableInternalRegulator
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableInternalRegulator(ADC_TypeDef *ADCx)
{
  ((ADCx->CR) &= ~(((0x1UL << (28U)) | ((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U))))));
}

/**
  * @brief  Get the selected ADC instance internal voltage regulator state.
  * @rmtoll CR       ADVREGEN       LL_ADC_IsInternalRegulatorEnabled
  * @param  ADCx ADC instance
  * @retval 0: internal regulator is disabled, 1: internal regulator is enabled.
  */
static inline uint32_t LL_ADC_IsInternalRegulatorEnabled(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CR) & ((0x1UL << (28U)))) == ((0x1UL << (28U)))) ? 1UL : 0UL);
}

/**
  * @brief  Enable the selected ADC instance.
  * @note   On this STM32 series, after ADC enable, a delay for
  *         ADC internal analog stabilization is required before performing a
  *         ADC conversion start.
  *         Refer to device datasheet, parameter tSTAB.
  * @note   On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC
  *         is enabled and when conversion clock is active.
  *         (not only core clock: this ADC has a dual clock domain)
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be ADC disabled and ADC internal voltage regulator enabled.
  * @rmtoll CR       ADEN           LL_ADC_Enable
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_Enable(ADC_TypeDef *ADCx)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~(((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U)))))) | ((0x1UL << (0U))))))

                         ;
}

/**
  * @brief  Disable the selected ADC instance.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be not disabled. Must be enabled without conversion on going
  *         on either groups regular or injected.
  * @rmtoll CR       ADDIS          LL_ADC_Disable
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_Disable(ADC_TypeDef *ADCx)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~(((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U)))))) | ((0x1UL << (1U))))))

                          ;
}

/**
  * @brief  Get the selected ADC instance enable state.
  * @note   On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC
  *         is enabled and when conversion clock is active.
  *         (not only core clock: this ADC has a dual clock domain)
  * @rmtoll CR       ADEN           LL_ADC_IsEnabled
  * @param  ADCx ADC instance
  * @retval 0: ADC is disabled, 1: ADC is enabled.
  */
static inline uint32_t LL_ADC_IsEnabled(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CR) & ((0x1UL << (0U)))) == ((0x1UL << (0U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get the selected ADC instance disable state.
  * @rmtoll CR       ADDIS          LL_ADC_IsDisableOngoing
  * @param  ADCx ADC instance
  * @retval 0: no ADC disable command on going.
  */
static inline uint32_t LL_ADC_IsDisableOngoing(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CR) & ((0x1UL << (1U)))) == ((0x1UL << (1U)))) ? 1UL : 0UL);
}

/**
  * @brief  Start ADC calibration in the mode single-ended
  *         or differential (for devices with differential mode available).
  * @note   On this STM32 series, a minimum number of ADC clock cycles
  *         are required between ADC end of calibration and ADC enable.
  *         Refer to literal @ref LL_ADC_DELAY_CALIB_ENABLE_ADC_CYCLES.
  * @note   Calibration duration:
  *         - Calibration of offset: 520 ADC clock cycles
  *         - Calibration of linearity: 131072 ADC clock cycles
  * @note   For devices with differential mode available:
  *         Calibration of offset is specific to each of
  *         single-ended and differential modes
  *         (calibration run must be performed for each of these
  *         differential modes, if used afterwards and if the application
  *         requires their calibration).
  *         Calibration of linearity is common to both
  *         single-ended and differential modes
  *         (calibration run can be performed only once).
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be ADC disabled.
  * @rmtoll CR       ADCAL          LL_ADC_StartCalibration\n
  *         CR       ADCALDIF       LL_ADC_StartCalibration\n
  *         CR       ADCALLIN       LL_ADC_StartCalibration
  * @param  ADCx ADC instance
  * @param  CalibrationMode This parameter can be one of the following values:
  *         @arg @ref LL_ADC_CALIB_OFFSET
  *         @arg @ref LL_ADC_CALIB_OFFSET_LINEARITY
  * @param  SingleDiff This parameter can be one of the following values:
  *         @arg @ref LL_ADC_SINGLE_ENDED
  *         @arg @ref LL_ADC_DIFFERENTIAL_ENDED
  * @retval None
  */
static inline void LL_ADC_StartCalibration(ADC_TypeDef *ADCx, uint32_t CalibrationMode, uint32_t SingleDiff)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~((0x1UL << (16U)) | (0x1UL << (30U)) | ((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U)))))) | ((0x1UL << (31U)) | (CalibrationMode & ((0x1UL << (16U)))) | (SingleDiff & ((0x1UL << (30U))))))))

                                                                                                                     ;
}

/**
  * @brief  Get ADC calibration state.
  * @rmtoll CR       ADCAL          LL_ADC_IsCalibrationOnGoing
  * @param  ADCx ADC instance
  * @retval 0: calibration complete, 1: calibration in progress.
  */
static inline uint32_t LL_ADC_IsCalibrationOnGoing(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CR) & ((0x1UL << (31U)))) == ((0x1UL << (31U)))) ? 1UL : 0UL);
}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regular
  * @{
  */

/**
  * @brief  Start ADC group regular conversion.
  * @note   On this STM32 series, this function is relevant for both
  *         internal trigger (SW start) and external trigger:
  *         - If ADC trigger has been set to software start, ADC conversion
  *           starts immediately.
  *         - If ADC trigger has been set to external trigger, ADC conversion
  *           will start at next trigger event (on the selected trigger edge)
  *           following the ADC start conversion command.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be enabled without conversion on going on group regular,
  *         without conversion stop command on going on group regular,
  *         without ADC disable command on going.
  * @rmtoll CR       ADSTART        LL_ADC_REG_StartConversion
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_REG_StartConversion(ADC_TypeDef *ADCx)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~(((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U)))))) | ((0x1UL << (2U))))))

                            ;
}

/**
  * @brief  Stop ADC group regular conversion.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be enabled with conversion on going on group regular,
  *         without ADC disable command on going.
  * @rmtoll CR       ADSTP          LL_ADC_REG_StopConversion
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_REG_StopConversion(ADC_TypeDef *ADCx)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~(((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U)))))) | ((0x1UL << (4U))))))

                          ;
}

/**
  * @brief  Get ADC group regular conversion state.
  * @rmtoll CR       ADSTART        LL_ADC_REG_IsConversionOngoing
  * @param  ADCx ADC instance
  * @retval 0: no conversion is on going on ADC group regular.
  */
static inline uint32_t LL_ADC_REG_IsConversionOngoing(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CR) & ((0x1UL << (2U)))) == ((0x1UL << (2U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get ADC group regular command of conversion stop state
  * @rmtoll CR       ADSTP          LL_ADC_REG_IsStopConversionOngoing
  * @param  ADCx ADC instance
  * @retval 0: no command of conversion stop is on going on ADC group regular.
  */
static inline uint32_t LL_ADC_REG_IsStopConversionOngoing(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CR) & ((0x1UL << (4U)))) == ((0x1UL << (4U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get ADC group regular conversion data, range fit for
  *         all ADC configurations: all ADC resolutions and
  *         all oversampling increased data width (for devices
  *         with feature oversampling).
  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData32
  * @param  ADCx ADC instance
  * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
  */
static inline uint32_t LL_ADC_REG_ReadConversionData32(const ADC_TypeDef *ADCx)
{
  return (uint32_t)(((ADCx->DR) & ((0xFFFFFFFFUL << (0U)))));
}

/**
  * @brief  Get ADC group regular conversion data, range fit for
  *         ADC resolution 16 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_REG_ReadConversionData32.
  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData16
  * @param  ADCx ADC instance
  * @retval Value between Min_Data=0x00 and Max_Data=0xFFFF
  */
static inline uint16_t LL_ADC_REG_ReadConversionData16(const ADC_TypeDef *ADCx)
{
  return (uint16_t)(((ADCx->DR) & ((0xFFFFFFFFUL << (0U)))));
}

/**
  * @brief  Get ADC group regular conversion data, range fit for
  *         ADC resolution 14 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_REG_ReadConversionData32.
  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData14
  * @param  ADCx ADC instance
  * @retval Value between Min_Data=0x00 and Max_Data=0x3FF
  */
static inline uint16_t LL_ADC_REG_ReadConversionData14(const ADC_TypeDef *ADCx)
{
  return (uint16_t)(((ADCx->DR) & ((0xFFFFFFFFUL << (0U)))));
}

/**
  * @brief  Get ADC group regular conversion data, range fit for
  *         ADC resolution 12 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_REG_ReadConversionData32.
  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData12
  * @param  ADCx ADC instance
  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
  */
static inline uint16_t LL_ADC_REG_ReadConversionData12(const ADC_TypeDef *ADCx)
{
  return (uint16_t)(((ADCx->DR) & ((0xFFFFFFFFUL << (0U)))));
}

/**
  * @brief  Get ADC group regular conversion data, range fit for
  *         ADC resolution 10 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_REG_ReadConversionData32.
  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData10
  * @param  ADCx ADC instance
  * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
  */
static inline uint16_t LL_ADC_REG_ReadConversionData10(const ADC_TypeDef *ADCx)
{
  return (uint16_t)(((ADCx->DR) & ((0xFFFFFFFFUL << (0U)))));
}

/**
  * @brief  Get ADC group regular conversion data, range fit for
  *         ADC resolution 8 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_REG_ReadConversionData32.
  * @rmtoll DR       RDATA          LL_ADC_REG_ReadConversionData8
  * @param  ADCx ADC instance
  * @retval Value between Min_Data=0x00 and Max_Data=0xFF
  */
static inline uint8_t LL_ADC_REG_ReadConversionData8(const ADC_TypeDef *ADCx)
{
  return (uint8_t)(((ADCx->DR) & ((0xFFFFFFFFUL << (0U)))));
}
/**
  * @brief  Get ADC multimode conversion data of ADC master, ADC slave
  *         or raw data with ADC master and slave concatenated.
  * @note   If raw data with ADC master and slave concatenated is retrieved,
  *         a macro is available to get the conversion data of
  *         ADC master or ADC slave: see helper macro
  *         @ref __LL_ADC_MULTI_CONV_DATA_MASTER_SLAVE().
  *         (however this macro is mainly intended for multimode
  *         transfer by DMA, because this function can do the same
  *         by getting multimode conversion data of ADC master or ADC slave
  *         separately).
  * @rmtoll CDR      RDATA_MST      LL_ADC_REG_ReadMultiConversionData32\n
  *         CDR      RDATA_SLV      LL_ADC_REG_ReadMultiConversionData32
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @param  ConversionData This parameter can be one of the following values:
  *         @arg @ref LL_ADC_MULTI_MASTER
  *         @arg @ref LL_ADC_MULTI_SLAVE
  *         @arg @ref LL_ADC_MULTI_MASTER_SLAVE
  * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
  */
static inline uint32_t LL_ADC_REG_ReadMultiConversionData32(const ADC_Common_TypeDef *ADCxy_COMMON, uint32_t ConversionData)
{
  return (uint32_t)(((ADCxy_COMMON->CDR) & (ConversionData))

                    >> ((__CLZ(__RBIT(ConversionData))) & 0x1FUL)
                   );
}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group injected
  * @{
  */

/**
  * @brief  Start ADC group injected conversion.
  * @note   On this STM32 series, this function is relevant for both
  *         internal trigger (SW start) and external trigger:
  *         - If ADC trigger has been set to software start, ADC conversion
  *           starts immediately.
  *         - If ADC trigger has been set to external trigger, ADC conversion
  *           will start at next trigger event (on the selected trigger edge)
  *           following the ADC start conversion command.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be enabled without conversion on going on group injected,
  *         without conversion stop command on going on group injected,
  *         without ADC disable command on going.
  * @rmtoll CR       JADSTART       LL_ADC_INJ_StartConversion
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_INJ_StartConversion(ADC_TypeDef *ADCx)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~(((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U)))))) | ((0x1UL << (3U))))))

                             ;
}

/**
  * @brief  Stop ADC group injected conversion.
  * @note   On this STM32 series, setting of this feature is conditioned to
  *         ADC state:
  *         ADC must be enabled with conversion on going on group injected,
  *         without ADC disable command on going.
  * @rmtoll CR       JADSTP         LL_ADC_INJ_StopConversion
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_INJ_StopConversion(ADC_TypeDef *ADCx)
{
  /* Note: Write register with some additional bits forced to state reset     */
  /*       instead of modifying only the selected bit for this function,      */
  /*       to not interfere with bits with HW property "rs".                  */
  (((ADCx->CR)) = ((((((ADCx->CR))) & (~(((0x1UL << (31U)) | (0x1UL << (5U)) | (0x1UL << (4U)) | (0x1UL << (3U)) | (0x1UL << (2U)) | (0x1UL << (1U)) | (0x1UL << (0U)))))) | ((0x1UL << (5U))))))

                           ;
}

/**
  * @brief  Get ADC group injected conversion state.
  * @rmtoll CR       JADSTART       LL_ADC_INJ_IsConversionOngoing
  * @param  ADCx ADC instance
  * @retval 0: no conversion is on going on ADC group injected.
  */
static inline uint32_t LL_ADC_INJ_IsConversionOngoing(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CR) & ((0x1UL << (3U)))) == ((0x1UL << (3U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get ADC group injected command of conversion stop state
  * @rmtoll CR       JADSTP         LL_ADC_INJ_IsStopConversionOngoing
  * @param  ADCx ADC instance
  * @retval 0: no command of conversion stop is on going on ADC group injected.
  */
static inline uint32_t LL_ADC_INJ_IsStopConversionOngoing(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->CR) & ((0x1UL << (5U)))) == ((0x1UL << (5U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get ADC group injected conversion data, range fit for
  *         all ADC configurations: all ADC resolutions and
  *         all oversampling increased data width (for devices
  *         with feature oversampling).
  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData32\n
  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData32\n
  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData32\n
  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData32
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_RANK_1
  *         @arg @ref LL_ADC_INJ_RANK_2
  *         @arg @ref LL_ADC_INJ_RANK_3
  *         @arg @ref LL_ADC_INJ_RANK_4
  * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
  */
static inline uint32_t LL_ADC_INJ_ReadConversionData32(const ADC_TypeDef *ADCx, uint32_t Rank)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->JDR1)) + ((((Rank & ((0x00000000UL) | (0x00000100UL) | (0x00000200UL) | (0x00000300UL))) >> (8UL))) << 2UL))));

  return (uint32_t)(((*preg) & ((0xFFFFFFFFUL << (0U))))

                   );
}

/**
  * @brief  Get ADC group injected conversion data, range fit for
  *         ADC resolution 16 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_INJ_ReadConversionData32.
  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData16\n
  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData16\n
  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData16\n
  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData16
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_RANK_1
  *         @arg @ref LL_ADC_INJ_RANK_2
  *         @arg @ref LL_ADC_INJ_RANK_3
  *         @arg @ref LL_ADC_INJ_RANK_4
  * @retval Value between Min_Data=0x000 and Max_Data=0xFFFF
  */
static inline uint16_t LL_ADC_INJ_ReadConversionData16(const ADC_TypeDef *ADCx, uint32_t Rank)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->JDR1)) + ((((Rank & ((0x00000000UL) | (0x00000100UL) | (0x00000200UL) | (0x00000300UL))) >> (8UL))) << 2UL))));

  return (uint16_t)(((*preg) & ((0xFFFFFFFFUL << (0U))))

                   );
}

/**
  * @brief  Get ADC group injected conversion data, range fit for
  *         ADC resolution 14 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_INJ_ReadConversionData32.
  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData14\n
  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData14\n
  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData14\n
  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData14
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_RANK_1
  *         @arg @ref LL_ADC_INJ_RANK_2
  *         @arg @ref LL_ADC_INJ_RANK_3
  *         @arg @ref LL_ADC_INJ_RANK_4
  * @retval Value between Min_Data=0x000 and Max_Data=0x3FFF
  */
static inline uint16_t LL_ADC_INJ_ReadConversionData14(const ADC_TypeDef *ADCx, uint32_t Rank)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->JDR1)) + ((((Rank & ((0x00000000UL) | (0x00000100UL) | (0x00000200UL) | (0x00000300UL))) >> (8UL))) << 2UL))));

  return (uint16_t)(((*preg) & ((0xFFFFFFFFUL << (0U))))

                   );
}

/**
  * @brief  Get ADC group injected conversion data, range fit for
  *         ADC resolution 12 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_INJ_ReadConversionData32.
  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData12\n
  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData12\n
  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData12\n
  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData12
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_RANK_1
  *         @arg @ref LL_ADC_INJ_RANK_2
  *         @arg @ref LL_ADC_INJ_RANK_3
  *         @arg @ref LL_ADC_INJ_RANK_4
  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
  */
static inline uint16_t LL_ADC_INJ_ReadConversionData12(const ADC_TypeDef *ADCx, uint32_t Rank)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->JDR1)) + ((((Rank & ((0x00000000UL) | (0x00000100UL) | (0x00000200UL) | (0x00000300UL))) >> (8UL))) << 2UL))));

  return (uint16_t)(((*preg) & ((0xFFFFFFFFUL << (0U))))

                   );
}

/**
  * @brief  Get ADC group injected conversion data, range fit for
  *         ADC resolution 10 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_INJ_ReadConversionData32.
  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData10\n
  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData10\n
  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData10\n
  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData10
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_RANK_1
  *         @arg @ref LL_ADC_INJ_RANK_2
  *         @arg @ref LL_ADC_INJ_RANK_3
  *         @arg @ref LL_ADC_INJ_RANK_4
  * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
  */
static inline uint16_t LL_ADC_INJ_ReadConversionData10(const ADC_TypeDef *ADCx, uint32_t Rank)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->JDR1)) + ((((Rank & ((0x00000000UL) | (0x00000100UL) | (0x00000200UL) | (0x00000300UL))) >> (8UL))) << 2UL))));

  return (uint16_t)(((*preg) & ((0xFFFFFFFFUL << (0U))))

                   );
}

/**
  * @brief  Get ADC group injected conversion data, range fit for
  *         ADC resolution 8 bits.
  * @note   For devices with feature oversampling: Oversampling
  *         can increase data width, function for extended range
  *         may be needed: @ref LL_ADC_INJ_ReadConversionData32.
  * @rmtoll JDR1     JDATA          LL_ADC_INJ_ReadConversionData8\n
  *         JDR2     JDATA          LL_ADC_INJ_ReadConversionData8\n
  *         JDR3     JDATA          LL_ADC_INJ_ReadConversionData8\n
  *         JDR4     JDATA          LL_ADC_INJ_ReadConversionData8
  * @param  ADCx ADC instance
  * @param  Rank This parameter can be one of the following values:
  *         @arg @ref LL_ADC_INJ_RANK_1
  *         @arg @ref LL_ADC_INJ_RANK_2
  *         @arg @ref LL_ADC_INJ_RANK_3
  *         @arg @ref LL_ADC_INJ_RANK_4
  * @retval Value between Min_Data=0x00 and Max_Data=0xFF
  */
static inline uint8_t LL_ADC_INJ_ReadConversionData8(const ADC_TypeDef *ADCx, uint32_t Rank)
{
  const volatile uint32_t *preg = ((volatile uint32_t *)((uint32_t) ((uint32_t)(&(ADCx->JDR1)) + ((((Rank & ((0x00000000UL) | (0x00000100UL) | (0x00000200UL) | (0x00000300UL))) >> (8UL))) << 2UL))));

  return (uint8_t)(((*preg) & ((0xFFFFFFFFUL << (0U))))

                  );
}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_FLAG_Management ADC flag management
  * @{
  */

/**
  * @brief  Get flag ADC ready.
  * @note   On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC
  *         is enabled and when conversion clock is active.
  *         (not only core clock: this ADC has a dual clock domain)
  * @rmtoll ISR      ADRDY          LL_ADC_IsActiveFlag_ADRDY
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_ADRDY(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (0U)))) == ((0x1UL << (0U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC group regular end of unitary conversion.
  * @rmtoll ISR      EOC            LL_ADC_IsActiveFlag_EOC
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_EOC(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (2U)))) == ((0x1UL << (2U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC group regular end of sequence conversions.
  * @rmtoll ISR      EOS            LL_ADC_IsActiveFlag_EOS
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_EOS(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (3U)))) == ((0x1UL << (3U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC group regular overrun.
  * @rmtoll ISR      OVR            LL_ADC_IsActiveFlag_OVR
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_OVR(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (4U)))) == ((0x1UL << (4U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC group regular end of sampling phase.
  * @rmtoll ISR      EOSMP          LL_ADC_IsActiveFlag_EOSMP
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_EOSMP(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (1U)))) == ((0x1UL << (1U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC group injected end of unitary conversion.
  * @rmtoll ISR      JEOC           LL_ADC_IsActiveFlag_JEOC
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_JEOC(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (5U)))) == ((0x1UL << (5U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC group injected end of sequence conversions.
  * @rmtoll ISR      JEOS           LL_ADC_IsActiveFlag_JEOS
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_JEOS(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (6U)))) == ((0x1UL << (6U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC group injected contexts queue overflow.
  * @rmtoll ISR      JQOVF          LL_ADC_IsActiveFlag_JQOVF
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_JQOVF(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (10U)))) == ((0x1UL << (10U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC LDO output voltage ready bit.
  * @rmtoll ISR      LDORDY          LL_ADC_IsActiveFlag_LDORDY
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_LDORDY(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (12U)))) == ((0x1UL << (12U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC analog watchdog 1 flag
  * @rmtoll ISR      AWD1           LL_ADC_IsActiveFlag_AWD1
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_AWD1(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (7U)))) == ((0x1UL << (7U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC analog watchdog 2.
  * @rmtoll ISR      AWD2           LL_ADC_IsActiveFlag_AWD2
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_AWD2(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (8U)))) == ((0x1UL << (8U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag ADC analog watchdog 3.
  * @rmtoll ISR      AWD3           LL_ADC_IsActiveFlag_AWD3
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_AWD3(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->ISR) & ((0x1UL << (9U)))) == ((0x1UL << (9U)))) ? 1UL : 0UL);
}

/**
  * @brief  Clear flag ADC ready.
  * @note   On this STM32 series, flag LL_ADC_FLAG_ADRDY is raised when the ADC
  *         is enabled and when conversion clock is active.
  *         (not only core clock: this ADC has a dual clock domain)
  * @rmtoll ISR      ADRDY          LL_ADC_ClearFlag_ADRDY
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_ADRDY(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (0U))));
}

/**
  * @brief  Clear flag ADC group regular end of unitary conversion.
  * @rmtoll ISR      EOC            LL_ADC_ClearFlag_EOC
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_EOC(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (2U))));
}

/**
  * @brief  Clear flag ADC group regular end of sequence conversions.
  * @rmtoll ISR      EOS            LL_ADC_ClearFlag_EOS
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_EOS(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (3U))));
}

/**
  * @brief  Clear flag ADC group regular overrun.
  * @rmtoll ISR      OVR            LL_ADC_ClearFlag_OVR
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_OVR(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (4U))));
}

/**
  * @brief  Clear flag ADC group regular end of sampling phase.
  * @rmtoll ISR      EOSMP          LL_ADC_ClearFlag_EOSMP
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_EOSMP(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (1U))));
}

/**
  * @brief  Clear flag ADC group injected end of unitary conversion.
  * @rmtoll ISR      JEOC           LL_ADC_ClearFlag_JEOC
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_JEOC(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (5U))));
}

/**
  * @brief  Clear flag ADC group injected end of sequence conversions.
  * @rmtoll ISR      JEOS           LL_ADC_ClearFlag_JEOS
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_JEOS(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (6U))));
}

/**
  * @brief  Clear flag ADC group injected contexts queue overflow.
  * @rmtoll ISR      JQOVF          LL_ADC_ClearFlag_JQOVF
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_JQOVF(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (10U))));
}

/**
  * @brief  Clear flag ADC analog watchdog 1.
  * @rmtoll ISR      AWD1           LL_ADC_ClearFlag_AWD1
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_AWD1(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (7U))));
}

/**
  * @brief  Clear flag ADC analog watchdog 2.
  * @rmtoll ISR      AWD2           LL_ADC_ClearFlag_AWD2
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_AWD2(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (8U))));
}

/**
  * @brief  Clear flag ADC analog watchdog 3.
  * @rmtoll ISR      AWD3           LL_ADC_ClearFlag_AWD3
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_ClearFlag_AWD3(ADC_TypeDef *ADCx)
{
  ((ADCx->ISR) = ((0x1UL << (9U))));
}

/**
  * @brief  Get flag multimode ADC ready of the ADC master.
  * @rmtoll CSR      ADRDY_MST      LL_ADC_IsActiveFlag_MST_ADRDY
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_ADRDY(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (0U)))) == ((0x1UL << (0U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC ready of the ADC slave.
  * @rmtoll CSR      ADRDY_SLV      LL_ADC_IsActiveFlag_SLV_ADRDY
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_ADRDY(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (16U)))) == ((0x1UL << (16U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group regular end of unitary conversion of the ADC master.
  * @rmtoll CSR      EOC_MST        LL_ADC_IsActiveFlag_MST_EOC
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_EOC(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (18U)))) == ((0x1UL << (18U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group regular end of unitary conversion of the ADC slave.
  * @rmtoll CSR      EOC_SLV        LL_ADC_IsActiveFlag_SLV_EOC
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_EOC(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (18U)))) == ((0x1UL << (18U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group regular end of sequence conversions of the ADC master.
  * @rmtoll CSR      EOS_MST        LL_ADC_IsActiveFlag_MST_EOS
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_EOS(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (3U)))) == ((0x1UL << (3U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group regular end of sequence conversions of the ADC slave.
  * @rmtoll CSR      EOS_SLV        LL_ADC_IsActiveFlag_SLV_EOS
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_EOS(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (19U)))) == ((0x1UL << (19U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group regular overrun of the ADC master.
  * @rmtoll CSR      OVR_MST        LL_ADC_IsActiveFlag_MST_OVR
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_OVR(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (4U)))) == ((0x1UL << (4U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group regular overrun of the ADC slave.
  * @rmtoll CSR      OVR_SLV        LL_ADC_IsActiveFlag_SLV_OVR
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_OVR(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (20U)))) == ((0x1UL << (20U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group regular end of sampling of the ADC master.
  * @rmtoll CSR      EOSMP_MST      LL_ADC_IsActiveFlag_MST_EOSMP
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_EOSMP(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (1U)))) == ((0x1UL << (1U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group regular end of sampling of the ADC slave.
  * @rmtoll CSR      EOSMP_SLV      LL_ADC_IsActiveFlag_SLV_EOSMP
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_EOSMP(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (17U)))) == ((0x1UL << (17U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group injected end of unitary conversion of the ADC master.
  * @rmtoll CSR      JEOC_MST       LL_ADC_IsActiveFlag_MST_JEOC
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_JEOC(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (5U)))) == ((0x1UL << (5U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group injected end of unitary conversion of the ADC slave.
  * @rmtoll CSR      JEOC_SLV       LL_ADC_IsActiveFlag_SLV_JEOC
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_JEOC(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (21U)))) == ((0x1UL << (21U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group injected end of sequence conversions of the ADC master.
  * @rmtoll CSR      JEOS_MST       LL_ADC_IsActiveFlag_MST_JEOS
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_JEOS(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (6U)))) == ((0x1UL << (6U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group injected end of sequence conversions of the ADC slave.
  * @rmtoll CSR      JEOS_SLV       LL_ADC_IsActiveFlag_SLV_JEOS
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_JEOS(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (22U)))) == ((0x1UL << (22U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group injected context queue overflow of the ADC master.
  * @rmtoll CSR      JQOVF_MST      LL_ADC_IsActiveFlag_MST_JQOVF
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_JQOVF(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (10U)))) == ((0x1UL << (10U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC group injected context queue overflow of the ADC slave.
  * @rmtoll CSR      JQOVF_SLV      LL_ADC_IsActiveFlag_SLV_JQOVF
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_JQOVF(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (26U)))) == ((0x1UL << (26U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC analog watchdog 1 of the ADC master.
  * @rmtoll CSR      AWD1_MST       LL_ADC_IsActiveFlag_MST_AWD1
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_AWD1(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (7U)))) == ((0x1UL << (7U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode analog watchdog 1 of the ADC slave.
  * @rmtoll CSR      AWD1_SLV       LL_ADC_IsActiveFlag_SLV_AWD1
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_AWD1(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (23U)))) == ((0x1UL << (23U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC analog watchdog 2 of the ADC master.
  * @rmtoll CSR      AWD2_MST       LL_ADC_IsActiveFlag_MST_AWD2
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_AWD2(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (8U)))) == ((0x1UL << (8U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC analog watchdog 2 of the ADC slave.
  * @rmtoll CSR      AWD2_SLV       LL_ADC_IsActiveFlag_SLV_AWD2
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_AWD2(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (24U)))) == ((0x1UL << (24U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC analog watchdog 3 of the ADC master.
  * @rmtoll CSR      AWD3_MST       LL_ADC_IsActiveFlag_MST_AWD3
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_MST_AWD3(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (9U)))) == ((0x1UL << (9U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get flag multimode ADC analog watchdog 3 of the ADC slave.
  * @rmtoll CSR      AWD3_SLV       LL_ADC_IsActiveFlag_SLV_AWD3
  * @param  ADCxy_COMMON ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsActiveFlag_SLV_AWD3(const ADC_Common_TypeDef *ADCxy_COMMON)
{
  return ((((ADCxy_COMMON->CSR) & ((0x1UL << (25U)))) == ((0x1UL << (25U)))) ? 1UL : 0UL);
}

/**
  * @}
  */

/** @defgroup ADC_LL_EF_IT_Management ADC IT management
  * @{
  */

/**
  * @brief  Enable ADC ready.
  * @rmtoll IER      ADRDYIE        LL_ADC_EnableIT_ADRDY
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_ADRDY(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (0U))));
}

/**
  * @brief  Enable interruption ADC group regular end of unitary conversion.
  * @rmtoll IER      EOCIE          LL_ADC_EnableIT_EOC
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_EOC(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (2U))));
}

/**
  * @brief  Enable interruption ADC group regular end of sequence conversions.
  * @rmtoll IER      EOSIE          LL_ADC_EnableIT_EOS
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_EOS(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (3U))));
}

/**
  * @brief  Enable ADC group regular interruption overrun.
  * @rmtoll IER      OVRIE          LL_ADC_EnableIT_OVR
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_OVR(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (4U))));
}

/**
  * @brief  Enable interruption ADC group regular end of sampling.
  * @rmtoll IER      EOSMPIE        LL_ADC_EnableIT_EOSMP
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_EOSMP(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (1U))));
}

/**
  * @brief  Enable interruption ADC group injected end of unitary conversion.
  * @rmtoll IER      JEOCIE         LL_ADC_EnableIT_JEOC
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_JEOC(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (5U))));
}

/**
  * @brief  Enable interruption ADC group injected end of sequence conversions.
  * @rmtoll IER      JEOSIE         LL_ADC_EnableIT_JEOS
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_JEOS(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (6U))));
}

/**
  * @brief  Enable interruption ADC group injected context queue overflow.
  * @rmtoll IER      JQOVFIE        LL_ADC_EnableIT_JQOVF
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_JQOVF(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (10U))));
}

/**
  * @brief  Enable interruption ADC analog watchdog 1.
  * @rmtoll IER      AWD1IE         LL_ADC_EnableIT_AWD1
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_AWD1(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (7U))));
}

/**
  * @brief  Enable interruption ADC analog watchdog 2.
  * @rmtoll IER      AWD2IE         LL_ADC_EnableIT_AWD2
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_AWD2(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (8U))));
}

/**
  * @brief  Enable interruption ADC analog watchdog 3.
  * @rmtoll IER      AWD3IE         LL_ADC_EnableIT_AWD3
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_EnableIT_AWD3(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) |= ((0x1UL << (9U))));
}

/**
  * @brief  Disable interruption ADC ready.
  * @rmtoll IER      ADRDYIE        LL_ADC_DisableIT_ADRDY
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_ADRDY(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (0U))));
}

/**
  * @brief  Disable interruption ADC group regular end of unitary conversion.
  * @rmtoll IER      EOCIE          LL_ADC_DisableIT_EOC
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_EOC(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (2U))));
}

/**
  * @brief  Disable interruption ADC group regular end of sequence conversions.
  * @rmtoll IER      EOSIE          LL_ADC_DisableIT_EOS
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_EOS(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (3U))));
}

/**
  * @brief  Disable interruption ADC group regular overrun.
  * @rmtoll IER      OVRIE          LL_ADC_DisableIT_OVR
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_OVR(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (4U))));
}

/**
  * @brief  Disable interruption ADC group regular end of sampling.
  * @rmtoll IER      EOSMPIE        LL_ADC_DisableIT_EOSMP
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_EOSMP(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (1U))));
}

/**
  * @brief  Disable interruption ADC group regular end of unitary conversion.
  * @rmtoll IER      JEOCIE         LL_ADC_DisableIT_JEOC
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_JEOC(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (5U))));
}

/**
  * @brief  Disable interruption ADC group injected end of sequence conversions.
  * @rmtoll IER      JEOSIE         LL_ADC_DisableIT_JEOS
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_JEOS(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (6U))));
}

/**
  * @brief  Disable interruption ADC group injected context queue overflow.
  * @rmtoll IER      JQOVFIE        LL_ADC_DisableIT_JQOVF
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_JQOVF(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (10U))));
}

/**
  * @brief  Disable interruption ADC analog watchdog 1.
  * @rmtoll IER      AWD1IE         LL_ADC_DisableIT_AWD1
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_AWD1(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (7U))));
}

/**
  * @brief  Disable interruption ADC analog watchdog 2.
  * @rmtoll IER      AWD2IE         LL_ADC_DisableIT_AWD2
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_AWD2(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (8U))));
}

/**
  * @brief  Disable interruption ADC analog watchdog 3.
  * @rmtoll IER      AWD3IE         LL_ADC_DisableIT_AWD3
  * @param  ADCx ADC instance
  * @retval None
  */
static inline void LL_ADC_DisableIT_AWD3(ADC_TypeDef *ADCx)
{
  ((ADCx->IER) &= ~((0x1UL << (9U))));
}

/**
  * @brief  Get state of interruption ADC ready
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      ADRDYIE        LL_ADC_IsEnabledIT_ADRDY
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_ADRDY(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (0U)))) == ((0x1UL << (0U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption ADC group regular end of unitary conversion
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      EOCIE          LL_ADC_IsEnabledIT_EOC
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_EOC(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (2U)))) == ((0x1UL << (2U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption ADC group regular end of sequence conversions
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      EOSIE          LL_ADC_IsEnabledIT_EOS
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_EOS(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (3U)))) == ((0x1UL << (3U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption ADC group regular overrun
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      OVRIE          LL_ADC_IsEnabledIT_OVR
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_OVR(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (4U)))) == ((0x1UL << (4U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption ADC group regular end of sampling
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      EOSMPIE        LL_ADC_IsEnabledIT_EOSMP
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_EOSMP(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (1U)))) == ((0x1UL << (1U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption ADC group injected end of unitary conversion
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      JEOCIE         LL_ADC_IsEnabledIT_JEOC
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_JEOC(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (5U)))) == ((0x1UL << (5U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption ADC group injected end of sequence conversions
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      JEOSIE         LL_ADC_IsEnabledIT_JEOS
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_JEOS(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (6U)))) == ((0x1UL << (6U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption ADC group injected context queue overflow interrupt state
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      JQOVFIE        LL_ADC_IsEnabledIT_JQOVF
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_JQOVF(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (10U)))) == ((0x1UL << (10U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption ADC analog watchdog 1
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      AWD1IE         LL_ADC_IsEnabledIT_AWD1
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_AWD1(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (7U)))) == ((0x1UL << (7U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption Get ADC analog watchdog 2
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      AWD2IE         LL_ADC_IsEnabledIT_AWD2
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_AWD2(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (8U)))) == ((0x1UL << (8U)))) ? 1UL : 0UL);
}

/**
  * @brief  Get state of interruption Get ADC analog watchdog 3
  *         (0: interrupt disabled, 1: interrupt enabled).
  * @rmtoll IER      AWD3IE         LL_ADC_IsEnabledIT_AWD3
  * @param  ADCx ADC instance
  * @retval State of bit (1 or 0).
  */
static inline uint32_t LL_ADC_IsEnabledIT_AWD3(const ADC_TypeDef *ADCx)
{
  return ((((ADCx->IER) & ((0x1UL << (9U)))) == ((0x1UL << (9U)))) ? 1UL : 0UL);
}

/**
  * @}
  */


/** @defgroup ADC_LL_EF_Init Initialization and de-initialization functions
  * @{
  */

/* Initialization of some features of ADC common parameters and multimode */
ErrorStatus LL_ADC_CommonDeInit(const ADC_Common_TypeDef *ADCxy_COMMON);
ErrorStatus LL_ADC_CommonInit(ADC_Common_TypeDef *ADCxy_COMMON, LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
void LL_ADC_CommonStructInit(LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);

/* De-initialization of ADC instance, ADC group regular and ADC group injected */
/* (availability of ADC group injected depends on STM32 families) */
ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx);

/* Initialization of some features of ADC instance */
ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, LL_ADC_InitTypeDef *ADC_InitStruct);
void LL_ADC_StructInit(LL_ADC_InitTypeDef *ADC_InitStruct);

/* Initialization of some features of ADC instance and ADC group regular */
ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
void LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);

/* Initialization of some features of ADC instance and ADC group injected */
ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
void LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);

/**
  * @}
  */


/**
  * @}
  */

/**
  * @}
  */



/**
  * @}
  */


}
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup ADC
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup ADC_Exported_Types ADC Exported Types
  * @{
  */

/**
  * @brief  ADC group regular oversampling structure definition
  */
typedef struct
{
  uint32_t Ratio;



                                           /*This parameter can be a value of @ref ADC_HAL_EC_OVS_RATIO */


  uint32_t RightBitShift; /*!< Configures the division coefficient for the Oversampler.
                                               This parameter can be a value of @ref ADC_HAL_EC_OVS_SHIFT */

  uint32_t TriggeredMode; /*!< Selects the regular triggered oversampling mode.
                                               This parameter can be a value of @ref ADC_HAL_EC_OVS_DISCONT_MODE */

  uint32_t OversamplingStopReset; /*!< Selects the regular oversampling mode.
                                               The oversampling is either temporary stopped or reset upon an injected
                                               sequence interruption.
                                               If oversampling is enabled on both regular and injected groups, this parameter
                                               is discarded and forced to setting "ADC_REGOVERSAMPLING_RESUMED_MODE"
                                               (the oversampling buffer is zeroed during injection sequence).
                                               This parameter can be a value of @ref ADC_HAL_EC_OVS_SCOPE_REG */

} ADC_OversamplingTypeDef;

/**
  * @brief  Structure definition of ADC instance and ADC group regular.
  * @note   Parameters of this structure are shared within 2 scopes:
  *          - Scope entire ADC (affects ADC groups regular and injected): ClockPrescaler, Resolution, DataAlign,
  *            ScanConvMode, EOCSelection, LowPowerAutoWait.
  *          - Scope ADC group regular: ContinuousConvMode, NbrOfConversion, DiscontinuousConvMode, NbrOfDiscConversion,
  *            ExternalTrigConv, ExternalTrigConvEdge, DMAContinuousRequests, Overrun, OversamplingMode, Oversampling.
  * @note   The setting of these parameters by function HAL_ADC_Init() is conditioned to ADC state.
  *         ADC state can be either:
  *          - For all parameters: ADC disabled
  *          - For all parameters except 'LowPowerAutoWait', 'DMAContinuousRequests' and 'Oversampling': ADC enabled without conversion on going on group regular.
  *          - For parameters 'LowPowerAutoWait' and 'DMAContinuousRequests': ADC enabled without conversion on going on groups regular and injected.
  *         If ADC is not in the appropriate state to modify some parameters, these parameters setting is bypassed
  *         without error reporting (as it can be the expected behavior in case of intended action to update another parameter
  *         (which fulfills the ADC state condition) on the fly).
  */
typedef struct
{
  uint32_t ClockPrescaler; /*!< Select ADC clock source (synchronous clock derived from APB clock or asynchronous clock derived from system clock or PLL (Refer to reference manual for list of clocks available)) and clock prescaler.
                                       This parameter can be a value of @ref ADC_HAL_EC_COMMON_CLOCK_SOURCE.
                                       Note: The ADC clock configuration is common to all ADC instances.
                                       Note: In case of usage of channels on injected group, ADC frequency should be lower than AHB clock frequency /4 for resolution 12 or 10 bits,
                                             AHB clock frequency /3 for resolution 8 bits, AHB clock frequency /2 for resolution 6 bits.
                                       Note: In case of synchronous clock mode based on HCLK/1, the configuration must be enabled only
                                             if the system clock has a 50% duty clock cycle (APB prescaler configured inside RCC
                                             must be bypassed and PCLK clock must have 50% duty cycle). Refer to reference manual for details.
                                       Note: In case of usage of asynchronous clock, the selected clock must be preliminarily enabled at RCC top level.
                                       Note: This parameter can be modified only if all ADC instances are disabled. */

  uint32_t Resolution; /*!< Configure the ADC resolution.
                                       This parameter can be a value of @ref ADC_HAL_EC_RESOLUTION */
# 113 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
  uint32_t ScanConvMode; /*!< Configure the sequencer of ADC groups regular and injected.
                                       This parameter can be associated to parameter 'DiscontinuousConvMode' to have main sequence subdivided in successive parts.
                                       If disabled: Conversion is performed in single mode (one channel converted, the one defined in rank 1).
                                                    Parameters 'NbrOfConversion' and 'InjectedNbrOfConversion' are discarded (equivalent to set to 1).
                                       If enabled:  Conversions are performed in sequence mode (multiple ranks defined by 'NbrOfConversion' or 'InjectedNbrOfConversion' and rank of each channel in sequencer).
                                                    Scan direction is upward: from rank 1 to rank 'n'.
                                       This parameter can be a value of @ref ADC_Scan_mode */

  uint32_t EOCSelection; /*!< Specify which EOC (End Of Conversion) flag is used for conversion by polling and interruption: end of unitary conversion or end of sequence conversions.
                                       This parameter can be a value of @ref ADC_EOCSelection. */

  FunctionalState LowPowerAutoWait; /*!< Select the dynamic low power Auto Delay: new conversion start only when the previous
                                       conversion (for ADC group regular) or previous sequence (for ADC group injected) has been retrieved by user software,
                                       using function HAL_ADC_GetValue() or HAL_ADCEx_InjectedGetValue().
                                       This feature automatically adapts the frequency of ADC conversions triggers to the speed of the system that reads the data. Moreover, this avoids risk of overrun
                                       for low frequency applications.
                                       This parameter can be set to ENABLE or DISABLE.
                                       Note: It is not recommended to use with interruption or DMA (HAL_ADC_Start_IT(), HAL_ADC_Start_DMA()) since these modes have to clear immediately the EOC flag (by CPU to free the IRQ pending event or by DMA).
                                                       Auto wait will work but fort a very short time, discarding its intended benefit (except specific case of high load of CPU or DMA transfers which can justify usage of auto wait).
                                                       Do use with polling: 1. Start conversion with HAL_ADC_Start(), 2. Later on, when ADC conversion data is needed:
                                                       and use HAL_ADC_GetValue() to retrieve conversion result and trig another conversion (in case of usage of injected group,
                                                       use the equivalent functions HAL_ADCExInjected_Start(), HAL_ADCEx_InjectedGetValue(), ...). */

  FunctionalState ContinuousConvMode; /*!< Specify whether the conversion is performed in single mode (one conversion) or continuous mode for ADC group regular,
                                       after the first ADC conversion start trigger occurred (software start or external trigger).
                                       This parameter can be set to ENABLE or DISABLE. */

  uint32_t NbrOfConversion; /*!< Specify the number of ranks that will be converted within the regular group sequencer.
                                       To use the regular group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
                                       This parameter must be a number between Min_Data = 1 and Max_Data = 16.
                                       Note: This parameter must be modified when no conversion is on going on regular group (ADC disabled, or ADC enabled without
                                       continuous mode or external trigger that could launch a conversion). */

  FunctionalState DiscontinuousConvMode; /*!< Specify whether the conversions sequence of ADC group regular is performed in Complete-sequence/Discontinuous-sequence
                                       (main sequence subdivided in successive parts).
                                       Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
                                       Discontinuous mode can be enabled only if continuous mode is disabled. If continuous mode is enabled, this parameter setting is discarded.
                                       This parameter can be set to ENABLE or DISABLE. */

  uint32_t NbrOfDiscConversion; /*!< Specifies the number of discontinuous conversions in which the main sequence of ADC group regular (parameter NbrOfConversion) will be subdivided.
                                       If parameter 'DiscontinuousConvMode' is disabled, this parameter is discarded.
                                       This parameter must be a number between Min_Data = 1 and Max_Data = 8. */

  uint32_t ExternalTrigConv; /*!< Select the external event source used to trigger ADC group regular conversion start.
                                       If set to ADC_SOFTWARE_START, external triggers are disabled and software trigger is used instead.
                                       This parameter can be a value of @ref ADC_regular_external_trigger_source.
                                       Caution: external trigger source is common to all ADC instances. */

  uint32_t ExternalTrigConvEdge; /*!< Select the external event edge used to trigger ADC group regular conversion start.
                                       If trigger source is set to ADC_SOFTWARE_START, this parameter is discarded.
                                       This parameter can be a value of @ref ADC_regular_external_trigger_edge */

  uint32_t ConversionDataManagement; /*!< Specifies whether the Data conversion data is managed: using the DMA (oneshot or circular), or stored in the DR register or transferred to DFSDM register.
                                       Note: In continuous mode, DMA must be configured in circular mode. Otherwise an overrun will be triggered when DMA buffer maximum pointer is reached.
                                       This parameter can be a value of @ref ADC_ConversionDataManagement.
                                       Note: This parameter must be modified when no conversion is on going on both regular and injected groups
                                       (ADC disabled, or ADC enabled without continuous mode or external trigger that could launch a conversion).*/
# 186 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
  uint32_t Overrun; /*!< Select the behavior in case of overrun: data overwritten or preserved (default).
                                       This parameter applies to ADC group regular only.
                                       This parameter can be a value of @ref ADC_HAL_EC_REG_OVR_DATA_BEHAVIOR.
                                       Note: In case of overrun set to data preserved and usage with programming model with interruption (HAL_Start_IT()): ADC IRQ handler has to clear
                                       end of conversion flags, this induces the release of the preserved data. If needed, this data can be saved in function
                                       HAL_ADC_ConvCpltCallback(), placed in user program code (called before end of conversion flags clear).
                                       Note: Error reporting with respect to the conversion mode:
                                             - Usage with ADC conversion by polling for event or interruption: Error is reported only if overrun is set to data preserved. If overrun is set to data
                                               overwritten, user can willingly not read all the converted data, this is not considered as an erroneous case.
                                             - Usage with ADC conversion by DMA: Error is reported whatever overrun setting (DMA is expected to process all data from data register). */

  uint32_t LeftBitShift; /*!< Configures the left shifting applied to the final result with or without oversampling.
                                          This parameter can be a value of @ref ADCEx_Left_Bit_Shift */
  FunctionalState OversamplingMode; /*!< Specify whether the oversampling feature is enabled or disabled.
                                               This parameter can be set to ENABLE or DISABLE.
                                               Note: This parameter can be modified only if there is no conversion is ongoing on ADC groups regular and injected */

  ADC_OversamplingTypeDef Oversampling; /*!< Specify the Oversampling parameters.
                                               Caution: this setting overwrites the previous oversampling configuration if oversampling is already enabled. */

} ADC_InitTypeDef;

/**
  * @brief  Structure definition of ADC channel for regular group
  * @note   The setting of these parameters by function HAL_ADC_ConfigChannel() is conditioned to ADC state.
  *         ADC state can be either:
  *          - For all parameters: ADC disabled (this is the only possible ADC state to modify parameter 'SingleDiff')
  *          - For all except parameters 'SamplingTime', 'Offset', 'OffsetNumber': ADC enabled without conversion on going on regular group.
  *          - For parameters 'SamplingTime', 'Offset', 'OffsetNumber': ADC enabled without conversion on going on regular and injected groups.
  *         If ADC is not in the appropriate state to modify some parameters, these parameters setting is bypassed
  *         without error reporting (as it can be the expected behavior in case of intended action to update another parameter (which fulfills the ADC state condition)
  *         on the fly).
  */
typedef struct
{
  uint32_t Channel; /*!< Specify the channel to configure into ADC regular group.
                                        This parameter can be a value of @ref ADC_HAL_EC_CHANNEL
                                        Note: Depending on devices and ADC instances, some channels may not be available on device package pins. Refer to device datasheet for channels availability. */

  uint32_t Rank; /*!< Specify the rank in the regular group sequencer.
                                        This parameter can be a value of @ref ADC_HAL_EC_REG_SEQ_RANKS
                                        Note: to disable a channel or change order of conversion sequencer, rank containing a previous channel setting can be overwritten by
                                        the new channel setting (or parameter number of conversions adjusted) */

  uint32_t SamplingTime; /*!< Sampling time value to be set for the selected channel.
                                        Unit: ADC clock cycles
                                        Conversion time is the addition of sampling time and processing time
                                        (12.5 ADC clock cycles at ADC resolution 12 bits, 10.5 cycles at 10 bits, 8.5 cycles at 8 bits, 6.5 cycles at 6 bits).
                                        This parameter can be a value of @ref ADC_HAL_EC_CHANNEL_SAMPLINGTIME
                                        Caution: This parameter applies to a channel that can be used into regular and/or injected group.
                                                 It overwrites the last setting.
                                        Note: In case of usage of internal measurement channels (VrefInt/Vbat/TempSensor),
                                              sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
                                              Refer to device datasheet for timings values. */

  uint32_t SingleDiff; /*!< Select single-ended or differential input.
                                        In differential mode: Differential measurement is carried out between the selected channel 'i' (positive input) and channel 'i+1' (negative input).
                                                              Only channel 'i' has to be configured, channel 'i+1' is configured automatically.
                                        This parameter must be a value of @ref ADC_HAL_EC_CHANNEL_SINGLE_DIFF_ENDING
                                        Caution: This parameter applies to a channel that can be used in a regular and/or injected group.
                                                 It overwrites the last setting.
                                        Note: Refer to Reference Manual to ensure the selected channel is available in differential mode.
                                        Note: When configuring a channel 'i' in differential mode, the channel 'i+1' is not usable separately.
                                        Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
                                              If ADC is enabled, this parameter setting is bypassed without error reporting (as it can be the expected behavior in case
                                        of another parameter update on the fly) */

  uint32_t OffsetNumber; /*!< Select the offset number
                                        This parameter can be a value of @ref ADC_HAL_EC_OFFSET_NB
                                        Caution: Only one offset is allowed per channel. This parameter overwrites the last setting. */

  uint32_t Offset; /*!< Define the offset to be subtracted from the raw converted data.
                                        Offset value must be a positive number.
                                        Maximum value depends on ADC resolution and oversampling ratio (in case of oversampling used).
                                        This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x3FFFC00 (corresponding to resolution 16 bit and oversampling ratio 1024).
                                        Note: This parameter must be modified when no conversion is on going on both regular and injected groups (ADC disabled, or ADC enabled
                                              without continuous mode or external trigger that could launch a conversion). */

  FunctionalState OffsetRightShift; /*!< Define the Right-shift data after Offset correction.
                                        This parameter is applied only for 16-bit or 8-bit resolution.
                                        This parameter can be set to ENABLE or DISABLE.*/
# 281 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
  FunctionalState OffsetSignedSaturation; /*!< Specify whether the Signed saturation feature is used or not.
                                             This parameter is applied only for 16-bit or 8-bit resolution.
                                             This parameter can be set to ENABLE or DISABLE. */

} ADC_ChannelConfTypeDef;

/**
  * @brief  Structure definition of ADC analog watchdog
  * @note   The setting of these parameters by function HAL_ADC_AnalogWDGConfig() is conditioned to ADC state.
  *         ADC state can be either:
  *          - For all parameters: ADC disabled or ADC enabled without conversion on going on ADC groups regular and injected.
  */
typedef struct
{
  uint32_t WatchdogNumber; /*!< Select which ADC analog watchdog is monitoring the selected channel.
                                   For Analog Watchdog 1: Only 1 channel can be monitored (or overall group of channels by setting parameter 'WatchdogMode')
                                   For Analog Watchdog 2 and 3: Several channels can be monitored (by successive calls of 'HAL_ADC_AnalogWDGConfig()' for each channel)
                                   This parameter can be a value of @ref ADC_HAL_EC_AWD_NUMBER. */

  uint32_t WatchdogMode; /*!< Configure the ADC analog watchdog mode: single/all/none channels.
                                   For Analog Watchdog 1: Configure the ADC analog watchdog mode: single channel or all channels, ADC groups regular and-or injected.
                                   For Analog Watchdog 2 and 3: Several channels can be monitored by applying successively the AWD init structure. Channels on ADC group regular and injected are not differentiated: Set value 'ADC_ANALOGWATCHDOG_SINGLE_xxx' to monitor 1 channel, value 'ADC_ANALOGWATCHDOG_ALL_xxx' to monitor all channels, 'ADC_ANALOGWATCHDOG_NONE' to monitor no channel.
                                   This parameter can be a value of @ref ADC_analog_watchdog_mode. */

  uint32_t Channel; /*!< Select which ADC channel to monitor by analog watchdog.
                                   For Analog Watchdog 1: this parameter has an effect only if parameter 'WatchdogMode' is configured on single channel (only 1 channel can be monitored).
                                   For Analog Watchdog 2 and 3: Several channels can be monitored. To use this feature, call successively the function HAL_ADC_AnalogWDGConfig() for each channel to be added (or removed with value 'ADC_ANALOGWATCHDOG_NONE').
                                   This parameter can be a value of @ref ADC_HAL_EC_CHANNEL. */

  FunctionalState ITMode; /*!< Specify whether the analog watchdog is configured in interrupt or polling mode.
                                   This parameter can be set to ENABLE or DISABLE */

  uint32_t HighThreshold; /*!< Configure the ADC analog watchdog High threshold value.
                                   Depending of ADC resolution selected (16, 14, 12, 10, 8 bits), this parameter must be a number
                                   between Min_Data = 0x000 and Max_Data = 0xFFFF, 0x3FFF, 0xFFF, 0x3FF or 0xFF respectively.
                                   Note: Analog watchdog 2 and 3 are limited to a resolution of 8 bits: if ADC resolution is 12 bits
                                         the 4 LSB are ignored, if ADC resolution is 10 bits the 2 LSB are ignored.
                                   Note: If ADC oversampling is enabled, ADC analog watchdog thresholds are
                                         impacted: the comparison of analog watchdog thresholds is done
                                         on oversampling intermediate computation (after ratio, before shift
                                         application): intermediate register bitfield [32:7] (26 most significant bits). */

  uint32_t LowThreshold; /*!< Configures the ADC analog watchdog Low threshold value.
                                   Depending of ADC resolution selected (16, 14, 12, 10, 8 bits), this parameter must be a number
                                   between Min_Data = 0x000 and Max_Data = 0xFFFF, 0x3FFF, 0xFFF, 0x3FF or 0xFF respectively.
                                   Note: Analog watchdog 2 and 3 are limited to a resolution of 8 bits: if ADC resolution is 12 bits
                                         the 4 LSB are ignored, if ADC resolution is 10 bits the 2 LSB are ignored.
                                   Note: If ADC oversampling is enabled, ADC analog watchdog thresholds are
                                         impacted: the comparison of analog watchdog thresholds is done
                                         on oversampling intermediate computation (after ratio, before shift
                                         application): intermediate register bitfield [32:7] (26 most significant bits). */







} ADC_AnalogWDGConfTypeDef;

/**
  * @brief  ADC group injected contexts queue configuration
  * @note   Structure intended to be used only through structure "ADC_HandleTypeDef"
  */
typedef struct
{
  uint32_t ContextQueue; /*!< Injected channel configuration context: build-up over each
                                              HAL_ADCEx_InjectedConfigChannel() call to finally initialize
                                              JSQR register at HAL_ADCEx_InjectedConfigChannel() last call */

  uint32_t ChannelCount;
} ADC_InjectionConfigTypeDef;

/** @defgroup ADC_States ADC States
  * @{
  */

/**
  * @brief  HAL ADC state machine: ADC states definition (bitfields)
  * @note   ADC state machine is managed by bitfields, state must be compared
  *         with bit by bit.
  *         For example:
  *           " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_REG_BUSY) != 0UL) "
  *           " if ((HAL_ADC_GetState(hadc1) & HAL_ADC_STATE_AWD1) != 0UL) "
  */
/* States of ADC global scope */





/* States of ADC errors */




/* States of ADC group regular */






/* States of ADC group injected */





/* States of ADC analog watchdogs */




/* States of ADC multi-mode */


/**
  * @}
  */

/**
  * @brief  ADC handle Structure definition
  */



typedef struct

{
  ADC_TypeDef *Instance;
  ADC_InitTypeDef Init;
  DMA_HandleTypeDef *DMA_Handle;
  HAL_LockTypeDef Lock;
  volatile uint32_t State;
  volatile uint32_t ErrorCode;
  ADC_InjectionConfigTypeDef InjectionConfig ;
# 431 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
} ADC_HandleTypeDef;
# 459 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */


/* Exported constants --------------------------------------------------------*/

/** @defgroup ADC_Exported_Constants ADC Exported Constants
  * @{
  */

/** @defgroup ADC_Error_Code ADC Error Code
  * @{
  */
# 482 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/** @defgroup ADC_HAL_EC_COMMON_CLOCK_SOURCE  ADC common - Clock source
  * @{
  */
# 505 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/** @defgroup ADC_HAL_EC_RESOLUTION  ADC instance - Resolution
  * @{
  */
# 526 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */
# 541 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/** @defgroup ADC_Scan_mode ADC sequencer scan mode
  * @{
  */


/**
  * @}
  */

/** @defgroup ADC_regular_external_trigger_source ADC group regular trigger source
  * @{
  */
/* ADC group regular trigger sources for all ADC instances */
# 582 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/** @defgroup ADC_regular_external_trigger_edge ADC group regular trigger edge (when external trigger is selected)
  * @{
  */




/**
  * @}
  */
# 614 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/** @defgroup ADC_EOCSelection ADC sequencer end of unitary conversion or sequence conversions
  * @{
  */


/**
  * @}
  */

/** @defgroup ADC_HAL_EC_REG_OVR_DATA_BEHAVIOR  ADC group regular - Overrun behavior on conversion data
  * @{
  */


/**
  * @}
  */

/** @defgroup ADC_HAL_EC_REG_SEQ_RANKS  ADC group regular - Sequencer ranks
  * @{
  */
# 651 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/** @defgroup ADC_HAL_EC_CHANNEL_SAMPLINGTIME  Channel - Sampling time
  * @{
  */
# 666 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */
# 688 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/** @defgroup ADCEx_Calibration_Mode   ADC Extended Calibration mode offset mode or linear mode
  * @{
  */


/**
  * @}
  */

/** @defgroup ADC_HAL_EC_CHANNEL  ADC instance - Channel number
  * @{
  */
/* Note: VrefInt, TempSensor and Vbat internal channels are not available on  */
/*        all ADC instances (refer to Reference Manual).                      */
# 730 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/** @defgroup ADC_ConversionDataManagement ADC Conversion Data Management
  * @{
  */




/**
  * @}
  */
/** @defgroup ADC_HAL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number
  * @{
  */



/**
  * @}
  */
# 771 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/** @defgroup ADC_analog_watchdog_mode ADC Analog Watchdog Mode
  * @{
  */







/**
  * @}
  */
# 803 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/** @defgroup ADC_HAL_EC_OVS_SHIFT  Oversampling - Data shift
  * @{
  */
# 818 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/** @defgroup ADCEx_Left_Bit_Shift   ADC Extended Oversampling left Shift
  * @{
  */
# 841 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/** @defgroup ADC_HAL_EC_OVS_DISCONT_MODE  Oversampling - Discontinuous mode
  * @{
  */


/**
  * @}
  */

/** @defgroup ADC_HAL_EC_OVS_SCOPE_REG  Oversampling - Oversampling scope for ADC group regular
  * @{
  */


/**
  * @}
  */


/** @defgroup ADC_Event_type ADC Event type
  * @{
  */






/**
  * @}
  */


/** @defgroup ADC_interrupts_definition ADC interrupts definition
  * @{
  */
# 895 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/** @defgroup ADC_flags_definition ADC flags definition
  * @{
  */
# 914 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/**
  * @}
  */

/* Private macro -------------------------------------------------------------*/

/** @defgroup ADC_Private_Macros ADC Private Macros
  * @{
  */
/* Macro reserved for internal HAL driver usage, not intended to be used in   */
/* code of final user.                                                        */

/**
  * @brief Verify the ADC data conversion setting.
  * @param DATA : programmed DATA conversion mode.
  * @retval SET (DATA is a valid value) or RESET (DATA is invalid)
  */






/**
  * @brief Return resolution bits in CFGR register RES[1:0] field.
  * @param __HANDLE__ ADC handle
  * @retval Value of bitfield RES in CFGR register.
  */



/**
  * @brief Clear ADC error code (set it to no error code "HAL_ADC_ERROR_NONE").
  * @param __HANDLE__ ADC handle
  * @retval None
  */


/**
  * @brief Verification of ADC state: enabled or disabled.
  * @param __HANDLE__ ADC handle
  * @retval SET (ADC enabled) or RESET (ADC disabled)
  */





/**
  * @brief Check if conversion is on going on regular group.
  * @param __HANDLE__ ADC handle
  * @retval Value "0" (no conversion is on going) or value "1" (conversion is on going)
  */



/**
  * @brief Check if ADC clock mode is synchronous
  * @param __HANDLE__: ADC handle
  * @retval SET (clock mode is synchronous) or RESET (clock mode is asynchronous)
  */
# 989 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @brief Simultaneously clear and set specific bits of the handle State.
  * @note  ADC_STATE_CLR_SET() macro is merely aliased to generic macro MODIFY_REG(),
  *        the first parameter is the ADC handle State, the second parameter is the
  *        bit field to clear, the third and last parameter is the bit field to set.
  * @retval None
  */


/**
  * @brief Verify that a given value is aligned with the ADC resolution range.
  * @param __RESOLUTION__ ADC resolution (16, 14, 12, 10 or 8 bits).
  * @param __ADC_VALUE__ value checked against the resolution.
  * @retval SET (__ADC_VALUE__ in line with __RESOLUTION__) or RESET (__ADC_VALUE__ not in line with __RESOLUTION__)
  */
# 1017 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @brief Verify the length of the scheduled regular conversions group.
  * @param __LENGTH__ number of programmed conversions.
  * @retval SET (__LENGTH__ is within the maximum number of possible programmable regular conversions) or RESET (__LENGTH__ is null or too large)
  */



/**
  * @brief Verify the number of scheduled regular conversions in discontinuous mode.
  * @param NUMBER number of scheduled regular conversions in discontinuous mode.
  * @retval SET (NUMBER is within the maximum number of regular conversions in discontinuous mode) or RESET (NUMBER is null or too large)
  */



/**
  * @brief Verify the ADC clock setting.
  * @param __ADC_CLOCK__ programmed ADC clock.
  * @retval SET (__ADC_CLOCK__ is a valid value) or RESET (__ADC_CLOCK__ is invalid)
  */
# 1054 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @brief Verify the ADC resolution setting.
  * @param __RESOLUTION__ programmed ADC resolution.
  * @retval SET (__RESOLUTION__ is a valid value) or RESET (__RESOLUTION__ is invalid)
  */
# 1082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @brief Verify the ADC resolution setting when limited to 8 bits.
  * @param __RESOLUTION__ programmed ADC resolution when limited to 8 bits.
  * @retval SET (__RESOLUTION__ is a valid value) or RESET (__RESOLUTION__ is invalid)
  */
# 1109 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @brief Verify the ADC scan mode.
  * @param __SCAN_MODE__ programmed ADC scan mode.
  * @retval SET (__SCAN_MODE__ is valid) or RESET (__SCAN_MODE__ is invalid)
  */



/**
  * @brief Verify the ADC edge trigger setting for regular group.
  * @param __EDGE__ programmed ADC edge trigger setting.
  * @retval SET (__EDGE__ is a valid value) or RESET (__EDGE__ is invalid)
  */





/**
  * @brief Verify the ADC regular conversions external trigger.
  * @param __REGTRIG__ programmed ADC regular conversions external trigger.
  * @retval SET (__REGTRIG__ is a valid value) or RESET (__REGTRIG__ is invalid)
  */
# 1183 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @brief Verify the ADC regular conversions check for converted data availability.
  * @param __EOC_SELECTION__ converted data availability check.
  * @retval SET (__EOC_SELECTION__ is a valid value) or RESET (__EOC_SELECTION__ is invalid)
  */



/**
  * @brief Verify the ADC regular conversions overrun handling.
  * @param __OVR__ ADC regular conversions overrun handling.
  * @retval SET (__OVR__ is a valid value) or RESET (__OVR__ is invalid)
  */



/**
  * @brief Verify the ADC conversions sampling time.
  * @param __TIME__ ADC conversions sampling time.
  * @retval SET (__TIME__ is a valid value) or RESET (__TIME__ is invalid)
  */
# 1213 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @brief Verify the ADC regular channel setting.
  * @param  __CHANNEL__ programmed ADC regular channel.
  * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid)
  */
# 1235 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */


/* Private constants ---------------------------------------------------------*/

/** @defgroup ADC_Private_Constants ADC Private Constants
  * @{
  */

/* Fixed timeout values for ADC conversion (including sampling time)        */
/* Maximum sampling time is 810.5 ADC clock cycle        */
/* Maximum conversion time is 16.5 + Maximum sampling time                  */
/*                       or 16.5  + 810.5 = 827 ADC clock cycles            */
/* Minimum ADC Clock frequency is 0.35 MHz                                  */
/* Maximum conversion time is                                               */
/*              827 / 0.35 MHz = 2.36 ms                                    */



/* Delay for temperature sensor stabilization time.                         */
/* Maximum delay is 120us (refer device datasheet, parameter tSTART).       */
/* Unit: us                                                                 */


/* Delay for ADC voltage regulator startup time                               */
/*  Maximum delay is 10 microseconds                                          */
/* (refer device RM, parameter Tadcvreg_stup).                                */


/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/

/** @defgroup ADC_Exported_Macros ADC Exported Macros
  * @{
  */
/* Macro for internal HAL driver usage, and possibly can be used into code of */
/* final user.                                                                */

/** @defgroup ADC_HAL_EM_HANDLE_IT_FLAG HAL ADC macro to manage HAL ADC handle, IT and flags.
  * @{
  */

/** @brief  Reset ADC handle state.
  * @param __HANDLE__ ADC handle
  * @retval None
  */
# 1298 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @brief Enable ADC interrupt.
  * @param __HANDLE__ ADC handle
  * @param __INTERRUPT__ ADC Interrupt
  *        This parameter can be one of the following values:
  *            @arg @ref ADC_IT_RDY    ADC Ready interrupt source
  *            @arg @ref ADC_IT_EOSMP  ADC End of Sampling interrupt source
  *            @arg @ref ADC_IT_EOC    ADC End of Regular Conversion interrupt source
  *            @arg @ref ADC_IT_EOS    ADC End of Regular sequence of Conversions interrupt source
  *            @arg @ref ADC_IT_OVR    ADC overrun interrupt source
  *            @arg @ref ADC_IT_JEOC   ADC End of Injected Conversion interrupt source
  *            @arg @ref ADC_IT_JEOS   ADC End of Injected sequence of Conversions interrupt source
  *            @arg @ref ADC_IT_AWD1   ADC Analog watchdog 1 interrupt source (main analog watchdog)
  *            @arg @ref ADC_IT_AWD2   ADC Analog watchdog 2 interrupt source (additional analog watchdog)
  *            @arg @ref ADC_IT_AWD3   ADC Analog watchdog 3 interrupt source (additional analog watchdog)
  *            @arg @ref ADC_IT_JQOVF  ADC Injected Context Queue Overflow interrupt source.
  * @retval None
  */



/**
  * @brief Disable ADC interrupt.
  * @param __HANDLE__ ADC handle
  * @param __INTERRUPT__ ADC Interrupt
  *        This parameter can be one of the following values:
  *            @arg @ref ADC_IT_RDY    ADC Ready interrupt source
  *            @arg @ref ADC_IT_EOSMP  ADC End of Sampling interrupt source
  *            @arg @ref ADC_IT_EOC    ADC End of Regular Conversion interrupt source
  *            @arg @ref ADC_IT_EOS    ADC End of Regular sequence of Conversions interrupt source
  *            @arg @ref ADC_IT_OVR    ADC overrun interrupt source
  *            @arg @ref ADC_IT_JEOC   ADC End of Injected Conversion interrupt source
  *            @arg @ref ADC_IT_JEOS   ADC End of Injected sequence of Conversions interrupt source
  *            @arg @ref ADC_IT_AWD1   ADC Analog watchdog 1 interrupt source (main analog watchdog)
  *            @arg @ref ADC_IT_AWD2   ADC Analog watchdog 2 interrupt source (additional analog watchdog)
  *            @arg @ref ADC_IT_AWD3   ADC Analog watchdog 3 interrupt source (additional analog watchdog)
  *            @arg @ref ADC_IT_JQOVF  ADC Injected Context Queue Overflow interrupt source.
  * @retval None
  */



/** @brief  Checks if the specified ADC interrupt source is enabled or disabled.
  * @param __HANDLE__ ADC handle
  * @param __INTERRUPT__ ADC interrupt source to check
  *          This parameter can be one of the following values:
  *            @arg @ref ADC_IT_RDY    ADC Ready interrupt source
  *            @arg @ref ADC_IT_EOSMP  ADC End of Sampling interrupt source
  *            @arg @ref ADC_IT_EOC    ADC End of Regular Conversion interrupt source
  *            @arg @ref ADC_IT_EOS    ADC End of Regular sequence of Conversions interrupt source
  *            @arg @ref ADC_IT_OVR    ADC overrun interrupt source
  *            @arg @ref ADC_IT_JEOC   ADC End of Injected Conversion interrupt source
  *            @arg @ref ADC_IT_JEOS   ADC End of Injected sequence of Conversions interrupt source
  *            @arg @ref ADC_IT_AWD1   ADC Analog watchdog 1 interrupt source (main analog watchdog)
  *            @arg @ref ADC_IT_AWD2   ADC Analog watchdog 2 interrupt source (additional analog watchdog)
  *            @arg @ref ADC_IT_AWD3   ADC Analog watchdog 3 interrupt source (additional analog watchdog)
  *            @arg @ref ADC_IT_JQOVF  ADC Injected Context Queue Overflow interrupt source.
  * @retval State of interruption (SET or RESET)
  */



/**
  * @brief Check whether the specified ADC flag is set or not.
  * @param __HANDLE__ ADC handle
  * @param __FLAG__ ADC flag
  *        This parameter can be one of the following values:
  *            @arg @ref ADC_FLAG_RDY     ADC Ready flag
  *            @arg @ref ADC_FLAG_EOSMP   ADC End of Sampling flag
  *            @arg @ref ADC_FLAG_EOC     ADC End of Regular Conversion flag
  *            @arg @ref ADC_FLAG_EOS     ADC End of Regular sequence of Conversions flag
  *            @arg @ref ADC_FLAG_OVR     ADC overrun flag
  *            @arg @ref ADC_FLAG_JEOC    ADC End of Injected Conversion flag
  *            @arg @ref ADC_FLAG_JEOS    ADC End of Injected sequence of Conversions flag
  *            @arg @ref ADC_FLAG_AWD1    ADC Analog watchdog 1 flag (main analog watchdog)
  *            @arg @ref ADC_FLAG_AWD2    ADC Analog watchdog 2 flag (additional analog watchdog)
  *            @arg @ref ADC_FLAG_AWD3    ADC Analog watchdog 3 flag (additional analog watchdog)
  *            @arg @ref ADC_FLAG_JQOVF   ADC Injected Context Queue Overflow flag
  *            @arg @ref ADC_FLAG_LDORDY  ADC LDO output voltage ready bit.
  * @retval State of flag (TRUE or FALSE).
  */



/**
  * @brief Clear the specified ADC flag.
  * @param __HANDLE__ ADC handle
  * @param __FLAG__ ADC flag
  *        This parameter can be one of the following values:
  *            @arg @ref ADC_FLAG_RDY     ADC Ready flag
  *            @arg @ref ADC_FLAG_EOSMP   ADC End of Sampling flag
  *            @arg @ref ADC_FLAG_EOC     ADC End of Regular Conversion flag
  *            @arg @ref ADC_FLAG_EOS     ADC End of Regular sequence of Conversions flag
  *            @arg @ref ADC_FLAG_OVR     ADC overrun flag
  *            @arg @ref ADC_FLAG_JEOC    ADC End of Injected Conversion flag
  *            @arg @ref ADC_FLAG_JEOS    ADC End of Injected sequence of Conversions flag
  *            @arg @ref ADC_FLAG_AWD1    ADC Analog watchdog 1 flag (main analog watchdog)
  *            @arg @ref ADC_FLAG_AWD2    ADC Analog watchdog 2 flag (additional analog watchdog)
  *            @arg @ref ADC_FLAG_AWD3    ADC Analog watchdog 3 flag (additional analog watchdog)
  *            @arg @ref ADC_FLAG_JQOVF   ADC Injected Context Queue Overflow flag.
  * @retval None
  */
/* Note: bit cleared bit by writing 1 (writing 0 has no effect on any bit of register ISR) */



/**
  * @}
  */

/** @defgroup ADC_HAL_EM_HELPER_MACRO HAL ADC helper macro
  * @{
  */

/**
  * @brief  Helper macro to get ADC channel number in decimal format
  *         from literals ADC_CHANNEL_x.
  * @note   Example:
  *           __HAL_ADC_CHANNEL_TO_DECIMAL_NB(ADC_CHANNEL_4)
  *           will return decimal number "4".
  * @note   The input can be a value from functions where a channel
  *         number is returned, either defined with number
  *         or with bitfield (only one bit must be set).
  * @param  __CHANNEL__ This parameter can be one of the following values:
  *         @arg @ref ADC_CHANNEL_0           (3)
  *         @arg @ref ADC_CHANNEL_1           (3)
  *         @arg @ref ADC_CHANNEL_2           (3)
  *         @arg @ref ADC_CHANNEL_3           (3)
  *         @arg @ref ADC_CHANNEL_4           (3)
  *         @arg @ref ADC_CHANNEL_5           (3)
  *         @arg @ref ADC_CHANNEL_6
  *         @arg @ref ADC_CHANNEL_7
  *         @arg @ref ADC_CHANNEL_8
  *         @arg @ref ADC_CHANNEL_9
  *         @arg @ref ADC_CHANNEL_10
  *         @arg @ref ADC_CHANNEL_11
  *         @arg @ref ADC_CHANNEL_12
  *         @arg @ref ADC_CHANNEL_13
  *         @arg @ref ADC_CHANNEL_14
  *         @arg @ref ADC_CHANNEL_15
  *         @arg @ref ADC_CHANNEL_16
  *         @arg @ref ADC_CHANNEL_17
  *         @arg @ref ADC_CHANNEL_18
  *         @arg @ref ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref ADC_CHANNEL_VBAT         (1)
  *         @arg @ref ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval Value between Min_Data=0 and Max_Data=18
  */



/**
  * @brief  Helper macro to get ADC channel in literal format ADC_CHANNEL_x
  *         from number in decimal format.
  * @note   Example:
  *           __HAL_ADC_DECIMAL_NB_TO_CHANNEL(4)
  *           will return a data equivalent to "ADC_CHANNEL_4".
  * @param  __DECIMAL_NB__ Value between Min_Data=0 and Max_Data=18
  * @retval Returned value can be one of the following values:
  *         @arg @ref ADC_CHANNEL_0           (3)
  *         @arg @ref ADC_CHANNEL_1           (3)
  *         @arg @ref ADC_CHANNEL_2           (3)
  *         @arg @ref ADC_CHANNEL_3           (3)
  *         @arg @ref ADC_CHANNEL_4           (3)
  *         @arg @ref ADC_CHANNEL_5           (3)
  *         @arg @ref ADC_CHANNEL_6
  *         @arg @ref ADC_CHANNEL_7
  *         @arg @ref ADC_CHANNEL_8
  *         @arg @ref ADC_CHANNEL_9
  *         @arg @ref ADC_CHANNEL_10
  *         @arg @ref ADC_CHANNEL_11
  *         @arg @ref ADC_CHANNEL_12
  *         @arg @ref ADC_CHANNEL_13
  *         @arg @ref ADC_CHANNEL_14
  *         @arg @ref ADC_CHANNEL_15
  *         @arg @ref ADC_CHANNEL_16
  *         @arg @ref ADC_CHANNEL_17
  *         @arg @ref ADC_CHANNEL_18
  *         @arg @ref ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref ADC_CHANNEL_VBAT         (1)
  *         @arg @ref ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).\n
  *         (1, 2) For ADC channel read back from ADC register,
  *                comparison with internal channel parameter to be done
  *                using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
  */



/**
  * @brief  Helper macro to determine whether the selected channel
  *         corresponds to literal definitions of driver.
  * @note   The different literal definitions of ADC channels are:
  *         - ADC internal channel:
  *           ADC_CHANNEL_VREFINT, ADC_CHANNEL_TEMPSENSOR, ...
  *         - ADC external channel (channel connected to a GPIO pin):
  *           ADC_CHANNEL_1, ADC_CHANNEL_2, ...
  * @note   The channel parameter must be a value defined from literal
  *         definition of a ADC internal channel (ADC_CHANNEL_VREFINT,
  *         ADC_CHANNEL_TEMPSENSOR, ...),
  *         ADC external channel (ADC_CHANNEL_1, ADC_CHANNEL_2, ...),
  *         must not be a value from functions where a channel number is
  *         returned from ADC registers,
  *         because internal and external channels share the same channel
  *         number in ADC registers. The differentiation is made only with
  *         parameters definitions of driver.
  * @param  __CHANNEL__ This parameter can be one of the following values:
  *         @arg @ref ADC_CHANNEL_0           (3)
  *         @arg @ref ADC_CHANNEL_1           (3)
  *         @arg @ref ADC_CHANNEL_2           (3)
  *         @arg @ref ADC_CHANNEL_3           (3)
  *         @arg @ref ADC_CHANNEL_4           (3)
  *         @arg @ref ADC_CHANNEL_5           (3)
  *         @arg @ref ADC_CHANNEL_6
  *         @arg @ref ADC_CHANNEL_7
  *         @arg @ref ADC_CHANNEL_8
  *         @arg @ref ADC_CHANNEL_9
  *         @arg @ref ADC_CHANNEL_10
  *         @arg @ref ADC_CHANNEL_11
  *         @arg @ref ADC_CHANNEL_12
  *         @arg @ref ADC_CHANNEL_13
  *         @arg @ref ADC_CHANNEL_14
  *         @arg @ref ADC_CHANNEL_15
  *         @arg @ref ADC_CHANNEL_16
  *         @arg @ref ADC_CHANNEL_17
  *         @arg @ref ADC_CHANNEL_18
  *         @arg @ref ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref ADC_CHANNEL_VBAT         (1)
  *         @arg @ref ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel connected to a GPIO pin).
  *         Value "1" if the channel corresponds to a parameter definition of a ADC internal channel.
  */



/**
  * @brief  Helper macro to convert a channel defined from parameter
  *         definition of a ADC internal channel (ADC_CHANNEL_VREFINT,
  *         ADC_CHANNEL_TEMPSENSOR, ...),
  *         to its equivalent parameter definition of a ADC external channel
  *         (ADC_CHANNEL_1, ADC_CHANNEL_2, ...).
  * @note   The channel parameter can be, additionally to a value
  *         defined from parameter definition of a ADC internal channel
  *         (ADC_CHANNEL_VREFINT, ADC_CHANNEL_TEMPSENSOR, ...),
  *         a value defined from parameter definition of
  *         ADC external channel (ADC_CHANNEL_1, ADC_CHANNEL_2, ...)
  *         or a value from functions where a channel number is returned
  *         from ADC registers.
  * @param  __CHANNEL__ This parameter can be one of the following values:
  *         @arg @ref ADC_CHANNEL_0           (3)
  *         @arg @ref ADC_CHANNEL_1           (3)
  *         @arg @ref ADC_CHANNEL_2           (3)
  *         @arg @ref ADC_CHANNEL_3           (3)
  *         @arg @ref ADC_CHANNEL_4           (3)
  *         @arg @ref ADC_CHANNEL_5           (3)
  *         @arg @ref ADC_CHANNEL_6
  *         @arg @ref ADC_CHANNEL_7
  *         @arg @ref ADC_CHANNEL_8
  *         @arg @ref ADC_CHANNEL_9
  *         @arg @ref ADC_CHANNEL_10
  *         @arg @ref ADC_CHANNEL_11
  *         @arg @ref ADC_CHANNEL_12
  *         @arg @ref ADC_CHANNEL_13
  *         @arg @ref ADC_CHANNEL_14
  *         @arg @ref ADC_CHANNEL_15
  *         @arg @ref ADC_CHANNEL_16
  *         @arg @ref ADC_CHANNEL_17
  *         @arg @ref ADC_CHANNEL_18
  *         @arg @ref ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref ADC_CHANNEL_VBAT         (1)
  *         @arg @ref ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.\n
  *         (3) On STM32H7, fast channel (0.125 us for 14-bit resolution (ADC conversion rate up to 8 Ms/s)).
  *             Other channels are slow channels (conversion rate: refer to reference manual).
  * @retval Returned value can be one of the following values:
  *         @arg @ref ADC_CHANNEL_0
  *         @arg @ref ADC_CHANNEL_1
  *         @arg @ref ADC_CHANNEL_2
  *         @arg @ref ADC_CHANNEL_3
  *         @arg @ref ADC_CHANNEL_4
  *         @arg @ref ADC_CHANNEL_5
  *         @arg @ref ADC_CHANNEL_6
  *         @arg @ref ADC_CHANNEL_7
  *         @arg @ref ADC_CHANNEL_8
  *         @arg @ref ADC_CHANNEL_9
  *         @arg @ref ADC_CHANNEL_10
  *         @arg @ref ADC_CHANNEL_11
  *         @arg @ref ADC_CHANNEL_12
  *         @arg @ref ADC_CHANNEL_13
  *         @arg @ref ADC_CHANNEL_14
  *         @arg @ref ADC_CHANNEL_15
  *         @arg @ref ADC_CHANNEL_16
  *         @arg @ref ADC_CHANNEL_17
  *         @arg @ref ADC_CHANNEL_18
  */



/**
  * @brief  Helper macro to determine whether the internal channel
  *         selected is available on the ADC instance selected.
  * @note   The channel parameter must be a value defined from parameter
  *         definition of a ADC internal channel (ADC_CHANNEL_VREFINT,
  *         ADC_CHANNEL_TEMPSENSOR, ...),
  *         must not be a value defined from parameter definition of
  *         ADC external channel (ADC_CHANNEL_1, ADC_CHANNEL_2, ...)
  *         or a value from functions where a channel number is
  *         returned from ADC registers,
  *         because internal and external channels share the same channel
  *         number in ADC registers. The differentiation is made only with
  *         parameters definitions of driver.
  * @param  __ADC_INSTANCE__ ADC instance
  * @param  __CHANNEL__ This parameter can be one of the following values:
  *         @arg @ref ADC_CHANNEL_VREFINT      (1)
  *         @arg @ref ADC_CHANNEL_TEMPSENSOR   (1)
  *         @arg @ref ADC_CHANNEL_VBAT         (1)
  *         @arg @ref ADC_CHANNEL_DAC1CH1_ADC2 (2)
  *         @arg @ref ADC_CHANNEL_DAC1CH2_ADC2 (2)
  *
  *         (1) On STM32H7, parameter available only on ADC instance: ADC3.\n
  *         (2) On STM32H7, parameter available only on ADC instance: ADC2.
  * @retval Value "0" if the internal channel selected is not available on the ADC instance selected.
  *         Value "1" if the internal channel selected is available on the ADC instance selected.
  */



/**
  * @brief  Helper macro to get the ADC multimode conversion data of ADC master
  *         or ADC slave from raw value with both ADC conversion data concatenated.
  * @note   This macro is intended to be used when multimode transfer by DMA
  *         is enabled: refer to function @ref LL_ADC_SetMultiDMATransfer().
  *         In this case the transferred data need to processed with this macro
  *         to separate the conversion data of ADC master and ADC slave.
  * @param  __ADC_MULTI_MASTER_SLAVE__ This parameter can be one of the following values:
  *         @arg @ref LL_ADC_MULTI_MASTER
  *         @arg @ref LL_ADC_MULTI_SLAVE
  * @param  __ADC_MULTI_CONV_DATA__ Value between Min_Data=0x000 and Max_Data=0xFFF
  * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
  */



/**
  * @brief  Helper macro to select the ADC common instance
  *         to which is belonging the selected ADC instance.
  * @note   ADC common register instance can be used for:
  *         - Set parameters common to several ADC instances
  *         - Multimode (for devices with several ADC instances)
  *         Refer to functions having argument "ADCxy_COMMON" as parameter.
  * @param  __ADCx__ ADC instance
  * @retval ADC common register instance
  */



/**
  * @brief  Helper macro to check if all ADC instances sharing the same
  *         ADC common instance are disabled.
  * @note   This check is required by functions with setting conditioned to
  *         ADC state:
  *         All ADC instances of the ADC common group must be disabled.
  *         Refer to functions having argument "ADCxy_COMMON" as parameter.
  * @note   On devices with only 1 ADC common instance, parameter of this macro
  *         is useless and can be ignored (parameter kept for compatibility
  *         with devices featuring several ADC common instances).
  * @param  __ADCXY_COMMON__ ADC common instance
  *         (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
  * @retval Value "0" if all ADC instances sharing the same ADC common instance
  *         are disabled.
  *         Value "1" if at least one ADC instance sharing the same ADC common instance
  *         is enabled.
  */



/**
  * @brief  Helper macro to define the ADC conversion data full-scale digital
  *         value corresponding to the selected ADC resolution.
  * @note   ADC conversion data full-scale corresponds to voltage range
  *         determined by analog voltage references Vref+ and Vref-
  *         (refer to reference manual).
  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
  *         @arg @ref ADC_RESOLUTION_16B
  *         @arg @ref ADC_RESOLUTION_14B
  *         @arg @ref ADC_RESOLUTION_12B
  *         @arg @ref ADC_RESOLUTION_10B
  *         @arg @ref ADC_RESOLUTION_8B
  * @retval ADC conversion data full-scale digital value
  */



/**
  * @brief  Helper macro to convert the ADC conversion data from
  *         a resolution to another resolution.
  * @param  __DATA__ ADC conversion data to be converted
  * @param  __ADC_RESOLUTION_CURRENT__ Resolution of to the data to be converted
  *         This parameter can be one of the following values:
  *         @arg @ref ADC_RESOLUTION_16B
  *         @arg @ref ADC_RESOLUTION_14B
  *         @arg @ref ADC_RESOLUTION_12B
  *         @arg @ref ADC_RESOLUTION_10B
  *         @arg @ref ADC_RESOLUTION_8B
  * @param  __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion
  *         This parameter can be one of the following values:
  *         @arg @ref ADC_RESOLUTION_16B
  *         @arg @ref ADC_RESOLUTION_14B
  *         @arg @ref ADC_RESOLUTION_12B
  *         @arg @ref ADC_RESOLUTION_10B
  *         @arg @ref ADC_RESOLUTION_8B
  * @retval ADC conversion data to the requested resolution
  */







/**
  * @brief  Helper macro to calculate the voltage (unit: mVolt)
  *         corresponding to a ADC conversion data (unit: digital value).
  * @note   Analog reference voltage (Vref+) must be either known from
  *         user board environment or can be calculated using ADC measurement
  *         and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
  * @param  __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
  * @param  __ADC_DATA__ ADC conversion data (resolution 12 bits)
  *                       (unit: digital value).
  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
  *         @arg @ref ADC_RESOLUTION_16B
  *         @arg @ref ADC_RESOLUTION_14B
  *         @arg @ref ADC_RESOLUTION_12B
  *         @arg @ref ADC_RESOLUTION_10B
  *         @arg @ref ADC_RESOLUTION_8B
  * @retval ADC conversion data equivalent voltage value (unit: mVolt)
  */







/**
  * @brief  Helper macro to calculate analog reference voltage (Vref+)
  *         (unit: mVolt) from ADC conversion data of internal voltage
  *         reference VrefInt.
  * @note   Computation is using VrefInt calibration value
  *         stored in system memory for each device during production.
  * @note   This voltage depends on user board environment: voltage level
  *         connected to pin Vref+.
  *         On devices with small package, the pin Vref+ is not present
  *         and internally bonded to pin Vdda.
  * @note   On this STM32 series, calibration data of internal voltage reference
  *         VrefInt corresponds to a resolution of 12 bits,
  *         this is the recommended ADC resolution to convert voltage of
  *         internal voltage reference VrefInt.
  *         Otherwise, this macro performs the processing to scale
  *         ADC conversion data to 12 bits.
  * @param  __VREFINT_ADC_DATA__ ADC conversion data (resolution 12 bits)
  *         of internal voltage reference VrefInt (unit: digital value).
  * @param  __ADC_RESOLUTION__ This parameter can be one of the following values:
  *         @arg @ref ADC_RESOLUTION_16B
  *         @arg @ref ADC_RESOLUTION_14B
  *         @arg @ref ADC_RESOLUTION_12B
  *         @arg @ref ADC_RESOLUTION_10B
  *         @arg @ref ADC_RESOLUTION_8B
  * @retval Analog reference voltage (unit: mV)
  */





/**
  * @brief  Helper macro to calculate the temperature (unit: degree Celsius)
  *         from ADC conversion data of internal temperature sensor.
  * @note   Computation is using temperature sensor calibration values
  *         stored in system memory for each device during production.
  * @note   Calculation formula:
  *           Temperature = ((TS_ADC_DATA - TS_CAL1)
  *                           * (TS_CAL2_TEMP - TS_CAL1_TEMP))
  *                         / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
  *           with TS_ADC_DATA = temperature sensor raw data measured by ADC
  *                Avg_Slope = (TS_CAL2 - TS_CAL1)
  *                            / (TS_CAL2_TEMP - TS_CAL1_TEMP)
  *                TS_CAL1   = equivalent TS_ADC_DATA at temperature
  *                            TEMP_DEGC_CAL1 (calibrated in factory)
  *                TS_CAL2   = equivalent TS_ADC_DATA at temperature
  *                            TEMP_DEGC_CAL2 (calibrated in factory)
  *         Caution: Calculation relevancy under reserve that calibration
  *                  parameters are correct (address and data).
  *                  To calculate temperature using temperature sensor
  *                  datasheet typical values (generic values less, therefore
  *                  less accurate than calibrated values),
  *                  use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS().
  * @note   As calculation input, the analog reference voltage (Vref+) must be
  *         defined as it impacts the ADC LSB equivalent voltage.
  * @note   Analog reference voltage (Vref+) must be either known from
  *         user board environment or can be calculated using ADC measurement
  *         and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
  * @note   On this STM32 series, calibration data of temperature sensor
  *         corresponds to a resolution of 12 bits,
  *         this is the recommended ADC resolution to convert voltage of
  *         temperature sensor.
  *         Otherwise, this macro performs the processing to scale
  *         ADC conversion data to 12 bits.
  * @param  __VREFANALOG_VOLTAGE__  Analog reference voltage (unit: mV)
  * @param  __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal
  *                                 temperature sensor (unit: digital value).
  * @param  __ADC_RESOLUTION__      ADC resolution at which internal temperature
  *                                 sensor voltage has been measured.
  *         This parameter can be one of the following values:
  *         @arg @ref ADC_RESOLUTION_16B
  *         @arg @ref ADC_RESOLUTION_14B
  *         @arg @ref ADC_RESOLUTION_12B
  *         @arg @ref ADC_RESOLUTION_10B
  *         @arg @ref ADC_RESOLUTION_8B
  * @retval Temperature (unit: degree Celsius)
  */







/**
  * @brief  Helper macro to calculate the temperature (unit: degree Celsius)
  *         from ADC conversion data of internal temperature sensor.
  * @note   Computation is using temperature sensor typical values
  *         (refer to device datasheet).
  * @note   Calculation formula:
  *           Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV)
  *                         / Avg_Slope + CALx_TEMP
  *           with TS_ADC_DATA      = temperature sensor raw data measured by ADC
  *                                   (unit: digital value)
  *                Avg_Slope        = temperature sensor slope
  *                                   (unit: uV/Degree Celsius)
  *                TS_TYP_CALx_VOLT = temperature sensor digital value at
  *                                   temperature CALx_TEMP (unit: mV)
  *         Caution: Calculation relevancy under reserve the temperature sensor
  *                  of the current device has characteristics in line with
  *                  datasheet typical values.
  *                  If temperature sensor calibration values are available on
  *                  on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()),
  *                  temperature calculation will be more accurate using
  *                  helper macro @ref __LL_ADC_CALC_TEMPERATURE().
  * @note   As calculation input, the analog reference voltage (Vref+) must be
  *         defined as it impacts the ADC LSB equivalent voltage.
  * @note   Analog reference voltage (Vref+) must be either known from
  *         user board environment or can be calculated using ADC measurement
  *         and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
  * @note   ADC measurement data must correspond to a resolution of 12bits
  *         (full scale digital value 4095). If not the case, the data must be
  *         preliminarily rescaled to an equivalent resolution of 12 bits.
  * @param  __TEMPSENSOR_TYP_AVGSLOPE__   Device datasheet data: Temperature sensor slope typical value (unit: uV/DegCelsius).
  *                                       On STM32H7, refer to device datasheet parameter "Avg_Slope".
  * @param  __TEMPSENSOR_TYP_CALX_V__     Device datasheet data: Temperature sensor voltage typical value (at temperature and Vref+ defined in parameters below) (unit: mV).
  *                                       On STM32H7, refer to device datasheet parameter "V30" (corresponding to TS_CAL1).
  * @param  __TEMPSENSOR_CALX_TEMP__      Device datasheet data: Temperature at which temperature sensor voltage (see parameter above) is corresponding (unit: mV)
  * @param  __VREFANALOG_VOLTAGE__        Analog voltage reference (Vref+) voltage (unit: mV)
  * @param  __TEMPSENSOR_ADC_DATA__       ADC conversion data of internal temperature sensor (unit: digital value).
  * @param  __ADC_RESOLUTION__            ADC resolution at which internal temperature sensor voltage has been measured.
  *         This parameter can be one of the following values:
  *         @arg @ref ADC_RESOLUTION_16B
  *         @arg @ref ADC_RESOLUTION_14B
  *         @arg @ref ADC_RESOLUTION_12B
  *         @arg @ref ADC_RESOLUTION_10B
  *         @arg @ref ADC_RESOLUTION_8B
  * @retval Temperature (unit: degree Celsius)
  */
# 1908 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h"
/**
  * @}
  */

/**
  * @}
  */

/* Include ADC HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_adc_ex.h
  * @author  MCD Application Team
  * @brief   Header file of ADC HAL extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup ADCEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup ADCEx_Exported_Types ADC Extended Exported Types
  * @{
  */

/**
  * @brief  ADC Injected Conversion Oversampling structure definition
  */
typedef struct
{
  uint32_t Ratio;



                                              /* This parameter can be a value of @ref ADC_HAL_EC_OVS_RATIO */


  uint32_t RightBitShift; /*!< Configures the division coefficient for the Oversampler.
                                               This parameter can be a value of @ref ADC_HAL_EC_OVS_SHIFT */
} ADC_InjOversamplingTypeDef;

/**
  * @brief  Structure definition of ADC group injected and ADC channel affected to ADC group injected
  * @note   Parameters of this structure are shared within 2 scopes:
  *          - Scope channel: InjectedChannel, InjectedRank, InjectedSamplingTime , InjectedSingleDiff, InjectedOffsetNumber, InjectedOffset
  *          - Scope ADC group injected (affects all channels of injected group): InjectedNbrOfConversion, InjectedDiscontinuousConvMode,
  *            AutoInjectedConv, QueueInjectedContext, ExternalTrigInjecConv, ExternalTrigInjecConvEdge, InjecOversamplingMode, InjecOversampling.
  * @note   The setting of these parameters by function HAL_ADCEx_InjectedConfigChannel() is conditioned to ADC state.
  *         ADC state can be either:
  *          - For all parameters: ADC disabled (this is the only possible ADC state to modify parameter 'InjectedSingleDiff')
  *          - For parameters 'InjectedDiscontinuousConvMode', 'QueueInjectedContext', 'InjecOversampling': ADC enabled without conversion on going on injected group.
  *          - For parameters 'InjectedSamplingTime', 'InjectedOffset', 'InjectedOffsetNumber', 'AutoInjectedConv': ADC enabled without conversion on going on regular and injected groups.
  *          - For parameters 'InjectedChannel', 'InjectedRank', 'InjectedNbrOfConversion', 'ExternalTrigInjecConv', 'ExternalTrigInjecConvEdge': ADC enabled and while conversion on going
  *            on ADC groups regular and injected.
  *         If ADC is not in the appropriate state to modify some parameters, these parameters setting is bypassed
  *         without error reporting (as it can be the expected behavior in case of intended action to update another parameter (which fulfills the ADC state condition) on the fly).
  */
typedef struct
{
  uint32_t InjectedChannel; /*!< Specifies the channel to configure into ADC group injected.
                                               This parameter can be a value of @ref ADC_HAL_EC_CHANNEL
                                               Note: Depending on devices and ADC instances, some channels may not be available on device package pins. Refer to device datasheet for channels availability. */

  uint32_t InjectedRank; /*!< Specifies the rank in the ADC group injected sequencer.
                                               This parameter must be a value of @ref ADC_INJ_SEQ_RANKS.
                                               Note: to disable a channel or change order of conversion sequencer, rank containing a previous channel setting can be overwritten by
                                               the new channel setting (or parameter number of conversions adjusted) */

  uint32_t InjectedSamplingTime; /*!< Sampling time value to be set for the selected channel.
                                               Unit: ADC clock cycles.
                                               Conversion time is the addition of sampling time and processing time
                                               (12.5 ADC clock cycles at ADC resolution 12 bits, 10.5 cycles at 10 bits, 8.5 cycles at 8 bits, 6.5 cycles at 6 bits).
                                               This parameter can be a value of @ref ADC_HAL_EC_CHANNEL_SAMPLINGTIME.
                                               Caution: This parameter applies to a channel that can be used in a regular and/or injected group.
                                                        It overwrites the last setting.
                                               Note: In case of usage of internal measurement channels (VrefInt/Vbat/TempSensor),
                                                     sampling time constraints must be respected (sampling time can be adjusted in function of ADC clock frequency and sampling time setting)
                                                     Refer to device datasheet for timings values. */

  uint32_t InjectedSingleDiff; /*!< Selection of single-ended or differential input.
                                               In differential mode: Differential measurement is between the selected channel 'i' (positive input) and channel 'i+1' (negative input).
                                               Only channel 'i' has to be configured, channel 'i+1' is configured automatically.
                                               This parameter must be a value of @ref ADC_HAL_EC_CHANNEL_SINGLE_DIFF_ENDING.
                                               Caution: This parameter applies to a channel that can be used in a regular and/or injected group.
                                                        It overwrites the last setting.
                                               Note: Refer to Reference Manual to ensure the selected channel is available in differential mode.
                                               Note: When configuring a channel 'i' in differential mode, the channel 'i+1' is not usable separately.
                                               Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
                                               If ADC is enabled, this parameter setting is bypassed without error reporting (as it can be the expected behavior in case
                                               of another parameter update on the fly) */

  uint32_t InjectedOffsetNumber; /*!< Selects the offset number.
                                               This parameter can be a value of @ref ADC_HAL_EC_OFFSET_NB.
                                               Caution: Only one offset is allowed per channel. This parameter overwrites the last setting. */

  uint32_t InjectedOffset; /*!< Defines the offset to be subtracted from the raw converted data.
                                               Offset value must be a positive number.
                                               Maximum value depends on ADC resolution and oversampling ratio (in case of oversampling used).
                                               This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x3FFFC00 (corresponding to resolution 16 bit and oversampling ratio 1024).
                                               Note: This parameter must be modified when no conversion is on going on both regular and injected groups (ADC disabled, or ADC enabled
                                               without continuous mode or external trigger that could launch a conversion). */

  uint32_t InjectedOffsetRightShift; /*!< Specifies whether the 1 bit Right-shift feature is used or not.
                                                This parameter is applied only for 16-bit or 8-bit resolution.
                                                This parameter can be set to ENABLE or DISABLE. */
# 137 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
  FunctionalState InjectedOffsetSignedSaturation; /*!< Specifies whether the Signed saturation feature is used or not.
                                               This parameter is applied only for 16-bit or 8-bit resolution.
                                               This parameter can be set to ENABLE or DISABLE. */

  uint32_t InjectedNbrOfConversion; /*!< Specifies the number of ranks that will be converted within the ADC group injected sequencer.
                                               To use the injected group sequencer and convert several ranks, parameter 'ScanConvMode' must be enabled.
                                               This parameter must be a number between Min_Data = 1 and Max_Data = 4.
                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
                                                        configure a channel on injected group can impact the configuration of other channels previously set. */

  FunctionalState InjectedDiscontinuousConvMode; /*!< Specifies whether the conversions sequence of ADC group injected is performed in Complete-sequence/Discontinuous-sequence
                                               (main sequence subdivided in successive parts).
                                               Discontinuous mode is used only if sequencer is enabled (parameter 'ScanConvMode'). If sequencer is disabled, this parameter is discarded.
                                               Discontinuous mode can be enabled only if continuous mode is disabled.
                                               This parameter can be set to ENABLE or DISABLE.
                                               Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion).
                                               Note: For injected group, discontinuous mode converts the sequence channel by channel (discontinuous length fixed to 1 rank).
                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
                                                        configure a channel on injected group can impact the configuration of other channels previously set. */

  FunctionalState AutoInjectedConv; /*!< Enables or disables the selected ADC group injected automatic conversion after regular one
                                               This parameter can be set to ENABLE or DISABLE.
                                               Note: To use Automatic injected conversion, discontinuous mode must be disabled ('DiscontinuousConvMode' and 'InjectedDiscontinuousConvMode' set to DISABLE)
                                               Note: To use Automatic injected conversion, injected group external triggers must be disabled ('ExternalTrigInjecConv' set to ADC_INJECTED_SOFTWARE_START)
                                               Note: In case of DMA used with regular group: if DMA configured in normal mode (single shot) JAUTO will be stopped upon DMA transfer complete.
                                                     To maintain JAUTO always enabled, DMA must be configured in circular mode.
                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
                                                        configure a channel on injected group can impact the configuration of other channels previously set. */

  FunctionalState QueueInjectedContext; /*!< Specifies whether the context queue feature is enabled.
                                               This parameter can be set to ENABLE or DISABLE.
                                               If context queue is enabled, injected sequencer&channels configurations are queued on up to 2 contexts. If a
                                               new injected context is set when queue is full, error is triggered by interruption and through function
                                               'HAL_ADCEx_InjectedQueueOverflowCallback'.
                                               Caution: This feature request that the sequence is fully configured before injected conversion start.
                                                        Therefore, configure channels with as many calls to HAL_ADCEx_InjectedConfigChannel() as the 'InjectedNbrOfConversion' parameter.
                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
                                                        configure a channel on injected group can impact the configuration of other channels previously set.
                                               Note: This parameter must be modified when ADC is disabled (before ADC start conversion or after ADC stop conversion). */

  uint32_t ExternalTrigInjecConv; /*!< Selects the external event used to trigger the conversion start of injected group.
                                               If set to ADC_INJECTED_SOFTWARE_START, external triggers are disabled and software trigger is used instead.
                                               This parameter can be a value of @ref ADC_injected_external_trigger_source.
                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
                                                        configure a channel on injected group can impact the configuration of other channels previously set. */

  uint32_t ExternalTrigInjecConvEdge; /*!< Selects the external trigger edge of injected group.
                                               This parameter can be a value of @ref ADC_injected_external_trigger_edge.
                                               If trigger source is set to ADC_INJECTED_SOFTWARE_START, this parameter is discarded.
                                               Caution: this setting impacts the entire injected group. Therefore, call of HAL_ADCEx_InjectedConfigChannel() to
                                                        configure a channel on injected group can impact the configuration of other channels previously set. */

  FunctionalState InjecOversamplingMode; /*!< Specifies whether the oversampling feature is enabled or disabled.
                                                      This parameter can be set to ENABLE or DISABLE.
                                                      Note: This parameter can be modified only if there is no conversion is ongoing (both ADSTART and JADSTART cleared). */

  ADC_InjOversamplingTypeDef InjecOversampling; /*!< Specifies the Oversampling parameters.
                                                      Caution: this setting overwrites the previous oversampling configuration if oversampling already enabled.
                                                      Note: This parameter can be modified only if there is no conversion is ongoing (both ADSTART and JADSTART cleared). */
} ADC_InjectionConfTypeDef;

/**
  * @brief  Structure definition of ADC multimode
  * @note   The setting of these parameters by function HAL_ADCEx_MultiModeConfigChannel() is conditioned by ADCs state (both Master and Slave ADCs).
  *         Both Master and Slave ADCs must be disabled.
  */
typedef struct
{
  uint32_t Mode; /*!< Configures the ADC to operate in independent or multimode.
                                   This parameter can be a value of @ref ADC_HAL_EC_MULTI_MODE. */

  uint32_t DualModeData; /*!< Configures the Dual ADC Mode Data Format:
                                   This parameter can be a value of @ref ADCEx_Dual_Mode_Data_Format */

  uint32_t TwoSamplingDelay; /*!< Configures the Delay between 2 sampling phases.
                                   This parameter can be a value of @ref ADC_HAL_EC_MULTI_TWOSMP_DELAY.
                                   Delay range depends on selected resolution:
                                   from 1 to 9 clock cycles for 16 bits,
                                   from 1 to 9 clock cycles for 14 bits
                                   from 1 to 8 clock cycles for 12 bits
                                   from 1 to 6 clock cycles for 10 bits
                                   from 1 to 6 clock cycles for 8 bits     */
} ADC_MultiModeTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup ADCEx_Exported_Constants ADC Extended Exported Constants
  * @{
  */

/** @defgroup ADC_injected_external_trigger_source ADC group injected trigger source
  * @{
  */
/* ADC group regular trigger sources for all ADC instances */
# 259 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @}
  */

/** @defgroup ADC_injected_external_trigger_edge ADC group injected trigger edge (when external trigger is selected)
  * @{
  */




/**
  * @}
  */

/** @defgroup ADC_HAL_EC_CHANNEL_SINGLE_DIFF_ENDING  Channel - Single or differential ending
  * @{
  */


/**
  * @}
  */

/** @defgroup ADC_HAL_EC_OFFSET_NB  ADC instance - Offset number
  * @{
  */





/**
  * @}
  */
# 306 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/** @defgroup ADC_INJ_SEQ_RANKS  ADC group injected - Sequencer ranks
  * @{
  */




/**
  * @}
  */

/** @defgroup ADC_HAL_EC_MULTI_MODE  Multimode - Mode
  * @{
  */
# 329 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/** @defgroup ADCEx_Dual_Mode_Data_Format ADC Extended Dual Mode Data Formatting
  * @{
  */



/**
  * @}
  */

/** @defgroup ADC_HAL_EC_MULTI_TWOSMP_DELAY  Multimode - Delay between two sampling phases
  * @{
  */
# 351 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @}
  */

/**
  * @}
  */

/** @defgroup ADC_HAL_EC_GROUPS  ADC instance - Groups
  * @{
  */



/**
  * @}
  */

/** @defgroup ADC_CFGR_fields ADCx CFGR fields
  * @{
  */






/**
  * @}
  */

/** @defgroup ADC_SMPR1_fields ADCx SMPR1 fields
  * @{
  */




/**
  * @}
  */

/** @defgroup ADC_CFGR_fields_2 ADCx CFGR sub fields
  * @{
  */
/* ADC_CFGR fields of parameters that can be updated when no conversion
   (neither regular nor injected) is on-going  */

/**
  * @}
  */
# 415 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/** @defgroup ADC_HAL_EC_REG_DFSDM_TRANSFER ADC group regular - DFSDM transfer of ADC conversion data
  * @{
  */


/**
  * @}
  */


/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/

/** @defgroup ADCEx_Exported_Macro ADC Extended Exported Macros
  * @{
  */

/** @brief  Force ADC instance in multimode mode independent (multimode disable).
  * @note   This macro must be used only in case of transition from multimode
  *         to mode independent and in case of unknown previous state,
  *         to ensure ADC configuration is in mode independent.
  * @note   Standard way of multimode configuration change is done from
  *         HAL ADC handle of ADC master using function
  *         "HAL_ADCEx_MultiModeConfigChannel(..., ADC_MODE_INDEPENDENT)" )".
  *         Usage of this macro is not the Standard way of multimode
  *         configuration and can lead to have HAL ADC handles status
  *         misaligned. Usage of this macro must be limited to cases
  *         mentioned above.
  * @param __HANDLE__ ADC handle.
  * @retval None
  */



/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/

/** @defgroup ADCEx_Private_Macro_internal_HAL_driver ADC Extended Private Macros
  * @{
  */
/* Macro reserved for internal HAL driver usage, not intended to be used in   */
/* code of final user.                                                        */

/**
  * @brief Test if conversion trigger of injected group is software start
  *        or external trigger.
  * @param __HANDLE__ ADC handle.
  * @retval SET (software start) or RESET (external trigger).
  */



/**
  * @brief Check if conversion is on going on regular or injected groups.
  * @param __HANDLE__ ADC handle.
  * @retval SET (conversion is on going) or RESET (no conversion is on going).
  */




/**
  * @brief Check if conversion is on going on injected group.
  * @param __HANDLE__ ADC handle.
  * @retval Value "0" (no conversion is on going) or value "1" (conversion is on going)
  */





/**
  * @brief Check whether or not ADC is independent.
  * @param __HANDLE__ ADC handle.
  * @note  When multimode feature is not available, the macro always returns SET.
  * @retval SET (ADC is independent) or RESET (ADC is not).
  */
# 508 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Set the selected injected Channel rank.
  * @param __CHANNELNB__ Channel number.
  * @param __RANKNB__ Rank number.
  * @retval None
  */


/**
  * @brief Configure ADC injected context queue
  * @param __INJECT_CONTEXT_QUEUE_MODE__ Injected context queue mode.
  * @retval None
  */


/**
  * @brief Configure ADC discontinuous conversion mode for injected group
  * @param __INJECT_DISCONTINUOUS_MODE__ Injected discontinuous mode.
  * @retval None
  */


/**
  * @brief Configure ADC discontinuous conversion mode for regular group
  * @param __REG_DISCONTINUOUS_MODE__ Regular discontinuous mode.
  * @retval None
  */


/**
  * @brief Configure the number of discontinuous conversions for regular group.
  * @param __NBR_DISCONTINUOUS_CONV__ Number of discontinuous conversions.
  * @retval None
  */


/**
  * @brief Configure the ADC auto delay mode.
  * @param __AUTOWAIT__ Auto delay bit enable or disable.
  * @retval None
  */


/**
  * @brief Configure ADC continuous conversion mode.
  * @param __CONTINUOUS_MODE__ Continuous mode.
  * @retval None
  */


/**
  * @brief Enable the ADC DMA continuous request.
  * @param __DMACONTREQ_MODE__: DMA continuous request mode.
  * @retval None
  */
# 573 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Configure the channel number into offset OFRx register.
  * @param __CHANNEL__ ADC Channel.
  * @retval None
  */


/**
  * @brief Configure the channel number into differential mode selection register.
  * @param __CHANNEL__ ADC Channel.
  * @retval None
  */


/**
  * @brief Configure calibration factor in differential mode to be set into calibration register.
  * @param __CALIBRATION_FACTOR__ Calibration factor value.
  * @retval None
  */


/**
  * @brief Calibration factor in differential mode to be retrieved from calibration register.
  * @param __CALIBRATION_FACTOR__ Calibration factor value.
  * @retval None
  */


/**
  * @brief Configure the analog watchdog high threshold into registers TR1, TR2 or TR3.
  * @param __THRESHOLD__ Threshold value.
  * @retval None
  */


/**
  * @brief Configure the ADC DMA continuous request for ADC multimode.
  * @param __DMACONTREQ_MODE__ DMA continuous request mode.
  * @retval None
  */


/**
  * @brief Shift the offset in function of the selected ADC resolution.
  * @note  Offset has to be left-aligned on bit 15, the LSB (right bits) are set to 0
  *        If resolution 16 bits, no shift.
  *        If resolution 14 bits, shift of 2 ranks on the left.
  *        If resolution 12 bits, shift of 4 ranks on the left.
  *        If resolution 10 bits, shift of 6 ranks on the left.
  *        If resolution 8 bits, shift of 8 ranks on the left.
  *        therefore, shift = (16 - resolution) = 16 - (16 - (((RES[2:0]) >> 2)*2))
  * @param __HANDLE__: ADC handle
  * @param __OFFSET__: Value to be shifted
  * @retval None
  */
# 654 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Shift the AWD1 threshold in function of the selected ADC resolution.
  * @note  Thresholds have to be left-aligned on bit 15, the LSB (right bits) are set to 0.
  *        If resolution 16 bits, no shift.
  *        If resolution 14 bits, shift of 2 ranks on the left.
  *        If resolution 12 bits, shift of 4 ranks on the left.
  *        If resolution 10 bits, shift of 6 ranks on the left.
  *        If resolution 8 bits, shift of 8 ranks on the left.
  *        therefore, shift = (16 - resolution) = 16 - (16- (((RES[2:0]) >> 2)*2))
  * @param __HANDLE__: ADC handle
  * @param __THRESHOLD__: Value to be shifted
  * @retval None
  */
# 700 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Shift the AWD2 and AWD3 threshold in function of the selected ADC resolution.
  * @note  Thresholds have to be left-aligned on bit 15, the LSB (right bits) are set to 0.
  *        If resolution 16 bits, no shift.
  *        If resolution 14 bits, shift of 2 ranks on the left.
  *        If resolution 12 bits, shift of 4 ranks on the left.
  *        If resolution 10 bits, shift of 6 ranks on the left.
  *        If resolution 8 bits, shift of 8 ranks on the left.
  *        therefore, shift = (16 - resolution) = 16 - (16- (((RES[2:0]) >> 2)*2))
  * @param __HANDLE__: ADC handle
  * @param __THRESHOLD__: Value to be shifted
  * @retval None
  */
# 732 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Clear Common Control Register.
  * @param __HANDLE__ ADC handle.
  * @retval None
  */
/**
  * @brief Report common register to ADC1 and ADC2
  * @param __HANDLE__: ADC handle
  * @retval Common control register
  */


/**
  * @brief Report common register to ADC3
  * @param __HANDLE__: ADC handle
  * @retval Common control register
  */


/**
  * @brief Report Master Instance
  * @param __HANDLE__: ADC handle
  * @note return same instance if ADC of input handle is independent ADC
  * @retval Master Instance
  */
# 769 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Check whether or not dual regular conversions are enabled
  * @param __HANDLE__: ADC handle
  * @retval SET (dual regular conversions are enabled) or RESET (ADC is independent or no dual regular conversions are enabled)
  */
# 784 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verification of condition for ADC start conversion: ADC must be in non-MultiMode or MultiMode with handle of ADC master
  * @param __HANDLE__: ADC handle
  * @retval SET (non-MultiMode or Master handle) or RESET (handle of Slave ADC in MultiMode)
  */
# 797 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verification of condition for ADC start conversion: ADC must be in non-MultiMode or MultiMode with handle of ADC master
  * @param __HANDLE__: ADC handle
  * @retval SET (non-MultiMode or Master handle) or RESET (handle of Slave ADC in MultiMode)
  */
# 810 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Ensure ADC Instance is Independent or Master, or is not Slave ADC with dual regular conversions enabled
  * @param __HANDLE__: ADC handle
  * @retval SET (Independent or Master, or Slave without dual regular conversions enabled) or RESET (Slave ADC with dual regular conversions enabled)
  */
# 835 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Ensure ADC Instance is Independent or Master, or is not Slave ADC with dual injected conversions enabled
  * @param __HANDLE__: ADC handle
  * @retval SET (non-MultiMode or Master, or Slave without dual injected conversions enabled) or RESET (Slave ADC with dual injected conversions enabled)
  */
# 869 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Set handle instance of the ADC slave associated to the ADC master.
  * @param __HANDLE_MASTER__ ADC master handle.
  * @param __HANDLE_SLAVE__ ADC slave handle.
  * @note if __HANDLE_MASTER__ is the handle of a slave ADC (ADC2) or an independent ADC, __HANDLE_SLAVE__ instance is set to NULL.
  * @retval None
  */




/**
  * @brief Verify the ADC instance connected to the temperature sensor.
  * @param __HANDLE__ ADC handle.
  * @retval SET (ADC instance is valid) or RESET (ADC instance is invalid)
  */






/**
  * @brief Verify the ADC instance connected to the battery voltage VBAT.
  * @param __HANDLE__ ADC handle.
  * @retval SET (ADC instance is valid) or RESET (ADC instance is invalid)
  */






/**
  * @brief Verify the ADC instance connected to the internal voltage reference VREFINT.
  * @param __HANDLE__ ADC handle.
  * @retval SET (ADC instance is valid) or RESET (ADC instance is invalid)
  */






/**
  * @brief Verify the length of scheduled injected conversions group.
  * @param __LENGTH__ number of programmed conversions.
  * @retval SET (__LENGTH__ is within the maximum number of possible programmable injected conversions) or RESET (__LENGTH__ is null or too large)
  */


/**
  * @brief Calibration factor size verification (11 bits maximum).
  * @param __CALIBRATION_FACTOR__ Calibration factor value.
  * @retval SET (__CALIBRATION_FACTOR__ is within the authorized size) or RESET (__CALIBRATION_FACTOR__ is too large)
  */
# 936 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC channel setting.
  * @param __CHANNEL__ programmed ADC channel.
  * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid)
  */
# 967 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC channel setting in differential mode for ADC1.
  * @param __CHANNEL__: programmed ADC channel.
  * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid)
  */
# 983 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC channel setting in differential mode for ADC2.
  * @param __CHANNEL__: programmed ADC channel.
  * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid)
  */
# 998 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC channel setting in differential mode for ADC3.
  * @param __CHANNEL__: programmed ADC channel.
  * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid)
  */
# 1014 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Helper macro to determine the selected channel corresponding
  *        negative input for ADC1.
  * @param __CHANNEL__: programmed ADC channel.
  * @retval return the negative input channels corresponding to the selected channel.
  */
# 1031 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Helper macro to determine the selected channel corresponding
  *        negative input for ADC2.
  * @param __CHANNEL__: programmed ADC channel.
  * @retval return the negative input channels corresponding to the selected channel.
  */
# 1077 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief  Helper macro to determine the selected channel corresponding
  *         negative input on the ADC instance selected.
  * @param __HANDLE__ ADC handle.
  * @param __CHANNEL__ This parameter can be one of the following values:
  * @retval return the negative input channels corresponding to the selected channel.
  */




/**
  * @brief Verify the ADC single-ended input or differential mode setting.
  * @param __SING_DIFF__ programmed channel setting.
  * @retval SET (__SING_DIFF__ is valid) or RESET (__SING_DIFF__ is invalid)
  */



/**
  * @brief Verify the ADC offset management setting.
  * @param __OFFSET_NUMBER__ ADC offset management.
  * @retval SET (__OFFSET_NUMBER__ is valid) or RESET (__OFFSET_NUMBER__ is invalid)
  */
# 1115 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC injected channel setting.
  * @param __CHANNEL__ programmed ADC injected channel.
  * @retval SET (__CHANNEL__ is valid) or RESET (__CHANNEL__ is invalid)
  */





/**
  * @brief Verify the ADC injected conversions external trigger.
  * @param __INJTRIG__ programmed ADC injected conversions external trigger.
  * @retval SET (__INJTRIG__ is a valid value) or RESET (__INJTRIG__ is invalid)
  */
# 1177 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC edge trigger setting for injected group.
  * @param __EDGE__ programmed ADC edge trigger setting.
  * @retval SET (__EDGE__ is a valid value) or RESET (__EDGE__ is invalid)
  */





/**
  * @brief Verify the ADC multimode setting.
  * @param __MODE__ programmed ADC multimode setting.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */
# 1201 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC dual data mode setting.
  * @param MODE: programmed ADC dual mode setting.
  * @retval SET (MODE is valid) or RESET (MODE is invalid)
  */




/**
  * @brief Verify the ADC multimode delay setting.
  * @param __DELAY__ programmed ADC multimode delay setting.
  * @retval SET (__DELAY__ is a valid value) or RESET (__DELAY__ is invalid)
  */
# 1225 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC analog watchdog setting.
  * @param __WATCHDOG__ programmed ADC analog watchdog setting.
  * @retval SET (__WATCHDOG__ is valid) or RESET (__WATCHDOG__ is invalid)
  */




/**
  * @brief Verify the ADC analog watchdog mode setting.
  * @param __WATCHDOG_MODE__ programmed ADC analog watchdog mode setting.
  * @retval SET (__WATCHDOG_MODE__ is valid) or RESET (__WATCHDOG_MODE__ is invalid)
  */
# 1264 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC conversion (regular or injected or both).
  * @param __CONVERSION__ ADC conversion group.
  * @retval SET (__CONVERSION__ is valid) or RESET (__CONVERSION__ is invalid)
  */




/**
  * @brief Verify the ADC event type.
  * @param __EVENT__ ADC event.
  * @retval SET (__EVENT__ is valid) or RESET (__EVENT__ is invalid)
  */







/**
  * @brief Verify the ADC oversampling ratio.
  * @param RATIO: programmed ADC oversampling ratio.
  * @retval SET (RATIO is a valid value) or RESET (RATIO is invalid)
  */
# 1308 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC oversampling shift.
  * @param __SHIFT__ programmed ADC oversampling shift.
  * @retval SET (__SHIFT__ is a valid value) or RESET (__SHIFT__ is invalid)
  */
# 1326 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc_ex.h"
/**
  * @brief Verify the ADC oversampling triggered mode.
  * @param __MODE__ programmed ADC oversampling triggered mode.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */



/**
  * @brief Verify the ADC oversampling regular conversion resumed or continued mode.
  * @param __MODE__ programmed ADC oversampling regular conversion resumed or continued mode.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */



/**
  * @brief Verify the DFSDM mode configuration.
  * @param __HANDLE__ ADC handle.
  * @note When DMSDFM configuration is not supported, the macro systematically reports SET. For
  *      this reason, the input parameter is the ADC handle and not the configuration parameter
  *      directly.
  * @retval SET (DFSDM mode configuration is valid) or RESET (DFSDM mode configuration is invalid)
  */







/**
  * @brief Return the DFSDM configuration mode.
  * @param __HANDLE__ ADC handle.
  * @note When DMSDFM configuration is not supported, the macro systematically reports 0x0 (i.e disabled).
  *       For this reason, the input parameter is the ADC handle and not the configuration parameter
  *       directly.
  * @retval DFSDM configuration mode
  */






/**
  * @}
  */


/* Exported functions --------------------------------------------------------*/
/** @addtogroup ADCEx_Exported_Functions
  * @{
  */

/** @addtogroup ADCEx_Exported_Functions_Group1
  * @{
  */
/* IO operation functions *****************************************************/

/* ADC calibration */
HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef *hadc, uint32_t CalibrationMode, uint32_t SingleDiff);
uint32_t HAL_ADCEx_Calibration_GetValue(const ADC_HandleTypeDef *hadc, uint32_t SingleDiff);
HAL_StatusTypeDef HAL_ADCEx_LinearCalibration_GetValue(ADC_HandleTypeDef *hadc, uint32_t *LinearCalib_Buffer);
HAL_StatusTypeDef HAL_ADCEx_Calibration_SetValue(ADC_HandleTypeDef *hadc, uint32_t SingleDiff, uint32_t CalibrationFactor);
HAL_StatusTypeDef HAL_ADCEx_LinearCalibration_SetValue(ADC_HandleTypeDef *hadc, uint32_t *LinearCalib_Buffer);
HAL_StatusTypeDef HAL_ADCEx_LinearCalibration_FactorLoad(ADC_HandleTypeDef *hadc);


/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout);

/* Non-blocking mode: Interruption */
HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef *hadc);

/* ADC multimode */
HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, const uint32_t *pData, uint32_t Length);
HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc);
uint32_t HAL_ADCEx_MultiModeGetValue(const ADC_HandleTypeDef *hadc);

/* ADC retrieve conversion value intended to be used with polling or interruption */
uint32_t HAL_ADCEx_InjectedGetValue(const ADC_HandleTypeDef *hadc, uint32_t InjectedRank);

/* ADC IRQHandler and Callbacks used in non-blocking modes (Interruption) */
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc);
void HAL_ADCEx_InjectedQueueOverflowCallback(ADC_HandleTypeDef *hadc);
void HAL_ADCEx_LevelOutOfWindow2Callback(ADC_HandleTypeDef *hadc);
void HAL_ADCEx_LevelOutOfWindow3Callback(ADC_HandleTypeDef *hadc);
void HAL_ADCEx_EndOfSamplingCallback(ADC_HandleTypeDef *hadc);

/* ADC group regular conversions stop */
HAL_StatusTypeDef HAL_ADCEx_RegularStop(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADCEx_RegularStop_IT(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADCEx_RegularStop_DMA(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADCEx_RegularMultiModeStop_DMA(ADC_HandleTypeDef *hadc);

/**
  * @}
  */

/** @addtogroup ADCEx_Exported_Functions_Group2
  * @{
  */
/* Peripheral Control functions ***********************************************/
HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef *hadc, ADC_InjectionConfTypeDef *sConfigInjected);
HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *hadc, ADC_MultiModeTypeDef *multimode);
HAL_StatusTypeDef HAL_ADCEx_EnableInjectedQueue(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADCEx_DisableInjectedQueue(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADCEx_DisableVoltageRegulator(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADCEx_EnterADCDeepPowerDownMode(ADC_HandleTypeDef *hadc);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 1918 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_adc.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup ADC_Exported_Functions
  * @{
  */

/** @addtogroup ADC_Exported_Functions_Group1
  * @brief    Initialization and Configuration functions
  * @{
  */
/* Initialization and de-initialization functions  ****************************/
HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc);
void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc);
void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc);







/**
  * @}
  */

/** @addtogroup ADC_Exported_Functions_Group2
  * @brief    IO operation functions
  * @{
  */
/* IO operation functions  *****************************************************/

/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout);
HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeout);

/* Non-blocking mode: Interruption */
HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc);

/* Non-blocking mode: DMA */
HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length);
HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc);

/* ADC retrieve conversion value intended to be used with polling or interruption */
uint32_t HAL_ADC_GetValue(const ADC_HandleTypeDef *hadc);

/* ADC IRQHandler and Callbacks used in non-blocking modes (Interruption and DMA) */
void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc);
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc);
void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc);
void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc);
void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc);
/**
  * @}
  */

/** @addtogroup ADC_Exported_Functions_Group3 Peripheral Control functions
 *  @brief    Peripheral Control functions
 * @{
 */
/* Peripheral Control functions ***********************************************/
HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_ChannelConfTypeDef *sConfig);
HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_AnalogWDGConfTypeDef *AnalogWDGConfig);

/**
  * @}
  */

/* Peripheral State functions *************************************************/
/** @addtogroup ADC_Exported_Functions_Group4
  * @{
  */
uint32_t HAL_ADC_GetState(const ADC_HandleTypeDef *hadc);
uint32_t HAL_ADC_GetError(const ADC_HandleTypeDef *hadc);

/**
  * @}
  */

/**
  * @}
  */

/* Private functions -----------------------------------------------------------*/
/** @addtogroup ADC_Private_Functions ADC Private Functions
  * @{
  */
HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc, uint32_t ConversionGroup);
HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc);
HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc);
void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma);
void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma);
void ADC_DMAError(DMA_HandleTypeDef *hdma);
void ADC_ConfigureBoostMode(ADC_HandleTypeDef *hadc);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 307 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_fdcan.h
  * @author  MCD Application Team
  * @brief   Header file of FDCAN HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h" 2



/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup FDCAN
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup FDCAN_Exported_Types FDCAN Exported Types
  * @{
  */

/**
  * @brief HAL State structures definition
  */
typedef enum
{
  HAL_FDCAN_STATE_RESET = 0x00U,
  HAL_FDCAN_STATE_READY = 0x01U,
  HAL_FDCAN_STATE_BUSY = 0x02U,
  HAL_FDCAN_STATE_ERROR = 0x03U
} HAL_FDCAN_StateTypeDef;

/**
  * @brief FDCAN Init structure definition
  */
typedef struct
{
  uint32_t FrameFormat; /*!< Specifies the FDCAN frame format.
                                              This parameter can be a value of @ref FDCAN_frame_format     */

  uint32_t Mode; /*!< Specifies the FDCAN mode.
                                              This parameter can be a value of @ref FDCAN_operating_mode   */

  FunctionalState AutoRetransmission; /*!< Enable or disable the automatic retransmission mode.
                                              This parameter can be set to ENABLE or DISABLE               */

  FunctionalState TransmitPause; /*!< Enable or disable the Transmit Pause feature.
                                              This parameter can be set to ENABLE or DISABLE               */

  FunctionalState ProtocolException; /*!< Enable or disable the Protocol Exception Handling.
                                              This parameter can be set to ENABLE or DISABLE               */

  uint32_t NominalPrescaler; /*!< Specifies the value by which the oscillator frequency is
                                              divided for generating the nominal bit time quanta.
                                              This parameter must be a number between 1 and 512            */

  uint32_t NominalSyncJumpWidth; /*!< Specifies the maximum number of time quanta the FDCAN
                                              hardware is allowed to lengthen or shorten a bit to perform
                                              resynchronization.
                                              This parameter must be a number between 1 and 128            */

  uint32_t NominalTimeSeg1; /*!< Specifies the number of time quanta in Bit Segment 1.
                                              This parameter must be a number between 2 and 256            */

  uint32_t NominalTimeSeg2; /*!< Specifies the number of time quanta in Bit Segment 2.
                                              This parameter must be a number between 2 and 128            */

  uint32_t DataPrescaler; /*!< Specifies the value by which the oscillator frequency is
                                              divided for generating the data bit time quanta.
                                              This parameter must be a number between 1 and 32             */

  uint32_t DataSyncJumpWidth; /*!< Specifies the maximum number of time quanta the FDCAN
                                              hardware is allowed to lengthen or shorten a data bit to
                                              perform resynchronization.
                                              This parameter must be a number between 1 and 16             */

  uint32_t DataTimeSeg1; /*!< Specifies the number of time quanta in Data Bit Segment 1.
                                              This parameter must be a number between 1 and 32             */

  uint32_t DataTimeSeg2; /*!< Specifies the number of time quanta in Data Bit Segment 2.
                                              This parameter must be a number between 1 and 16             */

  uint32_t MessageRAMOffset; /*!< Specifies the message RAM start address.
                                              This parameter must be a number between 0 and 2560           */

  uint32_t StdFiltersNbr; /*!< Specifies the number of standard Message ID filters.
                                              This parameter must be a number between 0 and 128            */

  uint32_t ExtFiltersNbr; /*!< Specifies the number of extended Message ID filters.
                                              This parameter must be a number between 0 and 64             */

  uint32_t RxFifo0ElmtsNbr; /*!< Specifies the number of Rx FIFO0 Elements.
                                              This parameter must be a number between 0 and 64             */

  uint32_t RxFifo0ElmtSize; /*!< Specifies the Data Field Size in an Rx FIFO 0 element.
                                              This parameter can be a value of @ref FDCAN_data_field_size  */

  uint32_t RxFifo1ElmtsNbr; /*!< Specifies the number of Rx FIFO 1 Elements.
                                              This parameter must be a number between 0 and 64             */

  uint32_t RxFifo1ElmtSize; /*!< Specifies the Data Field Size in an Rx FIFO 1 element.
                                              This parameter can be a value of @ref FDCAN_data_field_size  */

  uint32_t RxBuffersNbr; /*!< Specifies the number of Dedicated Rx Buffer elements.
                                              This parameter must be a number between 0 and 64             */

  uint32_t RxBufferSize; /*!< Specifies the Data Field Size in an Rx Buffer element.
                                              This parameter can be a value of @ref FDCAN_data_field_size  */

  uint32_t TxEventsNbr; /*!< Specifies the number of Tx Event FIFO elements.
                                              This parameter must be a number between 0 and 32             */

  uint32_t TxBuffersNbr; /*!< Specifies the number of Dedicated Tx Buffers.
                                              This parameter must be a number between 0 and 32             */

  uint32_t TxFifoQueueElmtsNbr; /*!< Specifies the number of Tx Buffers used for Tx FIFO/Queue.
                                              This parameter must be a number between 0 and 32             */

  uint32_t TxFifoQueueMode; /*!< Tx FIFO/Queue Mode selection.
                                              This parameter can be a value of @ref FDCAN_txFifoQueue_Mode */

  uint32_t TxElmtSize; /*!< Specifies the Data Field Size in a Tx Element.
                                              This parameter can be a value of @ref FDCAN_data_field_size  */

} FDCAN_InitTypeDef;

/**
  * @brief  FDCAN clock calibration unit structure definition
  */
typedef struct
{
  uint32_t ClockCalibration; /*!< Enable or disable the clock calibration.
                                      This parameter can be a value of @ref FDCAN_clock_calibration.       */

  uint32_t ClockDivider; /*!< Specifies the FDCAN kernel clock divider when the clock calibration
                                      is bypassed.
                                      This parameter can be a value of @ref FDCAN_clock_divider            */

  uint32_t MinOscClkPeriods; /*!< Configures the minimum number of periods in two CAN bit times. The
                                      actual configured number of periods is MinOscClkPeriods x 32.
                                      This parameter must be a number between 0x00 and 0xFF                */

  uint32_t CalFieldLength; /*!< Specifies the calibration field length.
                                      This parameter can be a value of @ref FDCAN_calibration_field_length */

  uint32_t TimeQuantaPerBitTime; /*!< Configures the number of time quanta per bit time.
                                      This parameter must be a number between 4 and 25                     */

  uint32_t WatchdogStartValue; /*!< Start value of the Calibration Watchdog Counter.
                                      If set to zero the counter is disabled.
                                      This parameter must be a number between 0x0000 and 0xFFFF            */

} FDCAN_ClkCalUnitTypeDef;

/**
  * @brief  FDCAN filter structure definition
  */
typedef struct
{
  uint32_t IdType; /*!< Specifies the identifier type.
                                  This parameter can be a value of @ref FDCAN_id_type       */

  uint32_t FilterIndex; /*!< Specifies the filter which will be initialized.
                                  This parameter must be a number between:
                                   - 0 and 127, if IdType is FDCAN_STANDARD_ID
                                   - 0 and 63, if IdType is FDCAN_EXTENDED_ID               */

  uint32_t FilterType; /*!< Specifies the filter type.
                                  This parameter can be a value of @ref FDCAN_filter_type.
                                  The value FDCAN_EXT_FILTER_RANGE_NO_EIDM is permitted
                                  only when IdType is FDCAN_EXTENDED_ID.
                                  This parameter is ignored if FilterConfig is set to
                                  FDCAN_FILTER_TO_RXBUFFER                                  */

  uint32_t FilterConfig; /*!< Specifies the filter configuration.
                                  This parameter can be a value of @ref FDCAN_filter_config */

  uint32_t FilterID1; /*!< Specifies the filter identification 1.
                                  This parameter must be a number between:
                                   - 0 and 0x7FF, if IdType is FDCAN_STANDARD_ID
                                   - 0 and 0x1FFFFFFF, if IdType is FDCAN_EXTENDED_ID       */

  uint32_t FilterID2; /*!< Specifies the filter identification 2.
                                  This parameter is ignored if FilterConfig is set to
                                  FDCAN_FILTER_TO_RXBUFFER.
                                  This parameter must be a number between:
                                   - 0 and 0x7FF, if IdType is FDCAN_STANDARD_ID
                                   - 0 and 0x1FFFFFFF, if IdType is FDCAN_EXTENDED_ID       */

  uint32_t RxBufferIndex; /*!< Contains the index of the Rx buffer in which the
                                  matching message will be stored.
                                  This parameter must be a number between 0 and 63.
                                  This parameter is ignored if FilterConfig is different
                                  from FDCAN_FILTER_TO_RXBUFFER                             */

  uint32_t IsCalibrationMsg; /*!< Specifies whether the filter is configured for
                                  calibration messages.
                                  This parameter is ignored if FilterConfig is different
                                  from FDCAN_FILTER_TO_RXBUFFER.
                                  This parameter can be:
                                   - 0 : ordinary message
                                   - 1 : calibration message                                */

} FDCAN_FilterTypeDef;

/**
  * @brief  FDCAN Tx header structure definition
  */
typedef struct
{
  uint32_t Identifier; /*!< Specifies the identifier.
                                     This parameter must be a number between:
                                      - 0 and 0x7FF, if IdType is FDCAN_STANDARD_ID
                                      - 0 and 0x1FFFFFFF, if IdType is FDCAN_EXTENDED_ID               */

  uint32_t IdType; /*!< Specifies the identifier type for the message that will be
                                     transmitted.
                                     This parameter can be a value of @ref FDCAN_id_type               */

  uint32_t TxFrameType; /*!< Specifies the frame type of the message that will be transmitted.
                                     This parameter can be a value of @ref FDCAN_frame_type            */

  uint32_t DataLength; /*!< Specifies the length of the frame that will be transmitted.
                                      This parameter can be a value of @ref FDCAN_data_length_code     */

  uint32_t ErrorStateIndicator; /*!< Specifies the error state indicator.
                                     This parameter can be a value of @ref FDCAN_error_state_indicator */

  uint32_t BitRateSwitch; /*!< Specifies whether the Tx frame will be transmitted with or without
                                     bit rate switching.
                                     This parameter can be a value of @ref FDCAN_bit_rate_switching    */

  uint32_t FDFormat; /*!< Specifies whether the Tx frame will be transmitted in classic or
                                     FD format.
                                     This parameter can be a value of @ref FDCAN_format                */

  uint32_t TxEventFifoControl; /*!< Specifies the event FIFO control.
                                     This parameter can be a value of @ref FDCAN_EFC                   */

  uint32_t MessageMarker; /*!< Specifies the message marker to be copied into Tx Event FIFO
                                     element for identification of Tx message status.
                                     This parameter must be a number between 0 and 0xFF                */

} FDCAN_TxHeaderTypeDef;

/**
  * @brief  FDCAN Rx header structure definition
  */
typedef struct
{
  uint32_t Identifier; /*!< Specifies the identifier.
                                       This parameter must be a number between:
                                        - 0 and 0x7FF, if IdType is FDCAN_STANDARD_ID
                                        - 0 and 0x1FFFFFFF, if IdType is FDCAN_EXTENDED_ID               */

  uint32_t IdType; /*!< Specifies the identifier type of the received message.
                                       This parameter can be a value of @ref FDCAN_id_type               */

  uint32_t RxFrameType; /*!< Specifies the the received message frame type.
                                       This parameter can be a value of @ref FDCAN_frame_type            */

  uint32_t DataLength; /*!< Specifies the received frame length.
                                        This parameter can be a value of @ref FDCAN_data_length_code     */

  uint32_t ErrorStateIndicator; /*!< Specifies the error state indicator.
                                       This parameter can be a value of @ref FDCAN_error_state_indicator */

  uint32_t BitRateSwitch; /*!< Specifies whether the Rx frame is received with or without bit
                                       rate switching.
                                       This parameter can be a value of @ref FDCAN_bit_rate_switching    */

  uint32_t FDFormat; /*!< Specifies whether the Rx frame is received in classic or FD
                                       format.
                                       This parameter can be a value of @ref FDCAN_format                */

  uint32_t RxTimestamp; /*!< Specifies the timestamp counter value captured on start of frame
                                       reception.
                                       This parameter must be a number between 0 and 0xFFFF              */

  uint32_t FilterIndex; /*!< Specifies the index of matching Rx acceptance filter element.
                                       This parameter must be a number between:
                                        - 0 and 127, if IdType is FDCAN_STANDARD_ID
                                        - 0 and 63, if IdType is FDCAN_EXTENDED_ID
                                       When the frame is a Non-Filter matching frame, this parameter
                                       is unused.                                                        */

  uint32_t IsFilterMatchingFrame; /*!< Specifies whether the accepted frame did not match any Rx filter.
                                       Acceptance of non-matching frames may be enabled via
                                       HAL_FDCAN_ConfigGlobalFilter().
                                       This parameter takes 0 if the frame matched an Rx filter or
                                       1 if it did not match any Rx filter                               */

} FDCAN_RxHeaderTypeDef;

/**
  * @brief  FDCAN Tx event FIFO structure definition
  */
typedef struct
{
  uint32_t Identifier; /*!< Specifies the identifier.
                                     This parameter must be a number between:
                                      - 0 and 0x7FF, if IdType is FDCAN_STANDARD_ID
                                      - 0 and 0x1FFFFFFF, if IdType is FDCAN_EXTENDED_ID               */

  uint32_t IdType; /*!< Specifies the identifier type for the transmitted message.
                                     This parameter can be a value of @ref FDCAN_id_type               */

  uint32_t TxFrameType; /*!< Specifies the frame type of the transmitted message.
                                     This parameter can be a value of @ref FDCAN_frame_type            */

  uint32_t DataLength; /*!< Specifies the length of the transmitted frame.
                                     This parameter can be a value of @ref FDCAN_data_length_code      */

  uint32_t ErrorStateIndicator; /*!< Specifies the error state indicator.
                                     This parameter can be a value of @ref FDCAN_error_state_indicator */

  uint32_t BitRateSwitch; /*!< Specifies whether the Tx frame is transmitted with or without bit
                                     rate switching.
                                     This parameter can be a value of @ref FDCAN_bit_rate_switching    */

  uint32_t FDFormat; /*!< Specifies whether the Tx frame is transmitted in classic or FD
                                     format.
                                     This parameter can be a value of @ref FDCAN_format                */

  uint32_t TxTimestamp; /*!< Specifies the timestamp counter value captured on start of frame
                                     transmission.
                                     This parameter must be a number between 0 and 0xFFFF              */

  uint32_t MessageMarker; /*!< Specifies the message marker copied into Tx Event FIFO element
                                     for identification of Tx message status.
                                     This parameter must be a number between 0 and 0xFF                */

  uint32_t EventType; /*!< Specifies the event type.
                                     This parameter can be a value of @ref FDCAN_event_type            */

} FDCAN_TxEventFifoTypeDef;

/**
  * @brief  FDCAN High Priority Message Status structure definition
  */
typedef struct
{
  uint32_t FilterList; /*!< Specifies the filter list of the matching filter element.
                                This parameter can be:
                                 - 0 : Standard Filter List
                                 - 1 : Extended Filter List                                */

  uint32_t FilterIndex; /*!< Specifies the index of matching filter element.
                                This parameter can be a number between:
                                - 0 and 127, if FilterList is 0 (Standard)
                                - 0 and 63, if FilterList is 1 (Extended)                  */

  uint32_t MessageStorage; /*!< Specifies the HP Message Storage.
                                This parameter can be a value of @ref FDCAN_hp_msg_storage */

  uint32_t MessageIndex; /*!< Specifies the Index of Rx FIFO element to which the
                                message was stored.
                                This parameter is valid only when MessageStorage is:
                                  FDCAN_HP_STORAGE_RXFIFO0
                                 or
                                  FDCAN_HP_STORAGE_RXFIFO1                                 */

} FDCAN_HpMsgStatusTypeDef;

/**
  * @brief FDCAN Protocol Status structure definition
  */
typedef struct
{
  uint32_t LastErrorCode; /*!< Specifies the type of the last error that occurred on the FDCAN bus.
                                   This parameter can be a value of @ref FDCAN_protocol_error_code             */

  uint32_t DataLastErrorCode; /*!< Specifies the type of the last error that occurred in the data phase
                                   of a CAN FD format frame with its BRS flag set.
                                   This parameter can be a value of @ref FDCAN_protocol_error_code             */

  uint32_t Activity; /*!< Specifies the FDCAN module communication state.
                                   This parameter can be a value of @ref FDCAN_communication_state             */

  uint32_t ErrorPassive; /*!< Specifies the FDCAN module error status.
                                   This parameter can be:
                                    - 0 : The FDCAN is in Error_Active state
                                    - 1 : The FDCAN is in Error_Passive state                                  */

  uint32_t Warning; /*!< Specifies the FDCAN module warning status.
                                   This parameter can be:
                                    - 0 : error counters (RxErrorCnt and TxErrorCnt) are below the
                                          Error_Warning limit of 96
                                    - 1 : at least one of error counters has reached the Error_Warning
                                          limit of 96                                                          */

  uint32_t BusOff; /*!< Specifies the FDCAN module Bus_Off status.
                                   This parameter can be:
                                    - 0 : The FDCAN is not in Bus_Off state
                                    - 1 : The FDCAN is in Bus_Off state                                        */

  uint32_t RxESIflag; /*!< Specifies ESI flag of last received CAN FD message.
                                   This parameter can be:
                                    - 0 : Last received CAN FD message did not have its ESI flag set
                                    - 1 : Last received CAN FD message had its ESI flag set                    */

  uint32_t RxBRSflag; /*!< Specifies BRS flag of last received CAN FD message.
                                   This parameter can be:
                                    - 0 : Last received CAN FD message did not have its BRS flag set
                                    - 1 : Last received CAN FD message had its BRS flag set                    */

  uint32_t RxFDFflag; /*!< Specifies if CAN FD message (FDF flag set) has been received
                                   since last protocol status.
                                   This parameter can be:
                                    - 0 : No CAN FD message received
                                    - 1 : CAN FD message received                                              */

  uint32_t ProtocolException; /*!< Specifies the FDCAN module Protocol Exception status.
                                   This parameter can be:
                                    - 0 : No protocol exception event occurred since last read access
                                    - 1 : Protocol exception event occurred                                    */

  uint32_t TDCvalue; /*!< Specifies the Transmitter Delay Compensation Value.
                                   This parameter can be a number between 0 and 127                            */

} FDCAN_ProtocolStatusTypeDef;

/**
  * @brief FDCAN Error Counters structure definition
  */
typedef struct
{
  uint32_t TxErrorCnt; /*!< Specifies the Transmit Error Counter Value.
                                This parameter can be a number between 0 and 255                               */

  uint32_t RxErrorCnt; /*!< Specifies the Receive Error Counter Value.
                                This parameter can be a number between 0 and 127                               */

  uint32_t RxErrorPassive; /*!< Specifies the Receive Error Passive status.
                                This parameter can be:
                                 - 0 : The Receive Error Counter (RxErrorCnt) is below the error
                                       passive level of 128
                                 - 1 : The Receive Error Counter (RxErrorCnt) has reached the error
                                       passive level of 128                                                    */

  uint32_t ErrorLogging; /*!< Specifies the Transmit/Receive error logging counter value.
                                This parameter can be a number between 0 and 255.
                                This counter is incremented each time when a FDCAN protocol error causes
                                the TxErrorCnt or the RxErrorCnt to be incremented. The counter stops at 255;
                                the next increment of TxErrorCnt or RxErrorCnt sets interrupt flag
                                FDCAN_FLAG_ERROR_LOGGING_OVERFLOW                                              */

} FDCAN_ErrorCountersTypeDef;

/**
  * @brief FDCAN TT Init structure definition
  */
typedef struct
{
  uint32_t OperationMode; /*!< Specifies the FDCAN Operation Mode.
                                   This parameter can be a value of @ref FDCAN_operation_mode               */

  uint32_t GapEnable; /*!< Specifies the FDCAN TT Operation.
                                   This parameter can be a value of @ref FDCAN_TT_operation.
                                   This parameter is ignored if OperationMode is set to
                                   FDCAN_TT_COMMUNICATION_LEVEL0                                            */

  uint32_t TimeMaster; /*!< Specifies whether the instance is a slave or a potential master.
                                   This parameter can be a value of @ref FDCAN_TT_time_master               */

  uint32_t SyncDevLimit; /*!< Specifies the Synchronization Deviation Limit SDL of the TUR
                                   numerator : TUR = (Numerator +/- SDL) / Denominator.
                                   With : SDL = 2^(SyncDevLimit+5).
                                   This parameter must be a number between 0 and 7                          */

  uint32_t InitRefTrigOffset; /*!< Specifies the Initial Reference Trigger Offset.
                                   This parameter must be a number between 0 and 127                        */

  uint32_t ExternalClkSync; /*!< Enable or disable External Clock Synchronization.
                                   This parameter can be a value of @ref FDCAN_TT_external_clk_sync.
                                   This parameter is ignored if OperationMode is set to
                                   FDCAN_TT_COMMUNICATION_LEVEL1                                            */

  uint32_t AppWdgLimit; /*!< Specifies the Application Watchdog Limit : maximum time after
                                   which the application has to serve the application watchdog.
                                   The application watchdog is incremented once each 256 NTUs.
                                   The application watchdog can be disabled by setting AppWdgLimit to 0.
                                   This parameter must be a number between 0 and 255.
                                   This parameter is ignored if OperationMode is set to
                                   FDCAN_TT_COMMUNICATION_LEVEL0                                            */

  uint32_t GlobalTimeFilter; /*!< Enable or disable Global Time Filtering.
                                   This parameter can be a value of @ref FDCAN_TT_global_time_filtering.
                                   This parameter is ignored if OperationMode is set to
                                   FDCAN_TT_COMMUNICATION_LEVEL1                                            */

  uint32_t ClockCalibration; /*!< Enable or disable Automatic Clock Calibration.
                                   This parameter can be a value of @ref FDCAN_TT_auto_clk_calibration.
                                   This parameter is ignored if OperationMode is set to
                                   FDCAN_TT_COMMUNICATION_LEVEL1                                            */

  uint32_t EvtTrigPolarity; /*!< Specifies the Event Trigger Polarity.
                                   This parameter can be a value of @ref FDCAN_TT_event_trig_polarity.
                                   This parameter is ignored if OperationMode is set to
                                   FDCAN_TT_COMMUNICATION_LEVEL0                                            */

  uint32_t BasicCyclesNbr; /*!< Specifies the number of basic cycles in the system matrix.
                                   This parameter can be a value of @ref FDCAN_TT_basic_cycle_number        */

  uint32_t CycleStartSync; /*!< Enable or disable synchronization pulse output at pin fdcan1_soc.
                                   This parameter can be a value of @ref FDCAN_TT_cycle_start_sync          */

  uint32_t TxEnableWindow; /*!< Specifies the length of Tx enable window in NTUs.
                                   This parameter must be a number between 1 and 16                         */

  uint32_t ExpTxTrigNbr; /*!< Specifies the number of expected Tx_Triggers in the system matrix.
                                   This is the sum of Tx_Triggers for exclusive, single arbitrating and
                                   merged arbitrating windows.
                                   This parameter must be a number between 0 and 4095                       */

  uint32_t TURNumerator; /*!< Specifies the TUR (Time Unit Ratio) numerator.
                                   It is advised to set this parameter to the largest applicable value.
                                   This parameter must be a number between 0x10000 and 0x1FFFF              */

  uint32_t TURDenominator; /*!< Specifies the TUR (Time Unit Ratio) denominator.
                                   This parameter must be a number between 0x0001 and 0x3FFF                */

  uint32_t TriggerMemoryNbr; /*!< Specifies the number of trigger memory elements.
                                   This parameter must be a number between 0 and 64                         */

  uint32_t StopWatchTrigSel; /*!< Specifies the input to be used as stop watch trigger.
                                   This parameter can be a value of @ref FDCAN_TT_stop_watch_trig_selection */

  uint32_t EventTrigSel; /*!< Specifies the input to be used as event trigger.
                                   This parameter can be a value of @ref FDCAN_TT_event_trig_selection      */

} FDCAN_TT_ConfigTypeDef;

/**
  * @brief  FDCAN Trigger structure definition
  */
typedef struct
{
  uint32_t TriggerIndex; /*!< Specifies the trigger which will be configured.
                               This parameter must be a number between 0 and 63                                 */

  uint32_t TimeMark; /*!< Specifies the cycle time for which the trigger becomes active.
                               This parameter must be a number between 0 and 0xFFFF                             */

  uint32_t RepeatFactor; /*!< Specifies the trigger repeat factor.
                               This parameter can be a value of @ref FDCAN_TT_Repeat_Factor                     */

  uint32_t StartCycle; /*!< Specifies the index of the first cycle in which the trigger becomes active.
                               This parameter is ignored if RepeatFactor is set to FDCAN_TT_REPEAT_EVERY_CYCLE.
                               This parameter must be a number between 0 and RepeatFactor                       */

  uint32_t TmEventInt; /*!< Enable or disable the internal time mark event.
                               If enabled, FDCAN_TT_FLAG_TRIG_TIME_MARK flag is set when trigger memory element
                               becomes active.
                               This parameter can be a value of @ref FDCAN_TT_Time_Mark_Event_Internal          */

  uint32_t TmEventExt; /*!< Enable or disable the external time mark event.
                               If enabled, and if TTOCN.TTIE is set, a pulse is generated at fdcan1_tmp when
                               trigger memory element becomes active.
                               This parameter can be a value of @ref FDCAN_TT_Time_Mark_Event_External          */

  uint32_t TriggerType; /*!< Specifies the trigger type.
                               This parameter can be a value of @ref FDCAN_TT_Trigger_Type                      */

  uint32_t FilterType; /*!< Specifies the filter identifier type.
                               This parameter can be a value of @ref FDCAN_id_type                              */

  uint32_t TxBufferIndex; /*!< Specifies the index of the Tx buffer for which the trigger is valid.
                               This parameter can be a value of @ref FDCAN_Tx_location.
                               This parameter is taken in consideration only if the trigger is configured for
                               transmission.                                                                    */

  uint32_t FilterIndex; /*!< Specifies the filter for which the trigger is valid.
                               This parameter is taken in consideration only if the trigger is configured for
                               reception.
                               This parameter must be a number between:
                                - 0 and 127, if FilterType is FDCAN_STANDARD_ID
                                - 0 and 63, if FilterType is FDCAN_EXTENDED_ID                                  */

} FDCAN_TriggerTypeDef;

/**
  * @brief  FDCAN TT Operation Status structure definition
  */
typedef struct
{
  uint32_t ErrorLevel; /*!< Specifies the type of the TT operation error level.
                                  This parameter can be a value of @ref FDCAN_TT_error_level                    */

  uint32_t MasterState; /*!< Specifies the type of the TT master state.
                                  This parameter can be a value of @ref FDCAN_TT_master_state                   */

  uint32_t SyncState; /*!< Specifies the type of the TT synchronization state.
                                  This parameter can be a value of @ref FDCAN_TT_sync_state                     */

  uint32_t GTimeQuality; /*!< Specifies the Quality of Global Time Phase.
                                  This parameter is only relevant in Level 0 and Level 2, otherwise fixed to 0.
                                  This parameter can be:
                                   - 0 : Global time not valid
                                   - 1 : Global time in phase with Time Master                                  */

  uint32_t ClockQuality; /*!< Specifies the Quality of Clock Speed.
                                  This parameter is only relevant in Level 0 and Level 2, otherwise fixed to 1.
                                  This parameter can be:
                                   - 0 : Local clock speed not synchronized to Time Master clock speed
                                   - 1 : Synchronization Deviation = SDL                                        */

  uint32_t RefTrigOffset; /*!< Specifies the Actual Reference Trigger Offset Value.
                                  This parameter can be a number between 0 and 0xFF                             */

  uint32_t GTimeDiscPending; /*!< Specifies the Global Time Discontinuity State.
                                  This parameter can be:
                                   - 0 : No global time preset pending
                                   - 1 : Node waits for the global time preset to take effect                   */

  uint32_t GapFinished; /*!< Specifies whether a Gap is finished.
                                  This parameter can be:
                                   - 0 : Reset at the end of each reference message
                                   - 1 : Gap finished                                                           */

  uint32_t MasterPriority; /*!< Specifies the Priority of actual Time Master.
                                  This parameter can be a number between 0 and 0x7                              */

  uint32_t GapStarted; /*!< Specifies whether a Gap is started.
                                  This parameter can be:
                                   - 0 : No Gap in schedule
                                   - 1 : Gap time after Basic Cycle has started                                 */

  uint32_t WaitForEvt; /*!< Specifies whether a Gap is announced.
                                  This parameter can be:
                                   - 0 : No Gap announced, reset by a reference message with Next_is_Gap = 0
                                   - 1 : Reference message with Next_is_Gap = 1 received                        */

  uint32_t AppWdgEvt; /*!< Specifies the Application Watchdog State.
                                  This parameter can be:
                                   - 0 : Application Watchdog served in time
                                   - 1 : Failed to serve Application Watchdog in time                           */

  uint32_t ECSPending; /*!< Specifies the External Clock Synchronization State.
                                  This parameter can be:
                                   - 0 : No external clock synchronization pending
                                   - 1 : Node waits for external clock synchronization to take effect           */

  uint32_t PhaseLock; /*!< Specifies the Phase Lock State.
                                  This parameter can be:
                                   - 0 : Phase outside range
                                   - 1 : Phase inside range                                                     */

} FDCAN_TTOperationStatusTypeDef;

/**
  * @brief  FDCAN Message RAM blocks
  */
typedef struct
{
  uint32_t StandardFilterSA; /*!< Specifies the Standard Filter List Start Address.
                                  This parameter must be a 32-bit word address      */

  uint32_t ExtendedFilterSA; /*!< Specifies the Extended Filter List Start Address.
                                  This parameter must be a 32-bit word address      */

  uint32_t RxFIFO0SA; /*!< Specifies the Rx FIFO 0 Start Address.
                                  This parameter must be a 32-bit word address      */

  uint32_t RxFIFO1SA; /*!< Specifies the Rx FIFO 1 Start Address.
                                  This parameter must be a 32-bit word address      */

  uint32_t RxBufferSA; /*!< Specifies the Rx Buffer Start Address.
                                  This parameter must be a 32-bit word address      */

  uint32_t TxEventFIFOSA; /*!< Specifies the Tx Event FIFO Start Address.
                                  This parameter must be a 32-bit word address      */

  uint32_t TxBufferSA; /*!< Specifies the Tx Buffers Start Address.
                                  This parameter must be a 32-bit word address      */

  uint32_t TxFIFOQSA; /*!< Specifies the Tx FIFO/Queue Start Address.
                                  This parameter must be a 32-bit word address      */

  uint32_t TTMemorySA; /*!< Specifies the Trigger Memory Start Address.
                                  This parameter must be a 32-bit word address      */

  uint32_t EndAddress; /*!< Specifies the End Address of the allocated RAM.
                                  This parameter must be a 32-bit word address      */

} FDCAN_MsgRamAddressTypeDef;

/**
  * @brief  FDCAN handle structure definition
  */



typedef struct

{
  FDCAN_GlobalTypeDef *Instance;

  TTCAN_TypeDef *ttcan;

  FDCAN_InitTypeDef Init;

  FDCAN_MsgRamAddressTypeDef msgRam;

  uint32_t LatestTxFifoQRequest; /*!< FDCAN Tx buffer index
                                               of latest Tx FIFO/Queue request */

  volatile HAL_FDCAN_StateTypeDef State;

  HAL_LockTypeDef Lock;

  volatile uint32_t ErrorCode;
# 760 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
} FDCAN_HandleTypeDef;
# 797 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup FDCAN_Exported_Constants FDCAN Exported Constants
  * @{
  */

/** @defgroup HAL_FDCAN_Error_Code HAL FDCAN Error Code
  * @{
  */
# 838 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_frame_format FDCAN Frame Format
  * @{
  */



/**
  * @}
  */

/** @defgroup FDCAN_operating_mode FDCAN Operating Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup FDCAN_clock_calibration FDCAN Clock Calibration
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_clock_divider FDCAN Clock Divider
  * @{
  */
# 892 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_calibration_field_length FDCAN Calibration Field Length
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_calibration_state FDCAN Calibration State
  * @{
  */



/**
  * @}
  */

/** @defgroup FDCAN_calibration_counter FDCAN Calibration Counter
  * @{
  */



/**
  * @}
  */

/** @defgroup FDCAN_data_field_size FDCAN Data Field Size
  * @{
  */
# 936 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_txFifoQueue_Mode FDCAN Tx FIFO/Queue Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_id_type FDCAN ID Type
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_frame_type FDCAN Frame Type
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_data_length_code FDCAN Data Length Code
  * @{
  */
# 986 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_error_state_indicator FDCAN Error State Indicator
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_bit_rate_switching FDCAN Bit Rate Switching
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_format FDCAN format
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_EFC FDCAN Event FIFO control
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_filter_type FDCAN Filter Type
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_filter_config FDCAN Filter Configuration
  * @{
  */
# 1048 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_Tx_location FDCAN Tx Location
  * @{
  */
# 1087 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_Rx_location FDCAN Rx Location
  * @{
  */
# 1160 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_event_type FDCAN Event Type
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_hp_msg_storage FDCAN High Priority Message Storage
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_protocol_error_code FDCAN protocol error code
  * @{
  */
# 1195 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_communication_state FDCAN communication state
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_FIFO_watermark FDCAN FIFO watermark
  * @{
  */



/**
  * @}
  */

/** @defgroup FDCAN_Rx_FIFO_operation_mode FDCAN FIFO operation mode
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_Non_Matching_Frames FDCAN non-matching frames
  * @{
  */



/**
  * @}
  */

/** @defgroup FDCAN_Reject_Remote_Frames FDCAN reject remote frames
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_Interrupt_Line FDCAN interrupt line
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_Timestamp FDCAN timestamp
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_Timestamp_Prescaler FDCAN timestamp prescaler
  * @{
  */
# 1285 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_Timeout_Operation FDCAN timeout operation
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_TT_Reference_Message_Payload FDCAN TT reference message payload
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TT_Repeat_Factor FDCAN TT repeat factor
  * @{
  */







/**
  * @}
  */

/** @defgroup FDCAN_TT_Trigger_Type FDCAN TT trigger type
  * @{
  */
# 1337 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_TT_Time_Mark_Event_Internal FDCAN TT time mark event internal
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TT_Time_Mark_Event_External FDCAN TT time mark event external
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_operation_mode FDCAN Operation Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup FDCAN_TT_operation FDCAN TT Operation
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TT_time_master FDCAN TT Time Master
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TT_external_clk_sync FDCAN TT External Clock Synchronization
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TT_global_time_filtering FDCAN TT Global Time Filtering
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TT_auto_clk_calibration FDCAN TT Automatic Clock Calibration
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TT_event_trig_polarity FDCAN TT Event Trigger Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TT_basic_cycle_number FDCAN TT Basic Cycle Number
  * @{
  */







/**
  * @}
  */

/** @defgroup FDCAN_TT_cycle_start_sync FDCAN TT Cycle Start Sync
  * @{
  */



/**
  * @}
  */

/** @defgroup FDCAN_TT_stop_watch_trig_selection FDCAN TT Stop Watch Trigger Selection
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_TT_event_trig_selection FDCAN TT Event Trigger Selection
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_TT_stop_watch_source FDCAN TT Stop Watch Source
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_TT_stop_watch_polarity FDCAN TT Stop Watch Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TT_time_mark_source FDCAN TT Time Mark Source
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_TT_error_level FDCAN TT Error Level
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_TT_master_state FDCAN TT Master State
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_TT_sync_state FDCAN TT Synchronization State
  * @{
  */




/**
  * @}
  */

/** @defgroup Interrupt_Masks Interrupt masks
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_flags FDCAN Flags
  * @{
  */
# 1575 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_Interrupts FDCAN Interrupts
  * @{
  */

/** @defgroup FDCAN_Tx_Interrupts FDCAN Tx Interrupts
  * @{
  */



/**
  * @}
  */

/** @defgroup FDCAN_Rx_Interrupts FDCAN Rx Interrupts
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_Counter_Interrupts FDCAN Counter Interrupts
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_Clock_Calibration_Interrupts Clock Calibration Interrupts
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_Tx_Event_Fifo_Interrupts FDCAN Tx Event FIFO Interrupts
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_Rx_Fifo0_Interrupts FDCAN Rx FIFO 0 Interrupts
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_Rx_Fifo1_Interrupts FDCAN Rx FIFO 1 Interrupts
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_Error_Interrupts FDCAN Error Interrupts
  * @{
  */






/**
  * @}
  */

/** @defgroup FDCAN_Error_Status_Interrupts FDCAN Error Status Interrupts
  * @{
  */



/**
  * @}
  */

/**
  * @}
  */

/** @defgroup FDCAN_TTflags FDCAN TT Flags
  * @{
  */
# 1702 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @defgroup FDCAN_TTInterrupts FDCAN TT Interrupts
  * @{
  */

/** @defgroup FDCAN_TTScheduleSynchronization_Interrupts FDCAN TT Schedule Synchronization Interrupts
  * @{
  */




/**
  * @}
  */

/** @defgroup FDCAN_TTTimeMark_Interrupts FDCAN TT Time Mark Interrupts
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TTStopWatch_Interrupt FDCAN TT Stop Watch Interrupt
  * @{
  */

/**
  * @}
  */

/** @defgroup FDCAN_TTGlobalTime_Interrupts FDCAN TT Global Time Interrupts
  * @{
  */


/**
  * @}
  */

/** @defgroup FDCAN_TTDisturbingError_Interrupts FDCAN TT Disturbing Error Interrupts
  * @{
  */






/**
  * @}
  */

/** @defgroup FDCAN_TTFatalError_Interrupts FDCAN TT Fatal Error Interrupts
  * @{
  */




/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup FDCAN_Exported_Macros FDCAN Exported Macros
  * @{
  */

/** @brief  Reset FDCAN handle state.
  * @param  __HANDLE__ FDCAN handle.
  * @retval None
  */
# 1798 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @brief  Enable the specified FDCAN interrupts.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ FDCAN interrupt.
  *         This parameter can be any combination of @arg FDCAN_Interrupts
  * @retval None
  */







/**
  * @brief  Disable the specified FDCAN interrupts.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ FDCAN interrupt.
  *         This parameter can be any combination of @arg FDCAN_Interrupts
  * @retval None
  */






/**
  * @brief  Check whether the specified FDCAN interrupt is set or not.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ FDCAN interrupt.
  *         This parameter can be one of @arg FDCAN_Interrupts
  * @retval ITStatus
  */




/**
  * @brief  Clear the specified FDCAN interrupts.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ specifies the interrupts to clear.
  *         This parameter can be any combination of @arg FDCAN_Interrupts
  * @retval None
  */






/**
  * @brief  Check whether the specified FDCAN flag is set or not.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __FLAG__ FDCAN flag.
  *         This parameter can be one of @arg FDCAN_flags
  * @retval FlagStatus
  */




/**
  * @brief  Clear the specified FDCAN flags.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __FLAG__ specifies the flags to clear.
  *         This parameter can be any combination of @arg FDCAN_flags
  * @retval None
  */






/** @brief  Check if the specified FDCAN interrupt source is enabled or disabled.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ specifies the FDCAN interrupt source to check.
  *         This parameter can be a value of @arg FDCAN_Interrupts
  * @retval ITStatus
  */





/**
  * @brief  Enable the specified FDCAN TT interrupts.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ FDCAN TT interrupt.
  *         This parameter can be any combination of @arg FDCAN_TTInterrupts
  * @retval None
  */


/**
  * @brief  Disable the specified FDCAN TT interrupts.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ FDCAN TT interrupt.
  *         This parameter can be any combination of @arg FDCAN_TTInterrupts
  * @retval None
  */


/**
  * @brief  Check whether the specified FDCAN TT interrupt is set or not.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ FDCAN TT interrupt.
  *         This parameter can be one of @arg FDCAN_TTInterrupts
  * @retval ITStatus
  */


/**
  * @brief  Clear the specified FDCAN TT interrupts.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ specifies the TT interrupts to clear.
  *         This parameter can be any combination of @arg FDCAN_TTInterrupts
  * @retval None
  */


/**
  * @brief  Check whether the specified FDCAN TT flag is set or not.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __FLAG__ FDCAN TT flag.
  *         This parameter can be one of @arg FDCAN_TTflags
  * @retval FlagStatus
  */


/**
  * @brief  Clear the specified FDCAN TT flags.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __FLAG__ specifies the TT flags to clear.
  *         This parameter can be any combination of @arg FDCAN_TTflags
  * @retval None
  */


/** @brief  Check if the specified FDCAN TT interrupt source is enabled or disabled.
  * @param  __HANDLE__ FDCAN handle.
  * @param  __INTERRUPT__ specifies the FDCAN TT interrupt source to check.
  *         This parameter can be a value of @arg FDCAN_TTInterrupts
  * @retval ITStatus
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup FDCAN_Exported_Functions
  * @{
  */

/** @addtogroup FDCAN_Exported_Functions_Group1
  * @{
  */
/* Initialization and de-initialization functions *****************************/
HAL_StatusTypeDef HAL_FDCAN_Init(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_DeInit(FDCAN_HandleTypeDef *hfdcan);
void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef *hfdcan);
void HAL_FDCAN_MspDeInit(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_EnterPowerDownMode(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_ExitPowerDownMode(FDCAN_HandleTypeDef *hfdcan);
# 2005 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/** @addtogroup FDCAN_Exported_Functions_Group2
  * @{
  */
/* Configuration functions ****************************************************/
HAL_StatusTypeDef HAL_FDCAN_ConfigClockCalibration(FDCAN_HandleTypeDef *hfdcan,
                                                   const FDCAN_ClkCalUnitTypeDef *sCcuConfig);
uint32_t HAL_FDCAN_GetClockCalibrationState(const FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_ResetClockCalibrationState(FDCAN_HandleTypeDef *hfdcan);
uint32_t HAL_FDCAN_GetClockCalibrationCounter(const FDCAN_HandleTypeDef *hfdcan, uint32_t Counter);
HAL_StatusTypeDef HAL_FDCAN_ConfigFilter(FDCAN_HandleTypeDef *hfdcan, const FDCAN_FilterTypeDef *sFilterConfig);
HAL_StatusTypeDef HAL_FDCAN_ConfigGlobalFilter(FDCAN_HandleTypeDef *hfdcan, uint32_t NonMatchingStd,
                                               uint32_t NonMatchingExt, uint32_t RejectRemoteStd,
                                               uint32_t RejectRemoteExt);
HAL_StatusTypeDef HAL_FDCAN_ConfigExtendedIdMask(FDCAN_HandleTypeDef *hfdcan, uint32_t Mask);
HAL_StatusTypeDef HAL_FDCAN_ConfigRxFifoOverwrite(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo, uint32_t OperationMode);
HAL_StatusTypeDef HAL_FDCAN_ConfigFifoWatermark(FDCAN_HandleTypeDef *hfdcan, uint32_t FIFO, uint32_t Watermark);
HAL_StatusTypeDef HAL_FDCAN_ConfigRamWatchdog(FDCAN_HandleTypeDef *hfdcan, uint32_t CounterStartValue);
HAL_StatusTypeDef HAL_FDCAN_ConfigTimestampCounter(FDCAN_HandleTypeDef *hfdcan, uint32_t TimestampPrescaler);
HAL_StatusTypeDef HAL_FDCAN_EnableTimestampCounter(FDCAN_HandleTypeDef *hfdcan, uint32_t TimestampOperation);
HAL_StatusTypeDef HAL_FDCAN_DisableTimestampCounter(FDCAN_HandleTypeDef *hfdcan);
uint16_t HAL_FDCAN_GetTimestampCounter(const FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_ResetTimestampCounter(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_ConfigTimeoutCounter(FDCAN_HandleTypeDef *hfdcan, uint32_t TimeoutOperation,
                                                 uint32_t TimeoutPeriod);
HAL_StatusTypeDef HAL_FDCAN_EnableTimeoutCounter(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_DisableTimeoutCounter(FDCAN_HandleTypeDef *hfdcan);
uint16_t HAL_FDCAN_GetTimeoutCounter(const FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_ResetTimeoutCounter(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_ConfigTxDelayCompensation(FDCAN_HandleTypeDef *hfdcan, uint32_t TdcOffset,
                                                      uint32_t TdcFilter);
HAL_StatusTypeDef HAL_FDCAN_EnableTxDelayCompensation(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_DisableTxDelayCompensation(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_EnableISOMode(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_DisableISOMode(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_EnableEdgeFiltering(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_DisableEdgeFiltering(FDCAN_HandleTypeDef *hfdcan);
/**
  * @}
  */

/** @addtogroup FDCAN_Exported_Functions_Group3
  * @{
  */
/* Control functions **********************************************************/
HAL_StatusTypeDef HAL_FDCAN_Start(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_Stop(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_AddMessageToTxFifoQ(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TxHeaderTypeDef *pTxHeader,
                                                const uint8_t *pTxData);
HAL_StatusTypeDef HAL_FDCAN_AddMessageToTxBuffer(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TxHeaderTypeDef *pTxHeader,
                                                 const uint8_t *pTxData, uint32_t BufferIndex);
HAL_StatusTypeDef HAL_FDCAN_EnableTxBufferRequest(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndex);
uint32_t HAL_FDCAN_GetLatestTxFifoQRequestBuffer(const FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_AbortTxRequest(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndex);
HAL_StatusTypeDef HAL_FDCAN_GetRxMessage(FDCAN_HandleTypeDef *hfdcan, uint32_t RxLocation,
                                         FDCAN_RxHeaderTypeDef *pRxHeader, uint8_t *pRxData);
HAL_StatusTypeDef HAL_FDCAN_GetTxEvent(FDCAN_HandleTypeDef *hfdcan, FDCAN_TxEventFifoTypeDef *pTxEvent);
HAL_StatusTypeDef HAL_FDCAN_GetHighPriorityMessageStatus(const FDCAN_HandleTypeDef *hfdcan,
                                                         FDCAN_HpMsgStatusTypeDef *HpMsgStatus);
HAL_StatusTypeDef HAL_FDCAN_GetProtocolStatus(const FDCAN_HandleTypeDef *hfdcan,
                                              FDCAN_ProtocolStatusTypeDef *ProtocolStatus);
HAL_StatusTypeDef HAL_FDCAN_GetErrorCounters(const FDCAN_HandleTypeDef *hfdcan,
                                             FDCAN_ErrorCountersTypeDef *ErrorCounters);
uint32_t HAL_FDCAN_IsRxBufferMessageAvailable(FDCAN_HandleTypeDef *hfdcan, uint32_t RxBufferIndex);
uint32_t HAL_FDCAN_IsTxBufferMessagePending(const FDCAN_HandleTypeDef *hfdcan, uint32_t TxBufferIndex);
uint32_t HAL_FDCAN_GetRxFifoFillLevel(const FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo);
uint32_t HAL_FDCAN_GetTxFifoFreeLevel(const FDCAN_HandleTypeDef *hfdcan);
uint32_t HAL_FDCAN_IsRestrictedOperationMode(const FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_ExitRestrictedOperationMode(FDCAN_HandleTypeDef *hfdcan);
/**
  * @}
  */

/** @addtogroup FDCAN_Exported_Functions_Group4
  * @{
  */
/* TT Configuration and control functions**************************************/
HAL_StatusTypeDef HAL_FDCAN_TT_ConfigOperation(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TT_ConfigTypeDef *pTTParams);
HAL_StatusTypeDef HAL_FDCAN_TT_ConfigReferenceMessage(FDCAN_HandleTypeDef *hfdcan, uint32_t IdType, uint32_t Identifier,
                                                      uint32_t Payload);
HAL_StatusTypeDef HAL_FDCAN_TT_ConfigTrigger(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TriggerTypeDef *sTriggerConfig);
HAL_StatusTypeDef HAL_FDCAN_TT_SetGlobalTime(FDCAN_HandleTypeDef *hfdcan, uint32_t TimePreset);
HAL_StatusTypeDef HAL_FDCAN_TT_SetClockSynchronization(FDCAN_HandleTypeDef *hfdcan, uint32_t NewTURNumerator);
HAL_StatusTypeDef HAL_FDCAN_TT_ConfigStopWatch(FDCAN_HandleTypeDef *hfdcan, uint32_t Source, uint32_t Polarity);
HAL_StatusTypeDef HAL_FDCAN_TT_ConfigRegisterTimeMark(FDCAN_HandleTypeDef *hfdcan, uint32_t TimeMarkSource,
                                                      uint32_t TimeMarkValue, uint32_t RepeatFactor,
                                                      uint32_t StartCycle);
HAL_StatusTypeDef HAL_FDCAN_TT_EnableRegisterTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_DisableRegisterTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_EnableTriggerTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_DisableTriggerTimeMarkPulse(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_EnableHardwareGapControl(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_DisableHardwareGapControl(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_EnableTimeMarkGapControl(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_DisableTimeMarkGapControl(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_SetNextIsGap(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_SetEndOfGap(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_ConfigExternalSyncPhase(FDCAN_HandleTypeDef *hfdcan, uint32_t TargetPhase);
HAL_StatusTypeDef HAL_FDCAN_TT_EnableExternalSynchronization(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_DisableExternalSynchronization(FDCAN_HandleTypeDef *hfdcan);
HAL_StatusTypeDef HAL_FDCAN_TT_GetOperationStatus(const FDCAN_HandleTypeDef *hfdcan,
                                                  FDCAN_TTOperationStatusTypeDef *TTOpStatus);
/**
  * @}
  */

/** @addtogroup FDCAN_Exported_Functions_Group5
  * @{
  */
/* Interrupts management ******************************************************/
HAL_StatusTypeDef HAL_FDCAN_ConfigInterruptLines(FDCAN_HandleTypeDef *hfdcan, uint32_t ITList, uint32_t InterruptLine);
HAL_StatusTypeDef HAL_FDCAN_TT_ConfigInterruptLines(FDCAN_HandleTypeDef *hfdcan, uint32_t TTITList,
                                                    uint32_t InterruptLine);
HAL_StatusTypeDef HAL_FDCAN_ActivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t ActiveITs,
                                                 uint32_t BufferIndexes);
HAL_StatusTypeDef HAL_FDCAN_DeactivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t InactiveITs);
HAL_StatusTypeDef HAL_FDCAN_TT_ActivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t ActiveTTITs);
HAL_StatusTypeDef HAL_FDCAN_TT_DeactivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t InactiveTTITs);
void HAL_FDCAN_IRQHandler(FDCAN_HandleTypeDef *hfdcan);
/**
  * @}
  */

/** @addtogroup FDCAN_Exported_Functions_Group6
  * @{
  */
/* Callback functions *********************************************************/
void HAL_FDCAN_ClockCalibrationCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t ClkCalibrationITs);
void HAL_FDCAN_TxEventFifoCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TxEventFifoITs);
void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs);
void HAL_FDCAN_RxFifo1Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo1ITs);
void HAL_FDCAN_TxFifoEmptyCallback(FDCAN_HandleTypeDef *hfdcan);
void HAL_FDCAN_TxBufferCompleteCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
void HAL_FDCAN_TxBufferAbortCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t BufferIndexes);
void HAL_FDCAN_RxBufferNewMessageCallback(FDCAN_HandleTypeDef *hfdcan);
void HAL_FDCAN_HighPriorityMessageCallback(FDCAN_HandleTypeDef *hfdcan);
void HAL_FDCAN_TimestampWraparoundCallback(FDCAN_HandleTypeDef *hfdcan);
void HAL_FDCAN_TimeoutOccurredCallback(FDCAN_HandleTypeDef *hfdcan);
void HAL_FDCAN_ErrorCallback(FDCAN_HandleTypeDef *hfdcan);
void HAL_FDCAN_ErrorStatusCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t ErrorStatusITs);
void HAL_FDCAN_TT_ScheduleSyncCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TTSchedSyncITs);
void HAL_FDCAN_TT_TimeMarkCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TTTimeMarkITs);
void HAL_FDCAN_TT_StopWatchCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t SWTime, uint32_t SWCycleCount);
void HAL_FDCAN_TT_GlobalTimeCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t TTGlobTimeITs);
/**
  * @}
  */

/** @addtogroup FDCAN_Exported_Functions_Group7
  * @{
  */
/* Peripheral State functions *************************************************/
uint32_t HAL_FDCAN_GetError(const FDCAN_HandleTypeDef *hfdcan);
HAL_FDCAN_StateTypeDef HAL_FDCAN_GetState(const FDCAN_HandleTypeDef *hfdcan);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup FDCAN_Private_Types FDCAN Private Types
  * @{
  */

/**
  * @}
  */

/* Private variables ---------------------------------------------------------*/
/** @defgroup FDCAN_Private_Variables FDCAN Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup FDCAN_Private_Constants FDCAN Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup FDCAN_Private_Macros FDCAN Private Macros
  * @{
  */
# 2428 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fdcan.h"
/**
  * @}
  */

/* Private functions prototypes ----------------------------------------------*/
/** @defgroup FDCAN_Private_Functions_Prototypes FDCAN Private Functions Prototypes
  * @{
  */

/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup FDCAN_Private_Functions FDCAN Private Functions
  * @{
  */

/**
  * @}
  */
/**
  * @}
  */

/**
  * @}
  */



}
# 311 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_cec.h
  * @author  MCD Application Team
  * @brief   Header file of CEC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h" 2



/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup CEC
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup CEC_Exported_Types CEC Exported Types
  * @{
  */

/**
  * @brief CEC Init Structure definition
  */
typedef struct
{
  uint32_t SignalFreeTime; /*!< Set SFT field, specifies the Signal Free Time.
                                              It can be one of CEC_Signal_Free_Time
                                              and belongs to the set {0,...,7} where
                                              0x0 is the default configuration
                                              else means 0.5 + (SignalFreeTime - 1) nominal data bit periods */

  uint32_t Tolerance; /*!< Set RXTOL bit, specifies the tolerance accepted on the received waveforms,
                                              it can be a value of CEC_Tolerance :
                                              it is either CEC_STANDARD_TOLERANCE or CEC_EXTENDED_TOLERANCE */

  uint32_t BRERxStop; /*!< Set BRESTP bit CEC_BRERxStop : specifies whether or not a Bit Rising
                                              Error stops the reception.
                                              CEC_NO_RX_STOP_ON_BRE: reception is not stopped.
                                              CEC_RX_STOP_ON_BRE:    reception is stopped. */

  uint32_t BREErrorBitGen; /*!< Set BREGEN bit CEC_BREErrorBitGen : specifies whether or not an
                                              Error-Bit is generated on the
                                              CEC line upon Bit Rising Error detection.
                                              CEC_BRE_ERRORBIT_NO_GENERATION: no error-bit generation.
                                              CEC_BRE_ERRORBIT_GENERATION:    error-bit generation if BRESTP is set. */

  uint32_t LBPEErrorBitGen; /*!< Set LBPEGEN bit CEC_LBPEErrorBitGen : specifies whether or not an
                                              Error-Bit is generated on the
                                              CEC line upon Long Bit Period Error detection.
                                              CEC_LBPE_ERRORBIT_NO_GENERATION:  no error-bit generation.
                                              CEC_LBPE_ERRORBIT_GENERATION:     error-bit generation. */

  uint32_t BroadcastMsgNoErrorBitGen; /*!< Set BRDNOGEN bit CEC_BroadCastMsgErrorBitGen : allows to avoid an
                                              Error-Bit generation on the CEC line
                                              upon an error detected on a broadcast message.

                                              It supersedes BREGEN and LBPEGEN bits for a broadcast message error
                                              handling. It can take two values:

                                              1) CEC_BROADCASTERROR_ERRORBIT_GENERATION.
                                                 a) BRE detection: error-bit generation on the CEC line if
                                                    BRESTP=CEC_RX_STOP_ON_BRE and BREGEN=CEC_BRE_ERRORBIT_NO_GENERATION.
                                                 b) LBPE detection: error-bit generation on the CEC line
                                                    if LBPGEN=CEC_LBPE_ERRORBIT_NO_GENERATION.

                                              2) CEC_BROADCASTERROR_NO_ERRORBIT_GENERATION.
                                                 no error-bit generation in case neither a) nor b) are satisfied.
                                                 Additionally, there is no error-bit generation in case of Short Bit
                                                 Period Error detection in a broadcast message while LSTN bit is set. */

  uint32_t SignalFreeTimeOption; /*!< Set SFTOP bit CEC_SFT_Option : specifies when SFT timer starts.
                                              CEC_SFT_START_ON_TXSOM SFT:    timer starts when TXSOM is set by software.
                                              CEC_SFT_START_ON_TX_RX_END:  SFT timer starts automatically at the end
                                              of message transmission/reception. */

  uint32_t ListenMode; /*!< Set LSTN bit CEC_Listening_Mode : specifies device listening mode.
                                              It can take two values:

                                              CEC_REDUCED_LISTENING_MODE: CEC peripheral receives only message addressed
                                                to its own address (OAR). Messages addressed to different destination
                                                are ignored.
                                                Broadcast messages are always received.

                                              CEC_FULL_LISTENING_MODE: CEC peripheral receives messages addressed to its
                                                own address (OAR) with positive acknowledge. Messages addressed to
                                                different destination are received, but without interfering with the
                                                CEC bus: no acknowledge sent.  */

  uint16_t OwnAddress; /*!< Own addresses configuration
                                              This parameter can be a value of CEC_OWN_ADDRESS */

  uint8_t *RxBuffer;


} CEC_InitTypeDef;

/**
  * @brief HAL CEC State definition
  * @note  HAL CEC State value is a combination of 2 different substates: gState and RxState
           (see CEC_State_Definition).
  *        - gState contains CEC state information related to global Handle management
  *          and also information related to Tx operations.
  *          gState value coding follow below described bitmap :
  *          b7 (not used)
  *             x  : Should be set to 0
  *          b6  Error information
  *             0  : No Error
  *             1  : Error
  *          b5     CEC peripheral initialization status
  *             0  : Reset (peripheral not initialized)
  *             1  : Init done (peripheral initialized. HAL CEC Init function already called)
  *          b4-b3  (not used)
  *             xx : Should be set to 00
  *          b2     Intrinsic process state
  *             0  : Ready
  *             1  : Busy (peripheral busy with some configuration or internal operations)
  *          b1     (not used)
  *             x  : Should be set to 0
  *          b0     Tx state
  *             0  : Ready (no Tx operation ongoing)
  *             1  : Busy (Tx operation ongoing)
  *        - RxState contains information related to Rx operations.
  *          RxState value coding follow below described bitmap :
  *          b7-b6  (not used)
  *             xx : Should be set to 00
  *          b5     CEC peripheral initialization status
  *             0  : Reset (peripheral not initialized)
  *             1  : Init done (peripheral initialized)
  *          b4-b2  (not used)
  *            xxx : Should be set to 000
  *          b1     Rx state
  *             0  : Ready (no Rx operation ongoing)
  *             1  : Busy (Rx operation ongoing)
  *          b0     (not used)
  *             x  : Should be set to 0.
  */
typedef uint32_t HAL_CEC_StateTypeDef;

/**
  * @brief  CEC handle Structure definition
  */



typedef struct

{
  CEC_TypeDef *Instance;

  CEC_InitTypeDef Init;

  const uint8_t *pTxBuffPtr;

  uint16_t TxXferCount;

  uint16_t RxXferSize;

  HAL_LockTypeDef Lock;

  HAL_CEC_StateTypeDef gState; /*!< CEC state information related to global Handle management
                                               and also related to Tx operations.
                                               This parameter can be a value of HAL_CEC_StateTypeDef      */

  HAL_CEC_StateTypeDef RxState; /*!< CEC state information related to Rx operations.
                                               This parameter can be a value of HAL_CEC_StateTypeDef      */

  uint32_t ErrorCode; /*!< For errors handling purposes, copy of ISR register
                                               in case error is reported                                  */
# 205 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
} CEC_HandleTypeDef;
# 228 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup CEC_Exported_Constants CEC Exported Constants
  * @{
  */
/** @defgroup CEC_State_Definition CEC State Code Definition
  * @{
  */
# 252 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/**
  * @}
  */
/** @defgroup CEC_Error_Code CEC Error Code
  * @{
  */
# 271 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/**
  * @}
  */

/** @defgroup CEC_Signal_Free_Time  CEC Signal Free Time setting parameter
  * @{
  */
# 286 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/**
  * @}
  */

/** @defgroup CEC_Tolerance CEC Receiver Tolerance
  * @{
  */


/**
  * @}
  */

/** @defgroup CEC_BRERxStop CEC Reception Stop on Error
  * @{
  */


/**
  * @}
  */

/** @defgroup CEC_BREErrorBitGen  CEC Error Bit Generation if Bit Rise Error reported
  * @{
  */


/**
  * @}
  */

/** @defgroup CEC_LBPEErrorBitGen  CEC Error Bit Generation if Long Bit Period Error reported
  * @{
  */


/**
  * @}
  */

/** @defgroup CEC_BroadCastMsgErrorBitGen  CEC Error Bit Generation on Broadcast message
  * @{
  */


/**
  * @}
  */

/** @defgroup CEC_SFT_Option     CEC Signal Free Time start option
  * @{
  */


/**
  * @}
  */

/** @defgroup CEC_Listening_Mode    CEC Listening mode option
  * @{
  */


/**
  * @}
  */

/** @defgroup CEC_OAR_Position   CEC Device Own Address position in CEC CFGR register
  * @{
  */

/**
  * @}
  */

/** @defgroup CEC_Initiator_Position   CEC Initiator logical address position in message header
  * @{
  */

/**
  * @}
  */

/** @defgroup CEC_OWN_ADDRESS   CEC Own Address
  * @{
  */
# 388 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/**
  * @}
  */

/** @defgroup CEC_Interrupts_Definitions  CEC Interrupts definition
  * @{
  */
# 408 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/**
  * @}
  */

/** @defgroup CEC_Flags_Definitions  CEC Flags definition
  * @{
  */
# 428 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/**
  * @}
  */

/** @defgroup CEC_ALL_ERROR CEC all RX or TX errors flags
  * @{
  */


/**
  * @}
  */

/** @defgroup CEC_IER_ALL_RX CEC all RX errors interrupts enabling flag
  * @{
  */

/**
  * @}
  */

/** @defgroup CEC_IER_ALL_TX CEC all TX errors interrupts enabling flag
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup CEC_Exported_Macros CEC Exported Macros
  * @{
  */

/** @brief  Reset CEC handle gstate & RxState
  * @param  __HANDLE__ CEC handle.
  * @retval None
  */
# 483 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/** @brief  Checks whether or not the specified CEC interrupt flag is set.
  * @param  __HANDLE__ specifies the CEC Handle.
  * @param  __FLAG__ specifies the flag to check.
  *            @arg CEC_FLAG_TXACKE: Tx Missing acknowledge Error
  *            @arg CEC_FLAG_TXERR: Tx Error.
  *            @arg CEC_FLAG_TXUDR: Tx-Buffer Underrun.
  *            @arg CEC_FLAG_TXEND: End of transmission (successful transmission of the last byte).
  *            @arg CEC_FLAG_TXBR: Tx-Byte Request.
  *            @arg CEC_FLAG_ARBLST: Arbitration Lost
  *            @arg CEC_FLAG_RXACKE: Rx-Missing Acknowledge
  *            @arg CEC_FLAG_LBPE: Rx Long period Error
  *            @arg CEC_FLAG_SBPE: Rx Short period Error
  *            @arg CEC_FLAG_BRE: Rx Bit Rising Error
  *            @arg CEC_FLAG_RXOVR: Rx Overrun.
  *            @arg CEC_FLAG_RXEND: End Of Reception.
  *            @arg CEC_FLAG_RXBR: Rx-Byte Received.
  * @retval ITStatus
  */


/** @brief  Clears the interrupt or status flag when raised (write at 1)
  * @param  __HANDLE__ specifies the CEC Handle.
  * @param  __FLAG__ specifies the interrupt/status flag to clear.
  *        This parameter can be one of the following values:
  *            @arg CEC_FLAG_TXACKE: Tx Missing acknowledge Error
  *            @arg CEC_FLAG_TXERR: Tx Error.
  *            @arg CEC_FLAG_TXUDR: Tx-Buffer Underrun.
  *            @arg CEC_FLAG_TXEND: End of transmission (successful transmission of the last byte).
  *            @arg CEC_FLAG_TXBR: Tx-Byte Request.
  *            @arg CEC_FLAG_ARBLST: Arbitration Lost
  *            @arg CEC_FLAG_RXACKE: Rx-Missing Acknowledge
  *            @arg CEC_FLAG_LBPE: Rx Long period Error
  *            @arg CEC_FLAG_SBPE: Rx Short period Error
  *            @arg CEC_FLAG_BRE: Rx Bit Rising Error
  *            @arg CEC_FLAG_RXOVR: Rx Overrun.
  *            @arg CEC_FLAG_RXEND: End Of Reception.
  *            @arg CEC_FLAG_RXBR: Rx-Byte Received.
  * @retval none
  */


/** @brief  Enables the specified CEC interrupt.
  * @param  __HANDLE__ specifies the CEC Handle.
  * @param  __INTERRUPT__ specifies the CEC interrupt to enable.
  *          This parameter can be one of the following values:
  *            @arg CEC_IT_TXACKE: Tx Missing acknowledge Error IT Enable
  *            @arg CEC_IT_TXERR: Tx Error IT Enable
  *            @arg CEC_IT_TXUDR: Tx-Buffer Underrun IT Enable
  *            @arg CEC_IT_TXEND: End of transmission IT Enable
  *            @arg CEC_IT_TXBR: Tx-Byte Request IT Enable
  *            @arg CEC_IT_ARBLST: Arbitration Lost IT Enable
  *            @arg CEC_IT_RXACKE: Rx-Missing Acknowledge IT Enable
  *            @arg CEC_IT_LBPE: Rx Long period Error IT Enable
  *            @arg CEC_IT_SBPE: Rx Short period Error IT Enable
  *            @arg CEC_IT_BRE: Rx Bit Rising Error IT Enable
  *            @arg CEC_IT_RXOVR: Rx Overrun IT Enable
  *            @arg CEC_IT_RXEND: End Of Reception IT Enable
  *            @arg CEC_IT_RXBR: Rx-Byte Received IT Enable
  * @retval none
  */


/** @brief  Disables the specified CEC interrupt.
  * @param  __HANDLE__ specifies the CEC Handle.
  * @param  __INTERRUPT__ specifies the CEC interrupt to disable.
  *          This parameter can be one of the following values:
  *            @arg CEC_IT_TXACKE: Tx Missing acknowledge Error IT Enable
  *            @arg CEC_IT_TXERR: Tx Error IT Enable
  *            @arg CEC_IT_TXUDR: Tx-Buffer Underrun IT Enable
  *            @arg CEC_IT_TXEND: End of transmission IT Enable
  *            @arg CEC_IT_TXBR: Tx-Byte Request IT Enable
  *            @arg CEC_IT_ARBLST: Arbitration Lost IT Enable
  *            @arg CEC_IT_RXACKE: Rx-Missing Acknowledge IT Enable
  *            @arg CEC_IT_LBPE: Rx Long period Error IT Enable
  *            @arg CEC_IT_SBPE: Rx Short period Error IT Enable
  *            @arg CEC_IT_BRE: Rx Bit Rising Error IT Enable
  *            @arg CEC_IT_RXOVR: Rx Overrun IT Enable
  *            @arg CEC_IT_RXEND: End Of Reception IT Enable
  *            @arg CEC_IT_RXBR: Rx-Byte Received IT Enable
  * @retval none
  */


/** @brief  Checks whether or not the specified CEC interrupt is enabled.
  * @param  __HANDLE__ specifies the CEC Handle.
  * @param  __INTERRUPT__ specifies the CEC interrupt to check.
  *          This parameter can be one of the following values:
  *            @arg CEC_IT_TXACKE: Tx Missing acknowledge Error IT Enable
  *            @arg CEC_IT_TXERR: Tx Error IT Enable
  *            @arg CEC_IT_TXUDR: Tx-Buffer Underrun IT Enable
  *            @arg CEC_IT_TXEND: End of transmission IT Enable
  *            @arg CEC_IT_TXBR: Tx-Byte Request IT Enable
  *            @arg CEC_IT_ARBLST: Arbitration Lost IT Enable
  *            @arg CEC_IT_RXACKE: Rx-Missing Acknowledge IT Enable
  *            @arg CEC_IT_LBPE: Rx Long period Error IT Enable
  *            @arg CEC_IT_SBPE: Rx Short period Error IT Enable
  *            @arg CEC_IT_BRE: Rx Bit Rising Error IT Enable
  *            @arg CEC_IT_RXOVR: Rx Overrun IT Enable
  *            @arg CEC_IT_RXEND: End Of Reception IT Enable
  *            @arg CEC_IT_RXBR: Rx-Byte Received IT Enable
  * @retval FlagStatus
  */


/** @brief  Enables the CEC device
  * @param  __HANDLE__ specifies the CEC Handle.
  * @retval none
  */


/** @brief  Disables the CEC device
  * @param  __HANDLE__ specifies the CEC Handle.
  * @retval none
  */


/** @brief  Set Transmission Start flag
  * @param  __HANDLE__ specifies the CEC Handle.
  * @retval none
  */


/** @brief  Set Transmission End flag
  * @param  __HANDLE__ specifies the CEC Handle.
  * @retval none
  * If the CEC message consists of only one byte, TXEOM must be set before of TXSOM.
  */


/** @brief  Get Transmission Start flag
  * @param  __HANDLE__ specifies the CEC Handle.
  * @retval FlagStatus
  */


/** @brief  Get Transmission End flag
  * @param  __HANDLE__ specifies the CEC Handle.
  * @retval FlagStatus
  */


/** @brief  Clear OAR register
  * @param  __HANDLE__ specifies the CEC Handle.
  * @retval none
  */


/** @brief  Set OAR register (without resetting previously set address in case of multi-address mode)
  *          To reset OAR, __HAL_CEC_CLEAR_OAR() needs to be called beforehand
  * @param  __HANDLE__ specifies the CEC Handle.
  * @param  __ADDRESS__ Own Address value (CEC logical address is identified by bit position)
  * @retval none
  */



/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup CEC_Exported_Functions
  * @{
  */

/** @addtogroup CEC_Exported_Functions_Group1
  * @{
  */
/* Initialization and de-initialization functions  ****************************/
HAL_StatusTypeDef HAL_CEC_Init(CEC_HandleTypeDef *hcec);
HAL_StatusTypeDef HAL_CEC_DeInit(CEC_HandleTypeDef *hcec);
HAL_StatusTypeDef HAL_CEC_SetDeviceAddress(CEC_HandleTypeDef *hcec, uint16_t CEC_OwnAddress);
void HAL_CEC_MspInit(CEC_HandleTypeDef *hcec);
void HAL_CEC_MspDeInit(CEC_HandleTypeDef *hcec);
# 666 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/**
  * @}
  */

/** @addtogroup CEC_Exported_Functions_Group2
  * @{
  */
/* I/O operation functions  ***************************************************/
HAL_StatusTypeDef HAL_CEC_Transmit_IT(CEC_HandleTypeDef *hcec, uint8_t InitiatorAddress, uint8_t DestinationAddress,
                                      const uint8_t *pData, uint32_t Size);
uint32_t HAL_CEC_GetLastReceivedFrameSize(const CEC_HandleTypeDef *hcec);
void HAL_CEC_ChangeRxBuffer(CEC_HandleTypeDef *hcec, uint8_t *Rxbuffer);
void HAL_CEC_IRQHandler(CEC_HandleTypeDef *hcec);
void HAL_CEC_TxCpltCallback(CEC_HandleTypeDef *hcec);
void HAL_CEC_RxCpltCallback(CEC_HandleTypeDef *hcec, uint32_t RxFrameSize);
void HAL_CEC_ErrorCallback(CEC_HandleTypeDef *hcec);
/**
  * @}
  */

/** @addtogroup CEC_Exported_Functions_Group3
  * @{
  */
/* Peripheral State functions  ************************************************/
HAL_CEC_StateTypeDef HAL_CEC_GetState(const CEC_HandleTypeDef *hcec);
uint32_t HAL_CEC_GetError(const CEC_HandleTypeDef *hcec);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup CEC_Private_Types CEC Private Types
  * @{
  */

/**
  * @}
  */

/* Private variables ---------------------------------------------------------*/
/** @defgroup CEC_Private_Variables CEC Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup CEC_Private_Constants CEC Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup CEC_Private_Macros CEC Private Macros
  * @{
  */
# 756 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cec.h"
/** @brief Check CEC message size.
  *       The message size is the payload size: without counting the header,
  *       it varies from 0 byte (ping operation, one header only, no payload) to
  *       15 bytes (1 opcode and up to 14 operands following the header).
  * @param  __SIZE__ CEC message size.
  * @retval Test result (TRUE or FALSE).
  */


/** @brief Check CEC device Own Address Register (OAR) setting.
  *        OAR address is written in a 15-bit field within CEC_CFGR register.
  * @param  __ADDRESS__ CEC own address.
  * @retval Test result (TRUE or FALSE).
  */


/** @brief Check CEC initiator or destination logical address setting.
  *        Initiator and destination addresses are coded over 4 bits.
  * @param  __ADDRESS__ CEC initiator or logical address.
  * @retval Test result (TRUE or FALSE).
  */

/**
  * @}
  */
/* Private functions ---------------------------------------------------------*/
/** @defgroup CEC_Private_Functions CEC Private Functions
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */




}
# 315 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_comp.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_comp.h
  * @author  MCD Application Team
  * @brief   Header file of COMP HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_comp.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup COMP
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup COMP_Exported_Types COMP Exported Types
  * @{
  */

/**
  * @brief  COMP Init structure definition
  */
typedef struct
{

  uint32_t WindowMode; /*!< Set window mode of a pair of comparators instances
                                    (2 consecutive instances odd and even COMP<x> and COMP<x+1>).
                                    Note: HAL COMP driver allows to set window mode from any COMP instance of the pair of COMP instances composing window mode.
                                    This parameter can be a value of @ref COMP_WindowMode */

  uint32_t Mode; /*!< Set comparator operating mode to adjust power and speed.
                                    Note: For the characteritics of comparator power modes
                                          (propagation delay and power consumption), refer to device datasheet.
                                    This parameter can be a value of @ref COMP_PowerMode */

  uint32_t NonInvertingInput; /*!< Set comparator input plus (non-inverting input).
                                    This parameter can be a value of @ref COMP_InputPlus */

  uint32_t InvertingInput; /*!< Set comparator input minus (inverting input).
                                    This parameter can be a value of @ref COMP_InputMinus */

  uint32_t Hysteresis; /*!< Set comparator hysteresis mode of the input minus.
                                    This parameter can be a value of @ref COMP_Hysteresis */

  uint32_t OutputPol; /*!< Set comparator output polarity.
                                    This parameter can be a value of @ref COMP_OutputPolarity */

  uint32_t BlankingSrce; /*!< Set comparator blanking source.
                                    This parameter can be a value of @ref COMP_BlankingSrce */

  uint32_t TriggerMode; /*!< Set the comparator output triggering External Interrupt Line (EXTI).
                                    This parameter can be a value of @ref COMP_EXTI_TriggerMode */

}COMP_InitTypeDef;

/**
  * @brief  HAL COMP state machine: HAL COMP states definition
  */

typedef enum
{
  HAL_COMP_STATE_RESET = 0x00,
  HAL_COMP_STATE_RESET_LOCKED = (HAL_COMP_STATE_RESET | ((uint32_t)0x10)),
  HAL_COMP_STATE_READY = 0x01,
  HAL_COMP_STATE_READY_LOCKED = (HAL_COMP_STATE_READY | ((uint32_t)0x10)),
  HAL_COMP_STATE_BUSY = 0x02,
  HAL_COMP_STATE_BUSY_LOCKED = (HAL_COMP_STATE_BUSY | ((uint32_t)0x10))
}HAL_COMP_StateTypeDef;

/**
  * @brief  COMP Handle Structure definition
  */



typedef struct

{
  COMP_TypeDef *Instance;
  COMP_InitTypeDef Init;
  HAL_LockTypeDef Lock;
  volatile HAL_COMP_StateTypeDef State;
  volatile uint32_t ErrorCode;






} COMP_HandleTypeDef;
# 132 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_comp.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup COMP_Exported_Constants COMP Exported Constants
  * @{
  */

/** @defgroup COMP_Error_Code COMP Error Code
  * @{
  */




/**
  * @}
  */

/** @defgroup COMP_WindowMode COMP Window Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup COMP_PowerMode COMP power mode
  * @{
  */
/* Note: For the characteritics of comparator power modes                     */
/*       (propagation delay and power consumption),                           */
/*       refer to device datasheet.                                           */



/**
  * @}
  */

/** @defgroup COMP_InputPlus COMP input plus (non-inverting input)
  * @{
  */





/**
  * @}
  */

/** @defgroup COMP_InputMinus COMP input minus (inverting input)
  * @{
  */
# 202 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_comp.h"
/**
  * @}
  */

/** @defgroup COMP_Hysteresis COMP hysteresis
  * @{
  */




/**
  * @}
  */

/** @defgroup COMP_OutputPolarity COMP Output Polarity
  * @{
  */


/**
  * @}
  */


/** @defgroup COMP_BlankingSrce  COMP Blanking Source
  * @{
  */
/* Any blanking source can be selected for all comparators */







/**
  * @}
  */




/** @defgroup COMP_OutputLevel COMP Output Level
  * @{
  */

/* Note: Comparator output level values are fixed to "0" and "1",             */
/* corresponding COMP register bit is managed by HAL function to match        */
/* with these values (independently of bit position in register).             */

/* When output polarity is not inverted, comparator output is low when
   the input plus is at a lower voltage than the input minus */

/* When output polarity is not inverted, comparator output is high when
   the input plus is at a higher voltage than the input minus */


/**
  * @}
  */

/** @defgroup COMP_EXTI_TriggerMode COMP output to EXTI
  * @{
  */
# 275 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_comp.h"
/**
  * @}
  */

/** @defgroup COMP_Flag COMP Flag
  * @{
  */



/**
  * @}
  */
/** @defgroup COMP_IT_CLEAR_Flags  COMP Interruption Clear Flags
  * @{
  */


/**
  * @}
  */
/** @defgroup COMP_Interrupts_Definitions COMP Interrupts Definitions
  * @{
  */


/**
  * @}
  */


/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup COMP_Exported_Macros COMP Exported Macros
  * @{
  */
/** @defgroup COMP_Handle_Management  COMP Handle Management
 * @{
  */

/** @brief  Reset COMP handle state.
  * @param  __HANDLE__  COMP handle
  * @retval None
  */
# 332 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_comp.h"
/**
  * @brief Clear COMP error code (set it to no error code "HAL_COMP_ERROR_NONE").
  * @param __HANDLE__ COMP handle
  * @retval None
  */


/**
  * @brief  Enable the specified comparator.
  * @param  __HANDLE__ COMP handle
  * @retval None
  */


/**
  * @brief  Disable the specified comparator.
  * @param  __HANDLE__ COMP handle
  * @retval None
  */


/**
  * @brief  Lock the specified comparator configuration.
  * @note   Using this macro induce HAL COMP handle state machine being no
  *         more in line with COMP instance state.
  *         To keep HAL COMP handle state machine updated, it is recommended
  *         to use function "HAL_COMP_Lock')".
  * @param  __HANDLE__ COMP handle
  * @retval None
  */


/**
  * @brief  Check whether the specified comparator is locked.
  * @param  __HANDLE__  COMP handle
  * @retval Value 0 if COMP instance is not locked, value 1 if COMP instance is locked
  */


/**
  * @}
  */

/** @defgroup COMP_Exti_Management  COMP external interrupt line management
  * @{
  */

/**
  * @brief  Enable the COMP1 EXTI line rising edge trigger.
  * @retval None
  */



/**
  * @brief  Disable the COMP1 EXTI line rising edge trigger.
  * @retval None
  */


/**
  * @brief  Enable the COMP1 EXTI line falling edge trigger.
  * @retval None
  */


/**
  * @brief  Disable the COMP1 EXTI line falling edge trigger.
  * @retval None
  */



/**
  * @brief  Enable the COMP1 EXTI line rising & falling edge trigger.
  * @retval None
  */






/**
  * @brief  Disable the COMP1 EXTI line rising & falling edge trigger.
  * @retval None
  */






/**
  * @brief  Enable the COMP1 EXTI line in interrupt mode.
  * @retval None
  */


/**
  * @brief  Disable the COMP1 EXTI line in interrupt mode.
  * @retval None
  */


/**
  * @brief  Enable the COMP1 EXTI Line in event mode.
  * @retval None
  */


/**
  * @brief  Disable the COMP1 EXTI Line in event mode.
  * @retval None
  */


/**
  * @brief  Check whether the COMP1 EXTI line flag is set or not.
  * @retval RESET or SET
  */

/**
  * @brief  Clear the COMP1 EXTI flag.
  * @retval None
  */


/**
  * @brief  Generate a software interrupt on the COMP1 EXTI line.
  * @retval None
  */


/**
  * @brief  Enable the COMP1 D3 EXTI Line in event mode.
  * @retval None
  */


/**
  * @brief  Disable the COMP1 D3 EXTI Line in event mode.
  * @retval None
  */



/**
  * @brief  Enable the COMP1 D2 EXTI line in interrupt mode.
  * @retval None
  */


/**
  * @brief  Disable the COMP1 D2 EXTI line in interrupt mode.
  * @retval None
  */


/**
  * @brief  Enable the COMP1 D2 EXTI Line in event mode.
  * @retval None
  */


/**
  * @brief  Disable the COMP1 D2 EXTI Line in event mode.
  * @retval None
  */


/**
  * @brief  Check whether the COMP1 D2 EXTI line flag is set or not.
  * @retval RESET or SET
  */


/**
  * @brief  Clear the COMP1 D2 EXTI flag.
  * @retval None
  */




/**
  * @brief  Enable the COMP2 EXTI line rising edge trigger.
  * @retval None
  */


/**
  * @brief  Disable the COMP2 EXTI line rising edge trigger.
  * @retval None
  */


/**
  * @brief  Enable the COMP2 EXTI line falling edge trigger.
  * @retval None
  */


/**
  * @brief  Disable the COMP2 EXTI line falling edge trigger.
  * @retval None
  */


/**
  * @brief  Enable the COMP2 EXTI line rising & falling edge trigger.
  * @retval None
  */





/**
  * @brief  Disable the COMP2 EXTI line rising & falling edge trigger.
  * @retval None
  */




/**
  * @brief  Enable the COMP2 EXTI line.
  * @retval None
  */


/**
  * @brief  Disable the COMP2 EXTI line.
  * @retval None
  */


/**
  * @brief  Enable the COMP2 EXTI Line in event mode.
  * @retval None
  */


/**
  * @brief  Disable the COMP2 EXTI Line in event mode.
  * @retval None
  */


/**
  * @brief  Check whether the COMP2 EXTI line flag is set or not.
  * @retval RESET or SET
  */


/**
  * @brief  Clear the the COMP2 EXTI flag.
  * @retval None
  */


/**
  * @brief  Enable the COMP2 D3 EXTI Line in event mode.
  * @retval None
  */


/**
  * @brief  Disable the COMP2 D3 EXTI Line in event mode.
  * @retval None
  */


/**
  * @brief  Generate a software interrupt on the COMP2 EXTI line.
  * @retval None
  */



/**
  * @brief  Enable the COMP2 D2 EXTI line
  * @retval None
  */



/**
  * @brief  Disable the COMP2 D2 EXTI line.
  * @retval None
  */




/**
  * @brief  Enable the COMP2 D2 EXTI Line in event mode.
  * @retval None
  */




/**
  * @brief  Disable the COMP2 D2 EXTI Line in event mode.
  * @retval None
  */



/**
  * @brief  Check whether the COMP2 D2 EXTI line flag is set or not.
  * @retval RESET or SET
  */


/**
  * @brief  Clear the the COMP2 D2 EXTI flag.
  * @retval None
  */



/** @brief  Checks if the specified COMP interrupt source is enabled or disabled.
  * @param  __HANDLE__: specifies the COMP Handle.
  *         This parameter can be COMP1 where x: 1 or 2 to select the COMP peripheral.
  * @param  __INTERRUPT__: specifies the COMP interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg COMP_IT_EN: Comparator interrupt enable
  *
  * @retval The new state of __IT__ (TRUE or FALSE)
  */


/** @brief  Checks whether the specified COMP flag is set or not.
  * @param  __FLAG__: specifies the flag to check.
  *        This parameter can be one of the following values:
  *            @arg COMP_FLAG_C1I:  Comparator 1 Interrupt Flag
  *            @arg COMP_FLAG_C2I:  Comparator 2 Interrupt Flag
  *            @retval The new state of __FLAG__ (TRUE or FALSE)
  */


/** @brief  Clears the specified COMP pending flag.
  * @param  __FLAG__: specifies the flag to check.
  *          This parameter can be any combination of the following values:
  *            @arg COMP_CLEAR_C1IF  : Clear Comparator 1 Interrupt Flag
  *            @arg COMP_CLEAR_C2IF  : Clear Comparator 2 Interrupt Flag
  * @retval None
  */


/** @brief  Clear the COMP C1I  flag.
  * @retval None
  */


/** @brief  Clear the COMP C2I  flag.
  * @retval None
  */


/** @brief  Enable the specified COMP interrupt.
  * @param  __HANDLE__: specifies the COMP Handle.
  * @param  __INTERRUPT__: specifies the COMP interrupt source to enable.
  *          This parameter can be one of the following values:
  *            @arg COMP_CFGRx_ITEN :  Comparator  interrupt
  * @retval None
  */


/** @brief  Disable the specified COMP interrupt.
  * @param  __HANDLE__: specifies the COMP Handle.
  * @param  __INTERRUPT__: specifies the COMP interrupt source to enable.
  *          This parameter can be one of the following values:
  *            @arg COMP_CFGRx_ITEN :  Comparator  interrupt
  * @retval None
  */


/**
  * @}
  */
/** @brief  Enable the specified bit in the Option register.
  * @param  __AF__: specifies the Alternate Function source selection .
  *          This parameter can be one of the following values:
  *            @arg COMP_OR_AFOPA6  :  Alternate Function PA6 source selection
  *            @arg COMP_OR_AFOPA8  :  Alternate Function PA8 source selection
  *            @arg COMP_OR_AFOPB12 :  Alternate Function PB12 source selection
  *            @arg COMP_OR_AFOPE6  :  Alternate Function PE6 source selection
  *            @arg COMP_OR_AFOPE15 :  Alternate Function PE15 source selection
  *            @arg COMP_OR_AFOPG2  :  Alternate Function PG2 source selection
  *            @arg COMP_OR_AFOPG3  :  Alternate Function PG3 source selection
  *            @arg COMP_OR_AFOPG4  :  Alternate Function PG4 source selection
  *            @arg COMP_OR_AFOPI1  :  Alternate Function PI1 source selection
  *            @arg COMP_OR_AFOPI4  :  Alternate Function PI4 source selection
  *            @arg COMP_OR_AFOPK2  :  Alternate Function PK2 source selection
  * @retval None
  */


/** @brief  Disable the specified bit in the Option register.
  * @param  __AF__: specifies the Alternate Function source selection .
  *          This parameter can be one of the following values:
  *            @arg COMP_OR_AFOPA6  :  Alternate Function PA6 source selection
  *            @arg COMP_OR_AFOPA8  :  Alternate Function PA8 source selection
  *            @arg COMP_OR_AFOPB12 :  Alternate Function PB12 source selection
  *            @arg COMP_OR_AFOPE6  :  Alternate Function PE6 source selection
  *            @arg COMP_OR_AFOPE15 :  Alternate Function PE15 source selection
  *            @arg COMP_OR_AFOPG2  :  Alternate Function PG2 source selection
  *            @arg COMP_OR_AFOPG3  :  Alternate Function PG3 source selection
  *            @arg COMP_OR_AFOPG4  :  Alternate Function PG4 source selection
  *            @arg COMP_OR_AFOPI1  :  Alternate Function PI1 source selection
  *            @arg COMP_OR_AFOPI4  :  Alternate Function PI4 source selection
  *            @arg COMP_OR_AFOPK2  :  Alternate Function PK2 source selection
  * @retval None
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup COMP_Private_Constants COMP Private Constants
  * @{
  */
/** @defgroup COMP_ExtiLine COMP EXTI Lines
  * @{
  */


/**
  * @}
  */
/** @defgroup COMP_ExtiLine COMP EXTI Lines
  * @{
  */




/**
  * @}
  */
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup COMP_Private_Macros COMP Private Macros
  * @{
  */
/** @defgroup COMP_GET_EXTI_LINE COMP Private macros to get EXTI line associated with Comparators
  * @{
  */
/**
  * @brief  Get the specified EXTI line for a comparator instance.
  * @param  __INSTANCE__: specifies the COMP instance.
  * @retval value of @ref COMP_ExtiLine
  */


/**
  * @}
  */
/** @defgroup COMP_IS_COMP_Definitions COMP private macros to check input parameters
  * @{
  */
# 869 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_comp.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup COMP_Exported_Functions
  * @{
  */

/** @addtogroup COMP_Exported_Functions_Group1
  * @{
  */
/* Initialization and de-initialization functions  **********************************/
HAL_StatusTypeDef HAL_COMP_Init(COMP_HandleTypeDef *hcomp);
HAL_StatusTypeDef HAL_COMP_DeInit (COMP_HandleTypeDef *hcomp);
void HAL_COMP_MspInit(COMP_HandleTypeDef *hcomp);
void HAL_COMP_MspDeInit(COMP_HandleTypeDef *hcomp);





/**
  * @}
  */

/* IO operation functions  *****************************************************/
/** @addtogroup COMP_Exported_Functions_Group2
  * @{
  */
HAL_StatusTypeDef HAL_COMP_Start(COMP_HandleTypeDef *hcomp);
HAL_StatusTypeDef HAL_COMP_Stop(COMP_HandleTypeDef *hcomp);
HAL_StatusTypeDef HAL_COMP_Start_IT(COMP_HandleTypeDef *hcomp);
HAL_StatusTypeDef HAL_COMP_Stop_IT(COMP_HandleTypeDef *hcomp);
void HAL_COMP_IRQHandler(COMP_HandleTypeDef *hcomp);

/**
  * @}
  */

/* Peripheral Control functions  ************************************************/
/** @addtogroup COMP_Exported_Functions_Group3
  * @{
  */
HAL_StatusTypeDef HAL_COMP_Lock(COMP_HandleTypeDef *hcomp);
uint32_t HAL_COMP_GetOutputLevel(const COMP_HandleTypeDef *hcomp);
/* Callback in Interrupt mode */
void HAL_COMP_TriggerCallback(COMP_HandleTypeDef *hcomp);
/**
  * @}
  */

/* Peripheral State functions  **************************************************/
/** @addtogroup COMP_Exported_Functions_Group4
  * @{
  */
HAL_COMP_StateTypeDef HAL_COMP_GetState(const COMP_HandleTypeDef *hcomp);
uint32_t HAL_COMP_GetError(const COMP_HandleTypeDef *hcomp);
/**
  * @}
  */

/**
  * @}
  */


/**
  * @}
  */

/**
  * @}
  */

}
# 319 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cordic.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_cordic.h
  * @author  MCD Application Team
  * @brief   This file contains all the functions prototypes for the CORDIC firmware
  *          library.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cordic.h" 2
# 617 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cordic.h"
}
# 323 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_crc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_crc.h
  * @author  MCD Application Team
  * @brief   Header file of CRC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_crc.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup CRC
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup CRC_Exported_Types CRC Exported Types
  * @{
  */

/**
  * @brief  CRC HAL State Structure definition
  */
typedef enum
{
  HAL_CRC_STATE_RESET = 0x00U,
  HAL_CRC_STATE_READY = 0x01U,
  HAL_CRC_STATE_BUSY = 0x02U,
  HAL_CRC_STATE_TIMEOUT = 0x03U,
  HAL_CRC_STATE_ERROR = 0x04U
} HAL_CRC_StateTypeDef;

/**
  * @brief CRC Init Structure definition
  */
typedef struct
{
  uint8_t DefaultPolynomialUse; /*!< This parameter is a value of @ref CRC_Default_Polynomial and indicates if default polynomial is used.
                                            If set to DEFAULT_POLYNOMIAL_ENABLE, resort to default
                                            X^32 + X^26 + X^23 + X^22 + X^16 + X^12 + X^11 + X^10 +X^8 + X^7 + X^5 +
                                            X^4 + X^2+ X +1.
                                            In that case, there is no need to set GeneratingPolynomial field.
                                            If otherwise set to DEFAULT_POLYNOMIAL_DISABLE, GeneratingPolynomial and
                                            CRCLength fields must be set. */

  uint8_t DefaultInitValueUse; /*!< This parameter is a value of @ref CRC_Default_InitValue_Use and indicates if default init value is used.
                                           If set to DEFAULT_INIT_VALUE_ENABLE, resort to default
                                           0xFFFFFFFF value. In that case, there is no need to set InitValue field. If
                                           otherwise set to DEFAULT_INIT_VALUE_DISABLE, InitValue field must be set. */

  uint32_t GeneratingPolynomial; /*!< Set CRC generating polynomial as a 7, 8, 16 or 32-bit long value for a polynomial degree
                                           respectively equal to 7, 8, 16 or 32. This field is written in normal,
                                           representation e.g., for a polynomial of degree 7, X^7 + X^6 + X^5 + X^2 + 1
                                           is written 0x65. No need to specify it if DefaultPolynomialUse is set to
                                            DEFAULT_POLYNOMIAL_ENABLE.   */

  uint32_t CRCLength; /*!< This parameter is a value of @ref CRC_Polynomial_Sizes and indicates CRC length.
                                           Value can be either one of
                                           @arg @ref CRC_POLYLENGTH_32B                  (32-bit CRC),
                                           @arg @ref CRC_POLYLENGTH_16B                  (16-bit CRC),
                                           @arg @ref CRC_POLYLENGTH_8B                   (8-bit CRC),
                                           @arg @ref CRC_POLYLENGTH_7B                   (7-bit CRC). */

  uint32_t InitValue; /*!< Init value to initiate CRC computation. No need to specify it if DefaultInitValueUse
                                           is set to DEFAULT_INIT_VALUE_ENABLE.   */

  uint32_t InputDataInversionMode; /*!< This parameter is a value of @ref CRCEx_Input_Data_Inversion and specifies input data inversion mode.
                                           Can be either one of the following values
                                           @arg @ref CRC_INPUTDATA_INVERSION_NONE       no input data inversion
                                           @arg @ref CRC_INPUTDATA_INVERSION_BYTE       byte-wise inversion, 0x1A2B3C4D
                                           becomes 0x58D43CB2
                                           @arg @ref CRC_INPUTDATA_INVERSION_HALFWORD   halfword-wise inversion,
                                           0x1A2B3C4D becomes 0xD458B23C
                                           @arg @ref CRC_INPUTDATA_INVERSION_WORD       word-wise inversion, 0x1A2B3C4D
                                           becomes 0xB23CD458 */

  uint32_t OutputDataInversionMode; /*!< This parameter is a value of @ref CRCEx_Output_Data_Inversion and specifies output data (i.e. CRC) inversion mode.
                                            Can be either
                                            @arg @ref CRC_OUTPUTDATA_INVERSION_DISABLE   no CRC inversion,
                                            @arg @ref CRC_OUTPUTDATA_INVERSION_ENABLE    CRC 0x11223344 is converted
                                             into 0x22CC4488 */
} CRC_InitTypeDef;

/**
  * @brief  CRC Handle Structure definition
  */
typedef struct
{
  CRC_TypeDef *Instance;

  CRC_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  volatile HAL_CRC_StateTypeDef State;

  uint32_t InputDataFormat; /*!< This parameter is a value of @ref CRC_Input_Buffer_Format and specifies input data format.
                                            Can be either
                                            @arg @ref CRC_INPUTDATA_FORMAT_BYTES       input data is a stream of bytes
                                            (8-bit data)
                                            @arg @ref CRC_INPUTDATA_FORMAT_HALFWORDS   input data is a stream of
                                            half-words (16-bit data)
                                            @arg @ref CRC_INPUTDATA_FORMAT_WORDS       input data is a stream of words
                                            (32-bit data)

                                          Note that constant CRC_INPUT_FORMAT_UNDEFINED is defined but an initialization
                                          error must occur if InputBufferFormat is not one of the three values listed
                                          above  */
} CRC_HandleTypeDef;
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup CRC_Exported_Constants CRC Exported Constants
  * @{
  */

/** @defgroup CRC_Default_Polynomial_Value    Default CRC generating polynomial
  * @{
  */

/**
  * @}
  */

/** @defgroup CRC_Default_InitValue    Default CRC computation initialization value
  * @{
  */

/**
  * @}
  */

/** @defgroup CRC_Default_Polynomial    Indicates whether or not default polynomial is used
  * @{
  */


/**
  * @}
  */

/** @defgroup CRC_Default_InitValue_Use    Indicates whether or not default init value is used
  * @{
  */


/**
  * @}
  */

/** @defgroup CRC_Polynomial_Sizes Polynomial sizes to configure the peripheral
  * @{
  */




/**
  * @}
  */

/** @defgroup CRC_Polynomial_Size_Definitions CRC polynomial possible sizes actual definitions
  * @{
  */




/**
  * @}
  */

/** @defgroup CRC_Input_Buffer_Format Input Buffer Format
  * @{
  */
/* WARNING: CRC_INPUT_FORMAT_UNDEFINED is created for reference purposes but
 * an error is triggered in HAL_CRC_Init() if InputDataFormat field is set
 * to CRC_INPUT_FORMAT_UNDEFINED: the format MUST be defined by the user for
 * the CRC APIs to provide a correct result */




/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup CRC_Exported_Macros CRC Exported Macros
  * @{
  */

/** @brief Reset CRC handle state.
  * @param  __HANDLE__ CRC handle.
  * @retval None
  */


/**
  * @brief  Reset CRC Data Register.
  * @param  __HANDLE__ CRC handle
  * @retval None
  */


/**
  * @brief  Set CRC INIT non-default value
  * @param  __HANDLE__ CRC handle
  * @param  __INIT__ 32-bit initial value
  * @retval None
  */


/**
  * @brief Store data in the Independent Data (ID) register.
  * @param __HANDLE__ CRC handle
  * @param __VALUE__  Value to be stored in the ID register
  * @note  Refer to the Reference Manual to get the authorized __VALUE__ length in bits
  * @retval None
  */


/**
  * @brief Return the data stored in the Independent Data (ID) register.
  * @param __HANDLE__ CRC handle
  * @note  Refer to the Reference Manual to get the authorized __VALUE__ length in bits
  * @retval Value of the ID register
  */

/**
  * @}
  */


/* Private macros --------------------------------------------------------*/
/** @defgroup  CRC_Private_Macros CRC Private Macros
  * @{
  */
# 283 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_crc.h"
/**
  * @}
  */

/* Include CRC HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_crc_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_crc_ex.h
  * @author  MCD Application Team
  * @brief   Header file of CRC HAL extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_crc_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup CRCEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup CRCEx_Exported_Constants CRC Extended Exported Constants
  * @{
  */

/** @defgroup CRCEx_Input_Data_Inversion Input Data Inversion Modes
  * @{
  */




/**
  * @}
  */

/** @defgroup CRCEx_Output_Data_Inversion Output Data Inversion Modes
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup CRCEx_Exported_Macros CRC Extended Exported Macros
  * @{
  */

/**
  * @brief  Set CRC output reversal
  * @param  __HANDLE__ CRC handle
  * @retval None
  */


/**
  * @brief  Unset CRC output reversal
  * @param  __HANDLE__ CRC handle
  * @retval None
  */


/**
  * @brief  Set CRC non-default polynomial
  * @param  __HANDLE__ CRC handle
  * @param  __POLYNOMIAL__ 7, 8, 16 or 32-bit polynomial
  * @retval None
  */


/**
  * @}
  */

/* Private macros --------------------------------------------------------*/
/** @defgroup CRCEx_Private_Macros CRC Extended Private Macros
  * @{
  */
# 112 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_crc_ex.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/

/** @addtogroup CRCEx_Exported_Functions
  * @{
  */

/** @addtogroup CRCEx_Exported_Functions_Group1
  * @{
  */
/* Initialization and de-initialization functions  ****************************/
HAL_StatusTypeDef HAL_CRCEx_Polynomial_Set(CRC_HandleTypeDef *hcrc, uint32_t Pol, uint32_t PolyLength);
HAL_StatusTypeDef HAL_CRCEx_Input_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t InputReverseMode);
HAL_StatusTypeDef HAL_CRCEx_Output_Data_Reverse(CRC_HandleTypeDef *hcrc, uint32_t OutputReverseMode);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 289 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_crc.h" 2

/* Exported functions --------------------------------------------------------*/
/** @defgroup CRC_Exported_Functions CRC Exported Functions
  * @{
  */

/* Initialization and de-initialization functions  ****************************/
/** @defgroup CRC_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */
HAL_StatusTypeDef HAL_CRC_Init(CRC_HandleTypeDef *hcrc);
HAL_StatusTypeDef HAL_CRC_DeInit(CRC_HandleTypeDef *hcrc);
void HAL_CRC_MspInit(CRC_HandleTypeDef *hcrc);
void HAL_CRC_MspDeInit(CRC_HandleTypeDef *hcrc);
/**
  * @}
  */

/* Peripheral Control functions ***********************************************/
/** @defgroup CRC_Exported_Functions_Group2 Peripheral Control functions
  * @{
  */
uint32_t HAL_CRC_Accumulate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
uint32_t HAL_CRC_Calculate(CRC_HandleTypeDef *hcrc, uint32_t pBuffer[], uint32_t BufferLength);
/**
  * @}
  */

/* Peripheral State and Error functions ***************************************/
/** @defgroup CRC_Exported_Functions_Group3 Peripheral State functions
  * @{
  */
HAL_CRC_StateTypeDef HAL_CRC_GetState(const CRC_HandleTypeDef *hcrc);
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 327 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cryp.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_cryp.h
  * @author  MCD Application Team
  * @brief   Header file of CRYP HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {



/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cryp.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */
# 561 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_cryp.h"
/**
  * @}
  */


}
# 331 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dac.h
  * @author  MCD Application Team
  * @brief   Header file of DAC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h" 2



/** @addtogroup DAC
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup DAC_Exported_Types DAC Exported Types
  * @{
  */

/**
  * @brief  HAL State structures definition
  */
typedef enum
{
  HAL_DAC_STATE_RESET = 0x00U,
  HAL_DAC_STATE_READY = 0x01U,
  HAL_DAC_STATE_BUSY = 0x02U,
  HAL_DAC_STATE_TIMEOUT = 0x03U,
  HAL_DAC_STATE_ERROR = 0x04U

} HAL_DAC_StateTypeDef;

/**
  * @brief  DAC handle Structure definition
  */



typedef struct

{
  DAC_TypeDef *Instance;

  volatile HAL_DAC_StateTypeDef State;

  HAL_LockTypeDef Lock;

  DMA_HandleTypeDef *DMA_Handle1;

  DMA_HandleTypeDef *DMA_Handle2;

  volatile uint32_t ErrorCode;
# 96 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h"
} DAC_HandleTypeDef;

/**
  * @brief   DAC Configuration sample and hold Channel structure definition
  */
typedef struct
{
  uint32_t DAC_SampleTime ; /*!< Specifies the Sample time for the selected channel.
                                          This parameter applies when DAC_SampleAndHold is DAC_SAMPLEANDHOLD_ENABLE.
                                          This parameter must be a number between Min_Data = 0 and Max_Data = 1023 */

  uint32_t DAC_HoldTime ; /*!< Specifies the hold time for the selected channel
                                          This parameter applies when DAC_SampleAndHold is DAC_SAMPLEANDHOLD_ENABLE.
                                          This parameter must be a number between Min_Data = 0 and Max_Data = 1023 */

  uint32_t DAC_RefreshTime ; /*!< Specifies the refresh time for the selected channel
                                          This parameter applies when DAC_SampleAndHold is DAC_SAMPLEANDHOLD_ENABLE.
                                          This parameter must be a number between Min_Data = 0 and Max_Data = 255 */
} DAC_SampleAndHoldConfTypeDef;

/**
  * @brief   DAC Configuration regular Channel structure definition
  */
typedef struct
{
  uint32_t DAC_SampleAndHold; /*!< Specifies whether the DAC mode.
                                              This parameter can be a value of @ref DAC_SampleAndHold */

  uint32_t DAC_Trigger; /*!< Specifies the external trigger for the selected DAC channel.
                                              This parameter can be a value of @ref DAC_trigger_selection */

  uint32_t DAC_OutputBuffer; /*!< Specifies whether the DAC channel output buffer is enabled or disabled.
                                               This parameter can be a value of @ref DAC_output_buffer */

  uint32_t DAC_ConnectOnChipPeripheral ; /*!< Specifies whether the DAC output is connected or not to on chip peripheral.
                                              This parameter can be a value of @ref DAC_ConnectOnChipPeripheral */

  uint32_t DAC_UserTrimming; /*!< Specifies the trimming mode
                                              This parameter must be a value of @ref DAC_UserTrimming
                                              DAC_UserTrimming is either factory or user trimming */

  uint32_t DAC_TrimmingValue; /*!< Specifies the offset trimming value
                                               i.e. when DAC_SampleAndHold is DAC_TRIMMING_USER.
                                               This parameter must be a number between Min_Data = 1 and Max_Data = 31 */
  DAC_SampleAndHoldConfTypeDef DAC_SampleAndHoldConfig;
} DAC_ChannelConfTypeDef;
# 170 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup DAC_Exported_Constants DAC Exported Constants
  * @{
  */

/** @defgroup DAC_Error_Code DAC Error Code
  * @{
  */
# 192 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h"
/**
  * @}
  */

/** @defgroup DAC_trigger_selection DAC trigger selection
  * @{
  */
# 226 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h"
/**
  * @}
  */

/** @defgroup DAC_output_buffer DAC output buffer
  * @{
  */



/**
  * @}
  */

/** @defgroup DAC_Channel_selection DAC Channel selection
  * @{
  */




/**
  * @}
  */

/** @defgroup DAC_data_alignment DAC data alignment
  * @{
  */




/**
  * @}
  */

/** @defgroup DAC_flags_definition DAC flags definition
  * @{
  */





/**
  * @}
  */

/** @defgroup DAC_IT_definition  DAC IT definition
  * @{
  */





/**
  * @}
  */

/** @defgroup DAC_ConnectOnChipPeripheral DAC ConnectOnChipPeripheral
  * @{
  */







/**
  * @}
  */

/** @defgroup DAC_UserTrimming DAC User Trimming
  * @{
  */


/**
  * @}
  */

/** @defgroup DAC_SampleAndHold DAC power mode
  * @{
  */



/**
  * @}
  */
/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/

/** @defgroup DAC_Exported_Macros DAC Exported Macros
  * @{
  */

/** @brief Reset DAC handle state.
  * @param  __HANDLE__ specifies the DAC handle.
  * @retval None
  */
# 342 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h"
/** @brief Enable the DAC channel.
  * @param  __HANDLE__ specifies the DAC handle.
  * @param  __DAC_Channel__ specifies the DAC channel
  * @retval None
  */



/** @brief Disable the DAC channel.
  * @param  __HANDLE__ specifies the DAC handle
  * @param  __DAC_Channel__ specifies the DAC channel.
  * @retval None
  */



/** @brief Set DHR12R1 alignment.
  * @param  __ALIGNMENT__ specifies the DAC alignment
  * @retval None
  */



/** @brief  Set DHR12R2 alignment.
  * @param  __ALIGNMENT__ specifies the DAC alignment
  * @retval None
  */



/** @brief  Set DHR12RD alignment.
  * @param  __ALIGNMENT__ specifies the DAC alignment
  * @retval None
  */


/** @brief Enable the DAC interrupt.
  * @param  __HANDLE__ specifies the DAC handle
  * @param  __INTERRUPT__ specifies the DAC interrupt.
  *          This parameter can be any combination of the following values:
  *            @arg DAC_IT_DMAUDR1 DAC channel 1 DMA underrun interrupt
  *            @arg DAC_IT_DMAUDR2 DAC channel 2 DMA underrun interrupt
  * @retval None
  */


/** @brief Disable the DAC interrupt.
  * @param  __HANDLE__ specifies the DAC handle
  * @param  __INTERRUPT__ specifies the DAC interrupt.
  *          This parameter can be any combination of the following values:
  *            @arg DAC_IT_DMAUDR1 DAC channel 1 DMA underrun interrupt
  *            @arg DAC_IT_DMAUDR2 DAC channel 2 DMA underrun interrupt
  * @retval None
  */


/** @brief  Check whether the specified DAC interrupt source is enabled or not.
  * @param __HANDLE__ DAC handle
  * @param __INTERRUPT__ DAC interrupt source to check
  *          This parameter can be any combination of the following values:
  *            @arg DAC_IT_DMAUDR1 DAC channel 1 DMA underrun interrupt
  *            @arg DAC_IT_DMAUDR2 DAC channel 2 DMA underrun interrupt
  * @retval State of interruption (SET or RESET)
  */



/** @brief  Get the selected DAC's flag status.
  * @param  __HANDLE__ specifies the DAC handle.
  * @param  __FLAG__ specifies the DAC flag to get.
  *          This parameter can be any combination of the following values:
  *            @arg DAC_FLAG_DMAUDR1 DAC channel 1 DMA underrun flag
  *            @arg DAC_FLAG_DMAUDR2 DAC channel 2 DMA underrun flag
  * @retval None
  */


/** @brief  Clear the DAC's flag.
  * @param  __HANDLE__ specifies the DAC handle.
  * @param  __FLAG__ specifies the DAC flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg DAC_FLAG_DMAUDR1 DAC channel 1 DMA underrun flag
  *            @arg DAC_FLAG_DMAUDR2 DAC channel 2 DMA underrun flag
  * @retval None
  */


/**
  * @}
  */

/* Private macro -------------------------------------------------------------*/

/** @defgroup DAC_Private_Macros DAC Private Macros
  * @{
  */
# 452 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h"
/**
  * @}
  */

/* Include DAC HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dac_ex.h
  * @author  MCD Application Team
  * @brief   Header file of DAC HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac_ex.h" 2



/** @addtogroup DACEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/**
  * @brief  HAL State structures definition
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup DACEx_Exported_Constants DACEx Exported Constants
  * @{
  */

/** @defgroup DACEx_lfsrunmask_triangleamplitude DACEx lfsrunmask triangle amplitude
  * @{
  */
# 80 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac_ex.h"
/**
  * @}
  */


/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/


/* Private macro -------------------------------------------------------------*/

/** @defgroup DACEx_Private_Macros DACEx Private Macros
  * @{
  */
# 188 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac_ex.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/* Extended features functions ***********************************************/

/** @addtogroup DACEx_Exported_Functions
  * @{
  */

/** @addtogroup DACEx_Exported_Functions_Group2
  * @{
  */
/* IO operation functions *****************************************************/

HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Amplitude);
HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Amplitude);

HAL_StatusTypeDef HAL_DACEx_DualStart(DAC_HandleTypeDef *hdac);
HAL_StatusTypeDef HAL_DACEx_DualStop(DAC_HandleTypeDef *hdac);
HAL_StatusTypeDef HAL_DACEx_DualStart_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel,
                                          const uint32_t *pData, uint32_t Length, uint32_t Alignment);
HAL_StatusTypeDef HAL_DACEx_DualStop_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel);
HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef *hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2);
uint32_t HAL_DACEx_DualGetValue(const DAC_HandleTypeDef *hdac);

void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef *hdac);
void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef *hdac);
void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef *hdac);
void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef *hdac);


/**
  * @}
  */

/** @addtogroup DACEx_Exported_Functions_Group3
  * @{
  */
/* Peripheral Control functions ***********************************************/

HAL_StatusTypeDef HAL_DACEx_SelfCalibrate(DAC_HandleTypeDef *hdac, DAC_ChannelConfTypeDef *sConfig, uint32_t Channel);
HAL_StatusTypeDef HAL_DACEx_SetUserTrimming(DAC_HandleTypeDef *hdac, DAC_ChannelConfTypeDef *sConfig, uint32_t Channel,
                                            uint32_t NewTrimmingValue);
uint32_t HAL_DACEx_GetTrimOffset(const DAC_HandleTypeDef *hdac, uint32_t Channel);

/**
  * @}
  */

/**
  * @}
  */

/** @addtogroup DACEx_Private_Functions
  * @{
  */

/* DAC_DMAConvCpltCh2 / DAC_DMAErrorCh2 / DAC_DMAHalfConvCpltCh2 */
/* are called by HAL_DAC_Start_DMA */
void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma);
void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma);
void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma);

/**
  * @}
  */

/**
  * @}
  */



/**
  * @}
  */


}
# 458 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h" 2

/* Exported functions --------------------------------------------------------*/

/** @addtogroup DAC_Exported_Functions
  * @{
  */

/** @addtogroup DAC_Exported_Functions_Group1
  * @{
  */
/* Initialization and de-initialization functions *****************************/
HAL_StatusTypeDef HAL_DAC_Init(DAC_HandleTypeDef *hdac);
HAL_StatusTypeDef HAL_DAC_DeInit(DAC_HandleTypeDef *hdac);
void HAL_DAC_MspInit(DAC_HandleTypeDef *hdac);
void HAL_DAC_MspDeInit(DAC_HandleTypeDef *hdac);

/**
  * @}
  */

/** @addtogroup DAC_Exported_Functions_Group2
  * @{
  */
/* IO operation functions *****************************************************/
HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef *hdac, uint32_t Channel);
HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef *hdac, uint32_t Channel);
HAL_StatusTypeDef HAL_DAC_Start_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel, const uint32_t *pData, uint32_t Length,
                                    uint32_t Alignment);
HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel);
void HAL_DAC_IRQHandler(DAC_HandleTypeDef *hdac);
HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Alignment, uint32_t Data);

void HAL_DAC_ConvCpltCallbackCh1(DAC_HandleTypeDef *hdac);
void HAL_DAC_ConvHalfCpltCallbackCh1(DAC_HandleTypeDef *hdac);
void HAL_DAC_ErrorCallbackCh1(DAC_HandleTypeDef *hdac);
void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac);
# 502 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dac.h"
/**
  * @}
  */

/** @addtogroup DAC_Exported_Functions_Group3
  * @{
  */
/* Peripheral Control functions ***********************************************/
uint32_t HAL_DAC_GetValue(const DAC_HandleTypeDef *hdac, uint32_t Channel);
HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef *hdac,
                                        const DAC_ChannelConfTypeDef *sConfig, uint32_t Channel);
/**
  * @}
  */

/** @addtogroup DAC_Exported_Functions_Group4
  * @{
  */
/* Peripheral State and Error functions ***************************************/
HAL_DAC_StateTypeDef HAL_DAC_GetState(const DAC_HandleTypeDef *hdac);
uint32_t HAL_DAC_GetError(const DAC_HandleTypeDef *hdac);

/**
  * @}
  */

/**
  * @}
  */

/** @defgroup DAC_Private_Functions DAC Private Functions
  * @{
  */
void DAC_DMAConvCpltCh1(DMA_HandleTypeDef *hdma);
void DAC_DMAErrorCh1(DMA_HandleTypeDef *hdma);
void DAC_DMAHalfConvCpltCh1(DMA_HandleTypeDef *hdma);
/**
  * @}
  */

/**
  * @}
  */



/**
  * @}
  */


}
# 335 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_flash.h
  * @author  MCD Application Team
  * @brief   Header file of FLASH HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file in
  * the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup FLASH
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup FLASH_Exported_Types FLASH Exported Types
  * @{
  */

/**
  * @brief  FLASH Procedure structure definition
  */
typedef enum
{
  FLASH_PROC_NONE = 0U,
  FLASH_PROC_SECTERASE_BANK1,
  FLASH_PROC_MASSERASE_BANK1,
  FLASH_PROC_PROGRAM_BANK1,
  FLASH_PROC_SECTERASE_BANK2,
  FLASH_PROC_MASSERASE_BANK2,
  FLASH_PROC_PROGRAM_BANK2,
  FLASH_PROC_ALLBANK_MASSERASE
} FLASH_ProcedureTypeDef;


/**
  * @brief  FLASH handle Structure definition
  */
typedef struct
{
  volatile FLASH_ProcedureTypeDef ProcedureOnGoing;

  volatile uint32_t NbSectorsToErase;

  volatile uint32_t VoltageForErase;

  volatile uint32_t Sector;

  volatile uint32_t Address;

  HAL_LockTypeDef Lock;

  volatile uint32_t ErrorCode;

}FLASH_ProcessTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup FLASH_Exported_Constants FLASH Exported Constants
  * @{
  */

/** @defgroup FLASH_Error_Code FLASH Error Code
  * @brief    FLASH Error Code
  * @{
  */
# 134 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h"
/**
  * @}
  */

/** @defgroup FLASH_Type_Program FLASH Type Program
  * @{
  */




/**
  * @}
  */

/** @defgroup FLASH_Flag_definition FLASH Flag definition
  * @brief Flag definition
  * @{
  */
# 247 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h"
/**
  * @}
  */

/** @defgroup FLASH_Interrupt_definition FLASH Interrupt definition
  * @brief FLASH Interrupt definition
  * @{
  */
# 316 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h"
/**
  * @}
  */


/** @defgroup FLASH_Program_Parallelism FLASH Program Parallelism
  * @{
  */




/**
  * @}
  */



/** @defgroup FLASH_Keys FLASH Keys
  * @{
  */




/**
  * @}
  */

/** @defgroup FLASH_Sectors FLASH Sectors
  * @{
  */
# 478 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup FLASH_Exported_Macros FLASH Exported Macros
  * @{
  */
/**
  * @brief  Set the FLASH Latency.
  * @param  __LATENCY__: FLASH Latency
  *         The value of this parameter depend on device used within the same series
  * @retval none
  */



/**
  * @brief  Get the FLASH Latency.
  * @retval FLASH Latency
  *          The value of this parameter depend on device used within the same series
  */


/**
  * @brief  Enable the specified FLASH interrupt.
  * @param  __INTERRUPT__ : FLASH interrupt
  *   In case of Bank 1 This parameter can be any combination of the following values:
  *     @arg FLASH_IT_EOP_BANK1       : End of FLASH Bank 1 Operation Interrupt source
  *     @arg FLASH_IT_WRPERR_BANK1    : Write Protection Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_PGSERR_BANK1    : Program Sequence Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_STRBERR_BANK1   : Strobe Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_INCERR_BANK1    : Inconsistency Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_OPERR_BANK1     : Operation Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_RDPERR_BANK1    : Read protection Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_RDSERR_BANK1    : Read secure Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_SNECCERR_BANK1  : Single ECC Error Correction on Bank 1 Interrupt source
  *     @arg FLASH_IT_DBECCERR_BANK1  : Double Detection ECC Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_CRCEND_BANK1    : CRC End on Bank 1 Interrupt source
  *     @arg FLASH_IT_CRCRDERR_BANK1  : CRC Read error on Bank 1 Interrupt source
  *     @arg FLASH_IT_ALL_BANK1       : All Bank 1 Interrupt sources
  *
  *   In case of Bank 2, this parameter can be any combination of the following values:
  *     @arg FLASH_IT_EOP_BANK2       : End of FLASH Bank 2 Operation Interrupt source
  *     @arg FLASH_IT_WRPERR_BANK2    : Write Protection Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_PGSERR_BANK2    : Program Sequence Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_STRBERR_BANK2   : Strobe Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_INCERR_BANK2    : Inconsistency Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_OPERR_BANK2     : Operation Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_RDPERR_BANK2    : Read protection Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_RDSERR_BANK2    : Read secure Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_SNECCERR_BANK2  : Single ECC Error Correction on Bank 2 Interrupt source
  *     @arg FLASH_IT_DBECCERR_BANK2  : Double Detection ECC Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_CRCEND_BANK2    : CRC End on Bank 2 Interrupt source
  *     @arg FLASH_IT_CRCRDERR_BANK2  : CRC Read error on Bank 2 Interrupt source
  *     @arg FLASH_IT_ALL_BANK2       : All Bank 2 Interrupt sources
  * @retval none
  */
# 554 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h"
/**
  * @brief  Disable the specified FLASH interrupt.
  * @param  __INTERRUPT__ : FLASH interrupt
  *   In case of Bank 1 This parameter can be any combination of the following values:
  *     @arg FLASH_IT_EOP_BANK1       : End of FLASH Bank 1 Operation Interrupt source
  *     @arg FLASH_IT_WRPERR_BANK1    : Write Protection Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_PGSERR_BANK1    : Program Sequence Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_STRBERR_BANK1   : Strobe Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_INCERR_BANK1    : Inconsistency Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_OPERR_BANK1     : Operation Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_RDPERR_BANK1    : Read protection Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_RDSERR_BANK1    : Read secure Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_SNECCERR_BANK1  : Single ECC Error Correction on Bank 1 Interrupt source
  *     @arg FLASH_IT_DBECCERR_BANK1  : Double Detection ECC Error on Bank 1 Interrupt source
  *     @arg FLASH_IT_CRCEND_BANK1    : CRC End on Bank 1 Interrupt source
  *     @arg FLASH_IT_CRCRDERR_BANK1  : CRC Read error on Bank 1 Interrupt source
  *     @arg FLASH_IT_ALL_BANK1       : All Bank 1 Interrupt sources
  *
  *   In case of Bank 2, this parameter can be any combination of the following values:
  *     @arg FLASH_IT_EOP_BANK2       : End of FLASH Bank 2 Operation Interrupt source
  *     @arg FLASH_IT_WRPERR_BANK2    : Write Protection Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_PGSERR_BANK2    : Program Sequence Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_STRBERR_BANK2   : Strobe Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_INCERR_BANK2    : Inconsistency Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_OPERR_BANK2     : Operation Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_RDPERR_BANK2    : Read protection Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_RDSERR_BANK2    : Read secure Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_SNECCERR_BANK2  : Single ECC Error Correction on Bank 2 Interrupt source
  *     @arg FLASH_IT_DBECCERR_BANK2  : Double Detection ECC Error on Bank 2 Interrupt source
  *     @arg FLASH_IT_CRCEND_BANK2    : CRC End on Bank 2 Interrupt source
  *     @arg FLASH_IT_CRCRDERR_BANK2  : CRC Read error on Bank 2 Interrupt source
  *     @arg FLASH_IT_ALL_BANK2       : All Bank 2 Interrupt sources
  * @retval none
  */
# 602 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h"
/**
  * @brief  Checks whether the specified FLASH flag is set or not.
  * @param  __FLAG__: specifies the FLASH flag to check.
  *   In case of Bank 1 This parameter can be one of the following values :
  *     @arg FLASH_FLAG_BSY_BANK1      : FLASH Bank 1 Busy flag
  *     @arg FLASH_FLAG_WBNE_BANK1     : Write Buffer Not Empty on Bank 1 flag
  *     @arg FLASH_FLAG_QW_BANK1       : Wait Queue on Bank 1 flag
  *     @arg FLASH_FLAG_CRC_BUSY_BANK1 : CRC module is working on Bank 1 flag
  *     @arg FLASH_FLAG_EOP_BANK1      : End Of Program on Bank 1 flag
  *     @arg FLASH_FLAG_WRPERR_BANK1   : Write Protection Error on Bank 1 flag
  *     @arg FLASH_FLAG_PGSERR_BANK1   : Program Sequence Error on Bank 1 flag
  *     @arg FLASH_FLAG_STRBER_BANK1   : Program Alignment Error on Bank 1 flag
  *     @arg FLASH_FLAG_INCERR_BANK1   : Inconsistency Error on Bank 1 flag
  *     @arg FLASH_FLAG_OPERR_BANK1    : Operation Error on Bank 1 flag
  *     @arg FLASH_FLAG_RDPERR_BANK1   : Read Protection Error on Bank 1 flag
  *     @arg FLASH_FLAG_RDSERR_BANK1   : Read secure  Error on Bank 1 flag
  *     @arg FLASH_FLAG_SNECCE_BANK1   : Single ECC Error Correction on Bank 1 flag
  *     @arg FLASH_FLAG_DBECCE_BANK1   : Double Detection ECC Error on Bank 1 flag
  *     @arg FLASH_FLAG_CRCEND_BANK1   : CRC End on Bank 1 flag
  *     @arg FLASH_FLAG_CRCRDERR_BANK1 : CRC Read error on Bank 1 flag
  *
  *   In case of Bank 2 This parameter can be one of the following values :
  *     @arg FLASH_FLAG_BSY_BANK2      : FLASH Bank 2 Busy flag
  *     @arg FLASH_FLAG_WBNE_BANK2     : Write Buffer Not Empty on Bank 2 flag
  *     @arg FLASH_FLAG_QW_BANK2       : Wait Queue on Bank 2 flag
  *     @arg FLASH_FLAG_CRC_BUSY_BANK2 : CRC module is working on Bank 2 flag
  *     @arg FLASH_FLAG_EOP_BANK2      : End Of Program on Bank 2 flag
  *     @arg FLASH_FLAG_WRPERR_BANK2   : Write Protection Error on Bank 2 flag
  *     @arg FLASH_FLAG_PGSERR_BANK2   : Program Sequence Error on Bank 2 flag
  *     @arg FLASH_FLAG_STRBER_BANK2   : Program Alignment Error on Bank 2 flag
  *     @arg FLASH_FLAG_INCERR_BANK2   : Inconsistency Error on Bank 2 flag
  *     @arg FLASH_FLAG_OPERR_BANK2    : Operation Error on Bank 2 flag
  *     @arg FLASH_FLAG_RDPERR_BANK2   : Read Protection Error on Bank 2 flag
  *     @arg FLASH_FLAG_RDSERR_BANK2   : Read secure  Error on Bank 2 flag
  *     @arg FLASH_FLAG_SNECCE_BANK2   : Single ECC Error Correction on Bank 2 flag
  *     @arg FLASH_FLAG_DBECCE_BANK2   : Double Detection ECC Error on Bank 2 flag
  *     @arg FLASH_FLAG_CRCEND_BANK2   : CRC End on Bank 2 flag
  *     @arg FLASH_FLAG_CRCRDERR_BANK2 : CRC Read error on Bank 2 flag
  * @retval The new state of FLASH_FLAG (SET or RESET).
  */
# 654 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h"
/**
  * @brief  Clear the specified FLASH flag.
  * @param  __FLAG__: specifies the FLASH flags to clear.
  *    In case of Bank 1, this parameter can be any combination of the following values:
  *     @arg FLASH_FLAG_EOP_BANK1        : End Of Program on Bank 1 flag
  *     @arg FLASH_FLAG_WRPERR_BANK1     : Write Protection Error on Bank 1 flag
  *     @arg FLASH_FLAG_PGSERR_BANK1     : Program Sequence Error on Bank 1 flag
  *     @arg FLASH_FLAG_STRBER_BANK1     : Program Alignment Error on Bank 1 flag
  *     @arg FLASH_FLAG_INCERR_BANK1     : Inconsistency Error on Bank 1 flag
  *     @arg FLASH_FLAG_OPERR_BANK1      : Operation Error on Bank 1 flag
  *     @arg FLASH_FLAG_RDPERR_BANK1     : Read Protection Error on Bank 1 flag
  *     @arg FLASH_FLAG_RDSERR_BANK1     : Read secure  Error on Bank 1 flag
  *     @arg FLASH_FLAG_SNECCE_BANK1     : Single ECC Error Correction on Bank 1 flag
  *     @arg FLASH_FLAG_DBECCE_BANK1     : Double Detection ECC Error on Bank 1 flag
  *     @arg FLASH_FLAG_CRCEND_BANK1     : CRC End on Bank 1 flag
  *     @arg FLASH_FLAG_CRCRDERR_BANK1   : CRC Read error on Bank 1 flag
  *     @arg FLASH_FLAG_ALL_ERRORS_BANK1 : All Bank 1 error flags
  *     @arg FLASH_FLAG_ALL_BANK1        : All Bank 1 flags
  *
  *   In case of Bank 2, this parameter can be any combination of the following values :
  *     @arg FLASH_FLAG_EOP_BANK2        : End Of Program on Bank 2 flag
  *     @arg FLASH_FLAG_WRPERR_BANK2     : Write Protection Error on Bank 2 flag
  *     @arg FLASH_FLAG_PGSERR_BANK2     : Program Sequence Error on Bank 2 flag
  *     @arg FLASH_FLAG_STRBER_BANK2     : Program Alignment Error on Bank 2 flag
  *     @arg FLASH_FLAG_INCERR_BANK2     : Inconsistency Error on Bank 2 flag
  *     @arg FLASH_FLAG_OPERR_BANK2      : Operation Error on Bank 2 flag
  *     @arg FLASH_FLAG_RDPERR_BANK2     : Read Protection Error on Bank 2 flag
  *     @arg FLASH_FLAG_RDSERR_BANK2     : Read secure  Error on Bank 2 flag
  *     @arg FLASH_FLAG_SNECCE_BANK2     : Single ECC Error Correction on Bank 2 flag
  *     @arg FLASH_FLAG_DBECCE_BANK2     : Double Detection ECC Error on Bank 2 flag
  *     @arg FLASH_FLAG_CRCEND_BANK2     : CRC End on Bank 2 flag
  *     @arg FLASH_FLAG_CRCRDERR_BANK2   : CRC Read error on Bank 2 flag
  *     @arg FLASH_FLAG_ALL_ERRORS_BANK2 : All Bank 2 error flags
  *     @arg FLASH_FLAG_ALL_BANK2        : All Bank 2 flags
  * @retval none
  */
# 702 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h"
/**
  * @}
  */

/* Include FLASH HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_flash_ex.h
  * @author  MCD Application Team
  * @brief   Header file of FLASH HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file in
  * the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup FLASHEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup FLASHEx_Exported_Types FLASH Exported Types
  * @{
  */

/**
  * @brief  FLASH Erase structure definition
  */
typedef struct
{
  uint32_t TypeErase; /*!< Mass erase or sector Erase.
                             This parameter can be a value of @ref FLASHEx_Type_Erase */

  uint32_t Banks; /*!< Select banks to erase when Mass erase is enabled.
                             This parameter must be a value of @ref FLASHEx_Banks */

  uint32_t Sector; /*!< Initial FLASH sector to erase when Mass erase is disabled
                             This parameter must be a value of @ref FLASH_Sectors */

  uint32_t NbSectors; /*!< Number of sectors to be erased.
                             This parameter must be a value between 1 and (max number of sectors - value of Initial sector)*/

  uint32_t VoltageRange;/*!< The device voltage range which defines the erase parallelism
                             This parameter must be a value of @ref FLASHEx_Voltage_Range */

} FLASH_EraseInitTypeDef;


/**
  * @brief  FLASH Option Bytes Program structure definition
  */
typedef struct
{
  uint32_t OptionType; /*!< Option byte to be configured.
                                This parameter can be a value of @ref FLASHEx_Option_Type */

  uint32_t WRPState; /*!< Write protection activation or deactivation.
                                This parameter can be a value of @ref FLASHEx_WRP_State */

  uint32_t WRPSector; /*!< Specifies the sector(s) to be write protected.
                                The value of this parameter depend on device used within the same series */

  uint32_t RDPLevel; /*!< Set the read protection level.
                                This parameter can be a value of @ref FLASHEx_Option_Bytes_Read_Protection */

  uint32_t BORLevel; /*!< Set the BOR Level.
                                This parameter can be a value of @ref FLASHEx_BOR_Reset_Level */

  uint32_t USERType; /*!< User option byte(s) to be configured (used for OPTIONBYTE_USER).
                                This parameter can be a combination of @ref FLASHEx_OB_USER_Type */

  uint32_t USERConfig; /*!< Program the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY /
                                IWDG_FREEZE_STOP / IWDG_FREEZE_SANDBY / IO_HSLV / SWAP_BANK_OPT */

  uint32_t Banks; /*!< Select banks for WRP , PCROP and secure area config .
                                This parameter must be a value of @ref FLASHEx_Banks */

  uint32_t PCROPConfig; /*!< specifies if the PCROP area shall be erased or not
                                when RDP level decreased from Level 1 to Level 0 or during a mass erase.
                                This parameter must be a value of @ref FLASHEx_OB_PCROP_RDP enumeration */

  uint32_t PCROPStartAddr; /*!< PCROP Start address (used for OPTIONBYTE_PCROP).
                                This parameter must be a value between begin and end of a bank */

  uint32_t PCROPEndAddr; /*!< PCROP End address (used for OPTIONBYTE_PCROP).
                                This parameter must be a value between PCROP Start address and end of a bank */

  uint32_t BootConfig; /*!< Specifies if the Boot Address to be configured BOOT_ADD0, BOOT_ADD1
                                or both. This parameter must be a value of @ref FLASHEx_OB_BOOT_OPTION enumeration */

  uint32_t BootAddr0; /*!< Boot Address 0.
                                This parameter must be a value between begin and end of a bank */

  uint32_t BootAddr1; /*!< Boot Address 1.
                                This parameter must be a value between begin and end of a bank */

  uint32_t CM4BootConfig; /*!< specifies if the CM4 boot Address to be configured BOOT_ADD0, BOOT_ADD1
                                or both.
                                This parameter must be a value of @ref FLASHEx_OB_BOOT_OPTION enumeration */

  uint32_t CM4BootAddr0; /*!< CM4 Boot Address 0.
                                This parameter must be a value between begin and end of a bank */

  uint32_t CM4BootAddr1; /*!< CM4 Boot Address 1.
                                This parameter must be a value between begin and end of a bank */


  uint32_t SecureAreaConfig; /*!< specifies if the bank secured area shall be erased or not
                                     when RDP level decreased from Level 1 to Level 0 or during a mass erase.
                                     This parameter must be a value of @ref FLASHEx_OB_SECURE_RDP enumeration */

  uint32_t SecureAreaStartAddr; /*!< Bank Secure area Start address.
                                     This parameter must be a value between begin address and end address of bank1 */

  uint32_t SecureAreaEndAddr; /*!< Bank Secure area End address.
                                     This parameter must be a value between Secure Area Start address and end address of a bank1 */
# 149 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
} FLASH_OBProgramInitTypeDef;

/**
  * @brief  FLASH Erase structure definition
  */
typedef struct
{
  uint32_t TypeCRC; /*!< CRC Selection Type.
                              This parameter can be a value of @ref FLASHEx_CRC_Selection_Type */

  uint32_t BurstSize; /*!< CRC Burst Size.
                              This parameter can be a value of @ref FLASHEx_CRC_Burst_Size */

  uint32_t Bank; /*!< Select bank where CRC computation is enabled.
                              This parameter must be FLASH_BANK_1 or FLASH_BANK_2 */

  uint32_t Sector; /*!< Initial FLASH sector from which starts the CRC computation
                              This parameter must be a value of @ref FLASH_Sectors */

  uint32_t NbSectors; /*!< Number of sectors to be computed.
                              This parameter must be a value between 1 and (max number of sectors - value of Initial sector)*/

  uint32_t CRCStartAddr; /*!< CRC Start address.
                              This parameter must be a value between begin address and end address of a bank */

  uint32_t CRCEndAddr; /*!< CRC End address.
                              This parameter must be a value between CRC Start address and end address of a bank */

} FLASH_CRCInitTypeDef;
# 193 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @}
  */
/* Exported constants --------------------------------------------------------*/

/** @defgroup FLASHEx_Exported_Constants FLASH Exported Constants
  * @{
  */

/** @defgroup FLASHEx_Type_Erase FLASH Type Erase
  * @{
  */


/**
  * @}
  */


/** @defgroup FLASHEx_Voltage_Range FLASH Voltage Range
  * @{
  */




/**
  * @}
  */


/** @defgroup FLASHEx_WRP_State FLASH WRP State
  * @{
  */


/**
  * @}
  */
# 245 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/** @defgroup FLASHEx_Option_Type FLASH Option Type
  * @{
  */
# 288 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @}
  */

/** @defgroup FLASHEx_Option_Bytes_Read_Protection FLASH Option Bytes Read Protection
  * @{
  */




/**
  * @}
  */

/** @defgroup FLASHEx_Option_Bytes_IWatchdog FLASH Option Bytes IWatchdog
  * @{
  */


/**
  * @}
  */

/** @defgroup FLASHEx_Option_Bytes_nRST_STOP FLASH Option Bytes nRST_STOP
  * @{
  */


/**
  * @}
  */

/** @defgroup FLASHEx_Option_Bytes_nRST_STDBY FLASH Option Bytes nRST_STDBY
  * @{
  */


/**
  * @}
  */

/** @defgroup FLASHEx_Option_Bytes_IWDG_FREEZE_STOP FLASH IWDG Counter Freeze in STOP
  * @{
  */


/**
  * @}
  */

/** @defgroup FLASHEx_Option_Bytes_IWDG_FREEZE_SANDBY FLASH IWDG Counter Freeze in STANDBY
  * @{
  */


/**
  * @}
  */

/** @defgroup FLASHEx_BOR_Reset_Level FLASH BOR Reset Level
  * @{
  */




/**
  * @}
  */



/** @defgroup FLASHEx_Boot_Address FLASH Boot Address
  * @{
  */







/**
  * @}
  */

/** @defgroup FLASH_Latency FLASH Latency
  * @{
  */
# 387 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/* Unused FLASH Latency defines */
# 396 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @}
  */

/** @defgroup FLASHEx_Banks FLASH Banks
  * @{
  */





/**
  * @}
  */

/** @defgroup FLASHEx_OB_PCROP_RDP  FLASHEx OB PCROP RDP
  * @{
  */





/**
  * @}
  */

/** @defgroup FLASHEx_Option_Bytes_Write_Protection FLASH Option Bytes Write Protection
  * @{
  */
# 472 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @}
  */

/** @defgroup FLASHEx_OB_SECURITY  FLASHEx OB SECURITY
  * @{
  */


/**
  * @}
  */

/** @defgroup FLASHEx_OB_ST_RAM_SIZE  FLASHEx OB ST RAM SIZE
  * @{
  */




/**
  * @}
  */


/** @defgroup FLASHEx_OB_BCM7  FLASHEx OB BCM7
  * @{
  */



/**
  * @}
  */

/** @defgroup FLASHEx_OB_BCM4  FLASHEx OB BCM4
  * @{
  */


/**
  * @}
  */


/** @defgroup FLASHEx_OB_IWDG1_SW  FLASHEx OB IWDG1 SW
  * @{
  */


/**
  * @}
  */


/** @defgroup FLASHEx_OB_IWDG2_SW  FLASHEx OB IWDG2 SW
  * @{
  */


/**
  * @}
  */


/** @defgroup FLASHEx_OB_NRST_STOP_D1  FLASHEx OB NRST STOP D1
  * @{
  */


/**
  * @}
  */

/** @defgroup FLASHEx_OB_NRST_STDBY_D1  FLASHEx OB NRST STDBY D1
  * @{
  */


/**
  * @}
  */


/** @defgroup FLASHEx_OB_NRST_STOP_D2  FLASHEx OB NRST STOP D2
  * @{
  */


/**
  * @}
  */

/** @defgroup FLASHEx_OB_NRST_STDBY_D2  FLASHEx OB NRST STDBY D2
  * @{
  */


/**
  * @}
  */



/** @defgroup FLASHEx_OB_SWAP_BANK  FLASHEx OB SWAP BANK
  * @{
  */


/**
  * @}
  */


/** @defgroup FLASHEx_OB_IOHSLV FLASHEx OB IOHSLV
  * @{
  */


/**
  * @}
  */
# 630 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
 /** @defgroup FLASHEx_OB_USER_Type  FLASHEx OB USER Type
  * @{
  */
# 691 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @}
  */

/** @defgroup FLASHEx_OB_BOOT_OPTION  FLASHEx OB BOOT OPTION
  * @{
  */



/**
  * @}
  */

/** @defgroup FLASHEx_OB_SECURE_RDP  FLASHEx OB SECURE RDP
  * @{
  */




/**
  * @}
  */

/** @defgroup FLASHEx_CRC_Selection_Type FLASH CRC Selection Type
  * @{
  */



/**
  * @}
  */

/** @defgroup FLASHEx_CRC_Burst_Size FLASH CRC Burst Size
  * @{
  */




/**
  * @}
  */

/** @defgroup FLASHEx_Programming_Delay FLASH Programming Delay
  * @{
  */




/**
  * @}
  */
# 773 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup FLASHEx_Exported_Macros FLASH Exported Macros
  * @{
  */
/**
  * @brief  Calculate the FLASH Boot Base Address (BOOT_ADD0 or BOOT_ADD1)
  * @note   Returned value BOOT_ADDx[15:0] corresponds to boot address [29:14].
  * @param  __ADDRESS__: FLASH Boot Address (in the range 0x0000 0000 to 0x2004 FFFF with a granularity of 16KB)
  * @retval The FLASH Boot Base Address
  */



/**
  * @brief  Set the FLASH Program/Erase parallelism.
  * @param  __PSIZE__ FLASH Program/Erase parallelism
  *         This parameter can be a value of @ref FLASH_Program_Parallelism
  * @param  __BANK__: Flash bank (FLASH_BANK_1 or FLASH_BANK_2)
  * @retval none
  */
# 805 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @brief  Get the FLASH Program/Erase parallelism.
  * @param  __BANK__ Flash bank (FLASH_BANK_1 or FLASH_BANK_2)
  * @retval FLASH Program/Erase parallelism
  *         This return value can be a value of @ref FLASH_Program_Parallelism
  */
# 821 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @brief  Set the FLASH Programming Delay.
  * @param  __DELAY__ FLASH Programming Delay
  *         This parameter can be a value of @ref FLASHEx_Programming_Delay
  * @retval none
  */


/**
  * @brief  Get the FLASH Programming Delay.
  * @retval FLASH Programming Delay
  *         This return value can be a value of @ref FLASHEx_Programming_Delay
  */

 /**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup FLASHEx_Exported_Functions
  * @{
  */

/** @addtogroup FLASHEx_Exported_Functions_Group1
  * @{
  */
/* Extension Program operation functions  *************************************/
HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError);
HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit);
HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit);
void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit);

HAL_StatusTypeDef HAL_FLASHEx_Unlock_Bank1(void);
HAL_StatusTypeDef HAL_FLASHEx_Lock_Bank1(void);

HAL_StatusTypeDef HAL_FLASHEx_Unlock_Bank2(void);
HAL_StatusTypeDef HAL_FLASHEx_Lock_Bank2(void);


HAL_StatusTypeDef HAL_FLASHEx_ComputeCRC(FLASH_CRCInitTypeDef *pCRCInit, uint32_t *CRC_Result);

/**
  * @}
  */
# 898 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @}
  */
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/** @defgroup FLASHEx_Private_Macros FLASHEx Private Macros
  * @{
  */

/** @defgroup FLASHEx_IS_FLASH_Definitions FLASHEx Private macros to check input parameters
  * @{
  */
# 1041 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash_ex.h"
/**
  * @}
  */

/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions
  * @{
  */
void FLASH_Erase_Sector(uint32_t Sector, uint32_t Banks, uint32_t VoltageRange);
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 708 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup FLASH_Exported_Functions
  * @{
  */
/** @addtogroup FLASH_Exported_Functions_Group1
  * @{
  */
/* Program operation functions  ***********************************************/
HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t FlashAddress, uint32_t DataAddress);
HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t FlashAddress, uint32_t DataAddress);
/* FLASH IRQ handler method */
void HAL_FLASH_IRQHandler(void);
/* Callbacks in non blocking modes */
void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue);
void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue);
/**
  * @}
  */

/** @addtogroup FLASH_Exported_Functions_Group2
  * @{
  */
/* Peripheral Control functions  **********************************************/
HAL_StatusTypeDef HAL_FLASH_Unlock(void);
HAL_StatusTypeDef HAL_FLASH_Lock(void);
HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void);
HAL_StatusTypeDef HAL_FLASH_OB_Lock(void);
/* Option bytes control */
HAL_StatusTypeDef HAL_FLASH_OB_Launch(void);
/**
  * @}
  */

/** @addtogroup FLASH_Exported_Functions_Group3
  * @{
  */
/* Peripheral State functions  ************************************************/
uint32_t HAL_FLASH_GetError(void);
/**
  * @}
  */

/**
  * @}
  */
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/** @defgroup FLASH_Private_Variables FLASH Private Variables
  * @{
  */
extern FLASH_ProcessTypeDef pFlash;
/**
  * @}
  */
/* Private constants ---------------------------------------------------------*/
/** @defgroup FLASH_Private_Constants FLASH Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup FLASH_Private_Macros FLASH Private Macros
  * @{
  */
# 834 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_flash.h"
/**
  * @}
  */
/* Private functions ---------------------------------------------------------*/
/** @defgroup FLASH_Private_Functions FLASH Private functions
  * @{
  */
HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout, uint32_t Bank);
HAL_StatusTypeDef FLASH_OB_WaitForLastOperation(uint32_t Timeout);
HAL_StatusTypeDef FLASH_CRC_WaitForLastOperation(uint32_t Timeout, uint32_t Bank);
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 339 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gfxmmu.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_gfxmmu.h
  * @author  MCD Application Team
  * @brief   Header file of GFXMMU HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gfxmmu.h" 2
# 447 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_gfxmmu.h"
}
# 343 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fmac.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_fmac.h
  * @author  MCD Application Team
  * @brief   Header for stm32h7xx_hal_fmac.c module
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fmac.h" 2
# 720 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_fmac.h"
}
# 347 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_hrtim.h
  * @author  MCD Application Team
  * @brief   Header file of HRTIM HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h" 2


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup HRTIM HRTIM
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @addtogroup HRTIM_Exported_Constants HRTIM Exported Constants
  * @{
  */
/** @defgroup HRTIM_Max_Timer HRTIM Max Timer
  * @{
  */

/**
  * @}
  */
/**
  * @}
  */

/** @defgroup HRTIM_Exported_Types HRTIM Exported Types
  * @{
  */

/**
  * @brief  HRTIM Configuration Structure definition - Time base related parameters
  */
typedef struct
{
  uint32_t HRTIMInterruptRequests; /*!< Specifies which interrupts requests must enabled for the HRTIM instance.
                                          This parameter can be any combination of  @ref HRTIM_Common_Interrupt_Enable */
  uint32_t SyncOptions; /*!< Specifies how the HRTIM instance handles the external synchronization signals.
                                          The HRTIM instance can be configured to act as a slave (waiting for a trigger
                                          to be synchronized) or a master (generating a synchronization signal) or both.
                                          This parameter can be a combination of @ref HRTIM_Synchronization_Options.*/
  uint32_t SyncInputSource; /*!< Specifies the external synchronization input source (significant only when
                                          the HRTIM instance is configured as a slave).
                                          This parameter can be a value of @ref HRTIM_Synchronization_Input_Source. */
  uint32_t SyncOutputSource; /*!< Specifies the source and event to be sent on the external synchronization outputs
                                         (significant only when the HRTIM instance is configured as a master).
                                          This parameter can be a value of @ref HRTIM_Synchronization_Output_Source */
  uint32_t SyncOutputPolarity; /*!< Specifies the conditioning of the event to be sent on the external synchronization
                                          outputs (significant only when the HRTIM instance is configured as a master).
                                          This parameter can be a value of @ref HRTIM_Synchronization_Output_Polarity */
} HRTIM_InitTypeDef;

/**
  * @brief  HAL State structures definition
  */
typedef enum
{
  HAL_HRTIM_STATE_RESET = 0x00U,
  HAL_HRTIM_STATE_READY = 0x01U,
  HAL_HRTIM_STATE_BUSY = 0x02U,
  HAL_HRTIM_STATE_TIMEOUT = 0x06U,
  HAL_HRTIM_STATE_ERROR = 0x07U,



} HAL_HRTIM_StateTypeDef;

/**
  * @brief HRTIM Timer Structure definition
  */
typedef struct
{
  uint32_t CaptureTrigger1; /*!< Event(s) triggering capture unit 1.
                                       When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
                                       When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
  uint32_t CaptureTrigger2; /*!< Event(s) triggering capture unit 2.
                                       When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
                                       When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
  uint32_t InterruptRequests;
  uint32_t DMARequests;
  uint32_t DMASrcAddress;
  uint32_t DMADstAddress;
  uint32_t DMASize;
} HRTIM_TimerParamTypeDef;

/**
  * @brief  HRTIM Handle Structure definition
  */



typedef struct

{
  HRTIM_TypeDef *Instance;

  HRTIM_InitTypeDef Init;

  HRTIM_TimerParamTypeDef TimerParam[6U];

  HAL_LockTypeDef Lock;

  volatile HAL_HRTIM_StateTypeDef State;

  DMA_HandleTypeDef *hdmaMaster;
  DMA_HandleTypeDef *hdmaTimerA;
  DMA_HandleTypeDef *hdmaTimerB;
  DMA_HandleTypeDef *hdmaTimerC;
  DMA_HandleTypeDef *hdmaTimerD;
  DMA_HandleTypeDef *hdmaTimerE;
# 169 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
} HRTIM_HandleTypeDef;

/**
  * @brief  Simple output compare mode configuration definition
  */
typedef struct
{
  uint32_t Period; /*!< Specifies the timer period.
                                          The period value must be above 3 periods of the fHRTIM clock.
                                          Maximum value is = 0xFFDFU */
  uint32_t RepetitionCounter; /*!< Specifies the timer repetition period.
                                          This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */
  uint32_t PrescalerRatio; /*!< Specifies the timer clock prescaler ratio.
                                          This parameter can be any value of @ref HRTIM_Prescaler_Ratio   */
  uint32_t Mode; /*!< Specifies the counter operating mode.
                                          This parameter can be any value of @ref HRTIM_Counter_Operating_Mode   */
} HRTIM_TimeBaseCfgTypeDef;

/**
  * @brief  Simple output compare mode configuration definition
  */
typedef struct
{
  uint32_t Mode; /*!< Specifies the output compare mode (toggle, active, inactive).
                            This parameter can be any value of of @ref HRTIM_Simple_OC_Mode */
  uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
                            The compare value must be above or equal to 3 periods of the fHRTIM clock */
  uint32_t Polarity; /*!< Specifies the output polarity.
                            This parameter can be any value of @ref HRTIM_Output_Polarity */
  uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
                            This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
} HRTIM_SimpleOCChannelCfgTypeDef;

/**
  * @brief  Simple PWM output mode configuration definition
  */
typedef struct
{
  uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
                                  The compare value must be above or equal to 3 periods of the fHRTIM clock */
  uint32_t Polarity; /*!< Specifies the output polarity.
                                 This parameter can be any value of @ref HRTIM_Output_Polarity */
  uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
                                 This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
} HRTIM_SimplePWMChannelCfgTypeDef;

/**
  * @brief  Simple capture mode configuration definition
  */
typedef struct
{
  uint32_t Event; /*!< Specifies the external event triggering the capture.
                                   This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
  uint32_t EventPolarity; /*!< Specifies the polarity of the external event (in case of level sensitivity).
                                   This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  uint32_t EventSensitivity; /*!< Specifies the sensitivity of the external event.
                                   This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
  uint32_t EventFilter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
                                   This parameter can be a value of @ref HRTIM_External_Event_Filter */
} HRTIM_SimpleCaptureChannelCfgTypeDef;

/**
  * @brief  Simple One Pulse mode configuration definition
  */
typedef struct
{
  uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
                                   The compare value must be above or equal to 3 periods of the fHRTIM clock */
  uint32_t OutputPolarity; /*!< Specifies the output polarity.
                                   This parameter can be any value of @ref HRTIM_Output_Polarity */
  uint32_t OutputIdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
                                   This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  uint32_t Event; /*!< Specifies the external event triggering the pulse generation.
                                   This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
  uint32_t EventPolarity; /*!< Specifies the polarity of the external event (in case of level sensitivity).
                                   This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  uint32_t EventSensitivity; /*!< Specifies the sensitivity of the external event.
                                   This parameter can be a value of @ref HRTIM_External_Event_Sensitivity. */
  uint32_t EventFilter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
                                   This parameter can be a value of @ref HRTIM_External_Event_Filter */
} HRTIM_SimpleOnePulseChannelCfgTypeDef;

/**
  * @brief  Timer configuration definition
  */
typedef struct
{
  uint32_t InterruptRequests; /*!< Relevant for all HRTIM timers, including the master.
                                       Specifies which interrupts requests must enabled for the timer.
                                       This parameter can be any combination of  @ref HRTIM_Master_Interrupt_Enable
                                       or @ref HRTIM_Timing_Unit_Interrupt_Enable */
  uint32_t DMARequests; /*!< Relevant for all HRTIM timers, including the master.
                                       Specifies which DMA requests must be enabled for the timer.
                                       This parameter can be any combination of  @ref HRTIM_Master_DMA_Request_Enable
                                       or @ref HRTIM_Timing_Unit_DMA_Request_Enable */
  uint32_t DMASrcAddress; /*!< Relevant for all HRTIM timers, including the master.
                                       Specifies the address of the source address of the DMA transfer */
  uint32_t DMADstAddress; /*!< Relevant for all HRTIM timers, including the master.
                                       Specifies the address of the destination address of the DMA transfer */
  uint32_t DMASize; /*!< Relevant for all HRTIM timers, including the master.
                                       Specifies the size of the DMA transfer */
  uint32_t HalfModeEnable; /*!< Relevant for all HRTIM timers, including the master.
                                        Specifies whether or not half mode is enabled
                                        This parameter can be any value of @ref HRTIM_Half_Mode_Enable  */
  uint32_t StartOnSync; /*!< Relevant for all HRTIM timers, including the master.
                                       Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled).
                                        This parameter can be any value of @ref HRTIM_Start_On_Sync_Input_Event  */
  uint32_t ResetOnSync; /*!< Relevant for all HRTIM timers, including the master.
                                        Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled).
                                        This parameter can be any value of @ref HRTIM_Reset_On_Sync_Input_Event  */
  uint32_t DACSynchro; /*!< Relevant for all HRTIM timers, including the master.
                                        Indicates whether or not the a DAC synchronization event is generated.
                                        This parameter can be any value of @ref HRTIM_DAC_Synchronization   */
  uint32_t PreloadEnable; /*!< Relevant for all HRTIM timers, including the master.
                                        Specifies whether or not register preload is enabled.
                                        This parameter can be any value of @ref HRTIM_Register_Preload_Enable  */
  uint32_t UpdateGating; /*!< Relevant for all HRTIM timers, including the master.
                                        Specifies how the update occurs with respect to a burst DMA transaction or
                                        update enable inputs (Slave timers only).
                                        This parameter can be any value of @ref HRTIM_Update_Gating   */
  uint32_t BurstMode; /*!< Relevant for all HRTIM timers, including the master.
                                        Specifies how the timer behaves during a burst mode operation.
                                        This parameter can be any value of @ref HRTIM_Timer_Burst_Mode  */
  uint32_t RepetitionUpdate; /*!< Relevant for all HRTIM timers, including the master.
                                        Specifies whether or not registers update is triggered by the repetition event.
                                        This parameter can be any value of @ref HRTIM_Timer_Repetition_Update */
  uint32_t PushPull; /*!< Relevant for Timer A to Timer E.
                                        Specifies whether or not the push-pull mode is enabled.
                                        This parameter can be any value of @ref HRTIM_Timer_Push_Pull_Mode */
  uint32_t FaultEnable; /*!< Relevant for Timer A to Timer E.
                                        Specifies which fault channels are enabled for the timer.
                                        This parameter can be a combination of @ref HRTIM_Timer_Fault_Enabling  */
  uint32_t FaultLock; /*!< Relevant for Timer A to Timer E.
                                        Specifies whether or not fault enabling status is write protected.
                                        This parameter can be a value of @ref HRTIM_Timer_Fault_Lock */
  uint32_t DeadTimeInsertion; /*!< Relevant for Timer A to Timer E.
                                        Specifies whether or not dead-time insertion is enabled for the timer.
                                        This parameter can be a value of @ref HRTIM_Timer_Deadtime_Insertion */
  uint32_t DelayedProtectionMode; /*!< Relevant for Timer A to Timer E.
                                        Specifies the delayed protection mode.
                                        This parameter can be a value of @ref HRTIM_Timer_Delayed_Protection_Mode */
  uint32_t UpdateTrigger; /*!< Relevant for Timer A to Timer E.
                                        Specifies source(s) triggering the timer registers update.
                                        This parameter can be a combination of @ref HRTIM_Timer_Update_Trigger */
  uint32_t ResetTrigger; /*!< Relevant for Timer A to Timer E.
                                        Specifies source(s) triggering the timer counter reset.
                                        This parameter can be a combination of @ref HRTIM_Timer_Reset_Trigger */
  uint32_t ResetUpdate; /*!<  Relevant for Timer A to Timer E.
                                        Specifies whether or not registers update is triggered when the timer counter is reset.
                                        This parameter can be a value of @ref HRTIM_Timer_Reset_Update */
} HRTIM_TimerCfgTypeDef;

/**
  * @brief  Compare unit configuration definition
  */
typedef struct
{
  uint32_t CompareValue; /*!< Specifies the compare value of the timer compare unit.
                                      The minimum value must be greater than or equal to 3 periods of the fHRTIM clock.
                                      The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRTIM clock */
  uint32_t AutoDelayedMode; /*!< Specifies the auto delayed mode for compare unit 2 or 4.
                                      This parameter can be a value of @ref HRTIM_Compare_Unit_Auto_Delayed_Mode */
  uint32_t AutoDelayedTimeout; /*!< Specifies compare value for timing unit 1 or 3 when auto delayed mode with time out is selected.
                                      CompareValue +  AutoDelayedTimeout must be less than 0xFFFFU */
} HRTIM_CompareCfgTypeDef;

/**
  * @brief  Capture unit configuration definition
  */
typedef struct
{
  uint32_t Trigger; /*!< Specifies source(s) triggering the capture.
                                  This parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger */
} HRTIM_CaptureCfgTypeDef;

/**
  * @brief  Output configuration definition
  */
typedef struct
{
  uint32_t Polarity; /*!< Specifies the output polarity.
                                             This parameter can be any value of @ref HRTIM_Output_Polarity */
  uint32_t SetSource; /*!< Specifies the event(s) transitioning the output from its inactive level to its active level.
                                             This parameter can be a combination of @ref HRTIM_Output_Set_Source */
  uint32_t ResetSource; /*!< Specifies the event(s) transitioning the output from its active level to its inactive level.
                                             This parameter can be a combination of @ref HRTIM_Output_Reset_Source */
  uint32_t IdleMode; /*!< Specifies whether or not the output is affected by a burst mode operation.
                                             This parameter can be any value of @ref HRTIM_Output_Idle_Mode */
  uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
                                             This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  uint32_t FaultLevel; /*!< Specifies whether the output level is active or inactive when in FAULT state.
                                             This parameter can be any value of @ref HRTIM_Output_FAULT_Level */
  uint32_t ChopperModeEnable; /*!< Indicates whether or not the chopper mode is enabled
                                             This parameter can be any value of @ref HRTIM_Output_Chopper_Mode_Enable */
  uint32_t BurstModeEntryDelayed; /*!< Indicates whether or not dead-time is inserted when entering the IDLE state during a burst mode operation.
                                             This parameters can be any value of @ref HRTIM_Output_Burst_Mode_Entry_Delayed */
} HRTIM_OutputCfgTypeDef;

/**
  * @brief  External event filtering in timing units configuration definition
  */
typedef struct
{
  uint32_t Filter; /*!< Specifies the type of event filtering within the timing unit.
                             This parameter can be a value of @ref HRTIM_Timer_External_Event_Filter */
  uint32_t Latch; /*!< Specifies whether or not the signal is latched.
                             This parameter can be a value of @ref HRTIM_Timer_External_Event_Latch */
} HRTIM_TimerEventFilteringCfgTypeDef;

/**
  * @brief  Dead time feature configuration definition
  */
typedef struct
{
  uint32_t Prescaler; /*!< Specifies the dead-time prescaler.
                                  This parameter can be a value of @ref  HRTIM_Deadtime_Prescaler_Ratio */
  uint32_t RisingValue; /*!< Specifies the dead-time following a rising edge.
                                  This parameter can be a number between 0x0 and 0x1FFU */
  uint32_t RisingSign; /*!< Specifies whether the dead-time is positive or negative on rising edge.
                                  This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign */
  uint32_t RisingLock; /*!< Specifies whether or not dead-time rising settings (value and sign) are write protected.
                                  This parameter can be a value of @ref HRTIM_Deadtime_Rising_Lock */
  uint32_t RisingSignLock; /*!< Specifies whether or not dead-time rising sign is write protected.
                                  This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign_Lock */
  uint32_t FallingValue; /*!< Specifies the dead-time following a falling edge.
                                  This parameter can be a number between 0x0 and 0x1FFU */
  uint32_t FallingSign; /*!< Specifies whether the dead-time is positive or negative on falling edge.
                                  This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign */
  uint32_t FallingLock; /*!< Specifies whether or not dead-time falling settings (value and sign) are write protected.
                                  This parameter can be a value of @ref HRTIM_Deadtime_Falling_Lock */
  uint32_t FallingSignLock; /*!< Specifies whether or not dead-time falling sign is write protected.
                                  This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign_Lock */
} HRTIM_DeadTimeCfgTypeDef;

/**
  * @brief  Chopper mode configuration definition
  */
typedef struct
{
  uint32_t CarrierFreq; /*!< Specifies the Timer carrier frequency value.
                              This parameter can be a value of @ref HRTIM_Chopper_Frequency */
  uint32_t DutyCycle; /*!< Specifies the Timer chopper duty cycle value.
                              This parameter can be a value of @ref HRTIM_Chopper_Duty_Cycle */
  uint32_t StartPulse; /*!< Specifies the Timer pulse width value.
                              This parameter can be a value of @ref HRTIM_Chopper_Start_Pulse_Width */
} HRTIM_ChopperModeCfgTypeDef;

/**
  * @brief  External event channel configuration definition
  */
typedef struct
{
  uint32_t Source; /*!< Identifies the source of the external event.
                               This parameter can be a value of @ref HRTIM_External_Event_Sources */
  uint32_t Polarity; /*!< Specifies the polarity of the external event (in case of level sensitivity).
                               This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  uint32_t Sensitivity; /*!< Specifies the sensitivity of the external event.
                               This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
  uint32_t Filter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
                               This parameter can be a value of @ref HRTIM_External_Event_Filter */
  uint32_t FastMode; /*!< Indicates whether or not low latency mode is enabled for the external event.
                               This parameter can be a value of @ref HRTIM_External_Event_Fast_Mode */
} HRTIM_EventCfgTypeDef;

/**
  * @brief  Fault channel configuration definition
  */
typedef struct
{
  uint32_t Source; /*!< Identifies the source of the fault.
                               This parameter can be a value of @ref HRTIM_Fault_Sources */
  uint32_t Polarity; /*!< Specifies the polarity of the fault event.
                               This parameter can be a value of @ref HRTIM_Fault_Polarity */
  uint32_t Filter; /*!< Defines the frequency used to sample the Fault input and the length of the digital filter.
                               This parameter can be a value of @ref HRTIM_Fault_Filter */
  uint32_t Lock; /*!< Indicates whether or not fault programming bits are write protected.
                               This parameter can be a value of @ref HRTIM_Fault_Lock */
} HRTIM_FaultCfgTypeDef;

/**
  * @brief  Burst mode configuration definition
  */
typedef struct
{
  uint32_t Mode; /*!< Specifies the burst mode operating mode.
                                This parameter can be a value of @ref HRTIM_Burst_Mode_Operating_Mode */
  uint32_t ClockSource; /*!< Specifies the burst mode clock source.
                                This parameter can be a value of @ref HRTIM_Burst_Mode_Clock_Source */
  uint32_t Prescaler; /*!< Specifies the burst mode prescaler.
                                This parameter can be a value of @ref HRTIM_Burst_Mode_Prescaler */
  uint32_t PreloadEnable; /*!< Specifies whether or not preload is enabled for burst mode related registers (HRTIM_BMCMPR and HRTIM_BMPER).
                                This parameter can be a combination of @ref HRTIM_Burst_Mode_Register_Preload_Enable  */
  uint32_t Trigger; /*!< Specifies the event(s) triggering the burst operation.
                                This parameter can be a combination of @ref HRTIM_Burst_Mode_Trigger  */
  uint32_t IdleDuration; /*!< Specifies number of periods during which the selected timers are in idle state.
                                This parameter can be a number between 0x0 and 0xFFFF  */
  uint32_t Period; /*!< Specifies burst mode repetition period.
                                This parameter can be a number between 0x1 and 0xFFFF  */
} HRTIM_BurstModeCfgTypeDef;

/**
  * @brief  ADC trigger configuration definition
  */
typedef struct
{
  uint32_t UpdateSource; /*!< Specifies the ADC trigger update source.
                               This parameter can be a value of @ref HRTIM_ADC_Trigger_Update_Source  */
  uint32_t Trigger; /*!< Specifies the event(s) triggering the ADC conversion.
                               This parameter can be a combination of @ref HRTIM_ADC_Trigger_Event  */
} HRTIM_ADCTriggerCfgTypeDef;
# 525 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup HRTIM_Exported_Constants HRTIM Exported Constants
  * @{
  */

/** @defgroup HRTIM_Timer_Index HRTIM Timer Index
  * @{
  * @brief Constants defining the timer indexes
  */







/**
  * @}
  */

/** @defgroup HRTIM_Timer_identifier HRTIM Timer identifier
  * @{
  * @brief Constants defining timer identifiers
  */






/**
  * @}
  */

/** @defgroup HRTIM_Compare_Unit HRTIM Compare Unit
  * @{
  * @brief Constants defining compare unit identifiers
  */




/**
  * @}
 */

/** @defgroup HRTIM_Capture_Unit HRTIM Capture Unit
  * @{
  * @brief Constants defining capture unit identifiers
  */


/**
  * @}
  */

/** @defgroup HRTIM_Timer_Output HRTIM Timer Output
  * @{
  * @brief Constants defining timer output identifiers
  */
# 599 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_ADC_Trigger HRTIM ADC Trigger
  * @{
  * @brief Constants defining ADC triggers identifiers
  */
# 617 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */
/** @defgroup HRTIM_External_Event_Channels HRTIM External Event Channels
  * @{
  * @brief Constants defining external event channel identifiers
  */
# 635 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Fault_Channel HRTIM Fault Channel
  * @{
  * @brief Constants defining fault channel identifiers
  */





/**
  * @}
  */


/** @defgroup HRTIM_Prescaler_Ratio HRTIM Prescaler Ratio
  * @{
  * @brief Constants defining timer high-resolution clock prescaler ratio.
 */



/**
  * @}
  */

/** @defgroup HRTIM_Counter_Operating_Mode HRTIM Counter Operating Mode
  * @{
  * @brief Constants defining timer counter operating mode.
  */



/**
  * @}
  */

/** @defgroup HRTIM_Half_Mode_Enable HRTIM Half Mode Enable
  * @{
  * @brief Constants defining half mode enabling status.
  */


/**
  * @}
  */

/** @defgroup HRTIM_Start_On_Sync_Input_Event HRTIM Start On Sync Input Event
  * @{
  * @brief Constants defining the timer behavior following the synchronization event
  */


/**
  * @}
  */

/** @defgroup HRTIM_Reset_On_Sync_Input_Event HRTIM Reset On Sync Input Event
  * @{
  * @brief Constants defining the timer behavior following the synchronization event
  */


/**
  * @}
  */

/** @defgroup HRTIM_DAC_Synchronization HRTIM DAC Synchronization
  * @{
  * @brief Constants defining on which output the DAC synchronization event is sent
  */




/**
  * @}
  */

/** @defgroup HRTIM_Register_Preload_Enable HRTIM Register Preload Enable
  * @{
  * @brief Constants defining whether a write access into a preloadable
  *        register is done into the active or the preload register.
  */


/**
  * @}
  */

/** @defgroup HRTIM_Update_Gating HRTIM Update Gating
  * @{
  * @brief Constants defining how the update occurs relatively to the burst DMA
  *        transaction and the external update request on update enable inputs 1 to 3.
  */
# 742 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Timer_Burst_Mode HRTIM Timer Burst Mode
  * @{
  * @brief Constants defining how the timer behaves during a burst
            mode operation.
  */


/**
  * @}
  */

/** @defgroup HRTIM_Timer_Repetition_Update HRTIM Timer Repetition Update
  * @{
  * @brief Constants defining whether registers are updated when the timer
  *        repetition period is completed (either due to roll-over or
  *        reset events)
  */


/**
  * @}
  */


/** @defgroup HRTIM_Timer_Push_Pull_Mode HRTIM Timer Push Pull Mode
  * @{
  * @brief Constants defining whether or not the push-pull mode is enabled for
  *        a timer.
  */


/**
  * @}
  */

/** @defgroup HRTIM_Timer_Fault_Enabling HRTIM Timer Fault Enabling
  * @{
  * @brief Constants defining whether a fault channel is enabled for a timer
  */






/**
  * @}
  */

/** @defgroup HRTIM_Timer_Fault_Lock HRTIM Timer Fault Lock
  * @{
  * @brief Constants defining whether or not fault enabling bits are write
  *        protected for a timer
  */


/**
  * @}
  */

/** @defgroup HRTIM_Timer_Deadtime_Insertion HRTIM Timer Dead-time Insertion
  * @{
  * @brief Constants defining whether or not fault the dead time insertion
  *        feature is enabled for a timer
  */


/**
  * @}
  */

/** @defgroup HRTIM_Timer_Delayed_Protection_Mode HRTIM Timer Delayed Protection Mode
  * @{
  * @brief Constants defining all possible delayed protection modes
  *        for a timer. Also define the source and outputs on which the delayed
  *        protection schemes are applied
  */
# 842 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Timer_Update_Trigger HRTIM Timer Update Trigger
  * @{
  * @brief Constants defining whether the registers update is done synchronously
  *        with any other timer or master update
  */







/**
  * @}
  */

/** @defgroup HRTIM_Timer_Reset_Trigger HRTIM Timer Reset Trigger
  * @{
  * @brief Constants defining the events that can be selected to trigger the reset
  *        of the timer counter
  */
# 898 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Timer_Reset_Update HRTIM Timer Reset Update
  * @{
  * @brief Constants defining whether the register are updated upon Timerx
  *        counter reset or roll-over to 0 after reaching the period value
  *        in continuous mode
  */


/**
  * @}
  */

/** @defgroup HRTIM_Compare_Unit_Auto_Delayed_Mode HRTIM Compare Unit Auto Delayed Mode
  * @{
  * @brief Constants defining whether the compare register is behaving in
  *        regular mode (compare match issued as soon as counter equal compare),
  *        or in auto-delayed mode
  */




/**
  * @}
  */

/** @defgroup HRTIM_Simple_OC_Mode HRTIM Simple OC Mode
  * @{
  * @brief Constants defining the behavior of the output signal when the timer
           operates in basic output compare mode
  */
# 941 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Output_Polarity HRTIM Output Polarity
  * @{
  * @brief Constants defining the polarity of a timer output
  */


/**
  * @}
  */

/** @defgroup HRTIM_Output_Set_Source HRTIM Output Set Source
  * @{
  * @brief Constants defining the events that can be selected to configure the
  *        set crossbar of a timer output
  */
# 992 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Output_Reset_Source HRTIM Output Reset Source
  * @{
  * @brief Constants defining the events that can be selected to configure the
  *        reset crossbar of a timer output
  */
# 1033 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Output_Idle_Mode HRTIM Output Idle Mode
  * @{
  * @brief Constants defining whether or not the timer output transition to its
           IDLE state when burst mode is entered
  */


/**
  * @}
 */

/** @defgroup HRTIM_Output_IDLE_Level HRTIM Output IDLE Level
  * @{
  * @brief Constants defining the output level when output is in IDLE state
  */


/**
  * @}
  */

/** @defgroup HRTIM_Output_FAULT_Level HRTIM Output FAULT Level
  * @{
  * @brief Constants defining the output level when output is in FAULT state
  */




/**
  * @}
  */

/** @defgroup HRTIM_Output_Chopper_Mode_Enable HRTIM Output Chopper Mode Enable
  * @{
  * @brief Constants defining whether or not chopper mode is enabled for a timer
           output
  */


/**
  * @}
  */

/** @defgroup HRTIM_Output_Burst_Mode_Entry_Delayed HRTIM Output Burst Mode Entry Delayed
  * @{
  * @brief Constants defining the idle mode entry is delayed by forcing a
           dead-time insertion before switching the outputs to their idle state
  */


/**
  * @}
  */


/** @defgroup HRTIM_Capture_Unit_Trigger HRTIM Capture Unit Trigger
  * @{
  * @brief Constants defining the events that can be selected to trigger the
  *        capture of the timing unit counter
  */
# 1130 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Timer_External_Event_Filter HRTIM Timer External Event Filter
  * @{
  * @brief Constants defining the event filtering applied to external events
  *        by a timer
  */
# 1155 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Timer_External_Event_Latch HRTIM Timer External Event Latch
  * @{
  * @brief Constants defining whether or not the external event is
  *        memorized (latched) and generated as soon as the blanking period
  *        is completed or the window ends
  */


/**
  * @}
  */

/** @defgroup HRTIM_Deadtime_Prescaler_Ratio HRTIM Dead-time Prescaler Ratio
  * @{
  * @brief Constants defining division ratio between the timer clock frequency
  *        (fHRTIM) and the dead-time generator clock (fDTG)
  */





/**
  * @}
  */

/** @defgroup HRTIM_Deadtime_Rising_Sign HRTIM Dead-time Rising Sign
  * @{
  * @brief Constants defining whether the dead-time is positive or negative
  *        (overlapping signal) on rising edge
  */


/**
  * @}
  */

/** @defgroup HRTIM_Deadtime_Rising_Lock HRTIM Dead-time Rising Lock
  * @{
  * @brief Constants defining whether or not the dead-time (rising sign and
  *        value) is write protected
  */


/**
  * @}
  */

/** @defgroup HRTIM_Deadtime_Rising_Sign_Lock HRTIM Dead-time Rising Sign Lock
  * @{
  * @brief Constants defining whether or not the dead-time rising sign is write
  *        protected
  */


/**
  * @}
  */

/** @defgroup HRTIM_Deadtime_Falling_Sign HRTIM Dead-time Falling Sign
  * @{
  * @brief Constants defining whether the dead-time is positive or negative
  *        (overlapping signal) on falling edge
  */


/**
  * @}
  */

/** @defgroup HRTIM_Deadtime_Falling_Lock HRTIM Dead-time Falling Lock
  * @{
  * @brief Constants defining whether or not the dead-time (falling sign and
  *        value) is write protected
  */


/**
  * @}
  */

/** @defgroup HRTIM_Deadtime_Falling_Sign_Lock HRTIM Dead-time Falling Sign Lock
  * @{
  * @brief Constants defining whether or not the dead-time falling sign is write
  *        protected
  */


/**
  * @}
  */

/** @defgroup HRTIM_Chopper_Frequency HRTIM Chopper Frequency
  * @{
  * @brief Constants defining the frequency of the generated high frequency carrier
  */
# 1271 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
 */

/** @defgroup HRTIM_Chopper_Duty_Cycle HRTIM Chopper Duty Cycle
  * @{
  * @brief Constants defining the duty cycle of the generated high frequency carrier
  *        Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8)
  */
# 1288 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Chopper_Start_Pulse_Width HRTIM Chopper Start Pulse Width
  * @{
  * @brief Constants defining the pulse width of the first pulse of the generated
  *        high frequency carrier
  */
# 1313 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Synchronization_Options HRTIM Synchronization Options
  * @{
  * @brief Constants defining the options for synchronizing multiple HRTIM
  *        instances, as a master unit (generating a synchronization signal)
  *        or as a slave (waiting for a trigger to be synchronized)
  */



/**
  * @}
  */

/** @defgroup HRTIM_Synchronization_Input_Source HRTIM Synchronization Input Source
  * @{
  * @brief Constants defining defining the synchronization input source
  */



/**
  * @}
  */

/** @defgroup HRTIM_Synchronization_Output_Source HRTIM Synchronization Output Source
  * @{
  * @brief Constants defining the source and event to be sent on the
  *        synchronization outputs
  */




/**
  * @}
  */

/** @defgroup HRTIM_Synchronization_Output_Polarity HRTIM Synchronization Output Polarity
  * @{
  * @brief Constants defining the routing and conditioning of the synchronization output event
  */



/**
  * @}
  */

/** @defgroup HRTIM_External_Event_Sources HRTIM External Event Sources
  * @{
  * @brief Constants defining available sources associated to external events
  */




/**
  * @}
  */

/** @defgroup HRTIM_External_Event_Polarity HRTIM External Event Polarity
  * @{
  * @brief Constants defining the polarity of an external event
  */


/**
  * @}
  */

/** @defgroup HRTIM_External_Event_Sensitivity HRTIM External Event Sensitivity
  * @{
  * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive)
  *        of an external event
  */




/**
  * @}
  */

/** @defgroup HRTIM_External_Event_Fast_Mode HRTIM External Event Fast Mode
  * @{
  * @brief Constants defining whether or not an external event is programmed in
           fast mode
  */


/**
  * @}
  */

/** @defgroup HRTIM_External_Event_Filter HRTIM External Event Filter
  * @{
  * @brief Constants defining the frequency used to sample an external event 6
  *        input and the length (N) of the digital filter applied
  */
# 1432 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_External_Event_Prescaler HRTIM External Event Prescaler
  * @{
  * @brief Constants defining division ratio between the timer clock frequency
  *        fHRTIM) and the external event signal sampling clock (fEEVS)
  *        used by the digital filters
  */




/**
  * @}
  */

/** @defgroup HRTIM_Fault_Sources HRTIM Fault Sources
  * @{
  * @brief Constants defining whether a fault is triggered by any external
  *        or internal fault source
  */


/**
  * @}
  */

/** @defgroup HRTIM_Fault_Polarity HRTIM Fault Polarity
  * @{
  * @brief Constants defining the polarity of a fault event
  */


/**
  * @}
  */

/** @defgroup HRTIM_Fault_Filter HRTIM Fault Filter
  * @{
  * @ brief Constants defining the frequency used to sample the fault input and
  *         the length (N) of the digital filter applied
  */
# 1492 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Fault_Lock HRTIM Fault Lock
  * @{
  * @brief Constants defining whether or not the fault programming bits are
           write protected
  */


/**
  * @}
  */

/** @defgroup HRTIM_External_Fault_Prescaler HRTIM External Fault Prescaler
  * @{
  * @brief Constants defining the division ratio between the timer clock
  *        frequency (fHRTIM) and the fault signal sampling clock (fFLTS) used
  *        by the digital filters.
  */




/**
  * @}
  */

/** @defgroup HRTIM_Burst_Mode_Operating_Mode HRTIM Burst Mode Operating Mode
  * @{
  * @brief Constants defining if the burst mode is entered once or if it is
  *        continuously operating
  */


/**
  * @}
  */

/** @defgroup HRTIM_Burst_Mode_Clock_Source HRTIM Burst Mode Clock Source
  * @{
  * @brief Constants defining the clock source for the burst mode counter
  */
# 1546 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Burst_Mode_Prescaler HRTIM Burst Mode Prescaler
  * @{
  * @brief Constants defining the prescaling ratio of the fHRTIM clock
  *        for the burst mode controller
  */
# 1571 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Burst_Mode_Register_Preload_Enable HRTIM Burst Mode Register Preload Enable
  * @{
  * @brief Constants defining whether or not burst mode registers preload
           mechanism is enabled, i.e. a write access into a preloadable register
          (HRTIM_BMCMPR, HRTIM_BMPER) is done into the active or the preload register
  */


/**
  * @}
  */

/** @defgroup HRTIM_Burst_Mode_Trigger HRTIM Burst Mode Trigger
  * @{
  * @brief Constants defining the events that can be used to trig the burst
  *        mode operation
  */
# 1624 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_ADC_Trigger_Update_Source HRTIM ADC Trigger Update Source
  * @{
  * @brief constants defining the source triggering the update of the
     HRTIM_ADCxR register (transfer from preload to active register).
  */






/**
  * @}
  */

/** @defgroup HRTIM_ADC_Trigger_Event HRTIM ADC Trigger Event
  * @{
  * @brief constants defining the events triggering ADC conversion.
  *        HRTIM_ADCTRIGGEREVENT13_*: ADC Triggers 1 and 3
  *        HRTIM_ADCTRIGGEREVENT24_*: ADC Triggers 2 and 4
  */
# 1717 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Burst_DMA_Registers_Update HRTIM Burst DMA Registers Update
  * @{
  * @brief Constants defining the registers that can be written during a burst
  *        DMA operation
  */
# 1748 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Burst_Mode_Control HRTIM Burst Mode Control
  * @{
  * @brief Constants used to enable or disable the burst mode controller
  */


/**
  * @}
  */

/** @defgroup HRTIM_Fault_Mode_Control  HRTIM Fault Mode Control
  * @{
  * @brief Constants used to enable or disable a fault channel
  */


/**
  * @}
  */

/** @defgroup HRTIM_Software_Timer_Update HRTIM Software Timer Update
  * @{
  * @brief Constants used to force timer registers update
  */






/**
  * @}
  */

/** @defgroup HRTIM_Software_Timer_Reset HRTIM Software Timer Reset
  * @{
  * @brief Constants used to force timer counter reset
  */






/**
  * @}
  */

/** @defgroup HRTIM_Output_Level HRTIM Output Level
  * @{
  * @brief Constants defining the level of a timer output
  */






/**
  * @}
  */

/** @defgroup HRTIM_Output_State HRTIM Output State
  * @{
  * @brief Constants defining the state of a timer output
  */






/**
  * @}
  */

/** @defgroup HRTIM_Burst_Mode_Status HRTIM Burst Mode Status
  * @{
  * @brief Constants defining the operating state of the burst mode controller
  */


/**
  * @}
  */

/** @defgroup HRTIM_Current_Push_Pull_Status HRTIM Current Push Pull Status
  * @{
  * @brief Constants defining on which output the signal is currently applied
  *        in push-pull mode
  */


/**
  * @}
  */

/** @defgroup HRTIM_Idle_Push_Pull_Status HRTIM Idle Push Pull Status
  * @{
  * @brief Constants defining on which output the signal was applied, in
  *        push-pull mode balanced fault mode or delayed idle mode, when the
  *        protection was triggered
  */


/**
  * @}
  */

/** @defgroup HRTIM_Common_Interrupt_Enable HRTIM Common Interrupt Enable
  * @{
  */
# 1872 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Master_Interrupt_Enable HRTIM Master Interrupt Enable
  * @{
  */
# 1887 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Timing_Unit_Interrupt_Enable HRTIM Timing Unit Interrupt Enable
  * @{
  */
# 1909 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Common_Interrupt_Flag HRTIM Common Interrupt Flag
  * @{
  */







/**
  * @}
  */

/** @defgroup HRTIM_Master_Interrupt_Flag HRTIM Master Interrupt Flag
  * @{
  */







/**
  * @}
  */

/** @defgroup HRTIM_Timing_Unit_Interrupt_Flag HRTIM Timing Unit Interrupt Flag
  * @{
  */
# 1958 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Master_DMA_Request_Enable HRTIM Master DMA Request Enable
  * @{
  */
# 1973 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/** @defgroup HRTIM_Timing_Unit_DMA_Request_Enable HRTIM Timing Unit DMA Request Enable
  * @{
  */
# 1995 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/**
  * @}
  */

/* Private macros --------------------------------------------------------*/
/** @addtogroup HRTIM_Private_Macros
  * @{
  */
# 2182 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/* Auto delayed mode is only available for compare units 2 and 4U */
# 2739 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup HRTIM_Exported_Macros HRTIM Exported Macros
  * @{
  */

/** @brief Reset HRTIM handle state
  * @param  __HANDLE__ HRTIM handle.
  * @retval None
  */
# 2762 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/** @brief  Enables or disables the timer counter(s)
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __TIMERS__ timers to enable/disable
  *        This parameter can be any combinations of the following values:
  *            @arg HRTIM_TIMERID_MASTER: Master timer identifier
  *            @arg HRTIM_TIMERID_TIMER_A: Timer A identifier
  *            @arg HRTIM_TIMERID_TIMER_B: Timer B identifier
  *            @arg HRTIM_TIMERID_TIMER_C: Timer C identifier
  *            @arg HRTIM_TIMERID_TIMER_D: Timer D identifier
  *            @arg HRTIM_TIMERID_TIMER_E: Timer E identifier
  * @retval None
  */


/* The counter of a timing unit is disabled only if all the timer outputs */
/* are disabled and no capture is configured                              */
# 2827 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/** @brief  Enables or disables the specified HRTIM common interrupts.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
  *            @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
  *            @arg HRTIM_IT_FLT3: Fault 3 interrupt enable
  *            @arg HRTIM_IT_FLT4: Fault 4 interrupt enable
  *            @arg HRTIM_IT_FLT5: Fault 5 interrupt enable
  *            @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
  *            @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
  * @retval None
  */



/** @brief  Enables or disables the specified HRTIM Master timer interrupts.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  *            @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  *            @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  *            @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  *            @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  *            @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  *            @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  * @retval None
  */





/** @brief  Enables or disables the specified HRTIM Timerx interrupts.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __TIMER__ specified the timing unit (Timer A to E)
  * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
  *            @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
  *            @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
  *            @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
  *            @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
  *            @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
  *            @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
  *            @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
  *            @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
  *            @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
  *            @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
  *            @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
  *            @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
  *            @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
  * @retval None
  */



/** @brief  Checks if the specified HRTIM common interrupt  source  is enabled or disabled.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to check.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
  *            @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
  *            @arg HRTIM_IT_FLT3: Fault 3 enable
  *            @arg HRTIM_IT_FLT4: Fault 4 enable
  *            @arg HRTIM_IT_FLT5: Fault 5 enable
  *            @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
  *            @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
  * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  */



/** @brief  Checks if the specified HRTIM Master interrupt source  is enabled or disabled.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to check.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  *            @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  *            @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  *            @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  *            @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  *            @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  *            @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  */



/** @brief  Checks if the specified HRTIM Timerx interrupt source  is enabled or disabled.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __TIMER__ specified the timing unit (Timer A to E)
  * @param  __INTERRUPT__ specifies the interrupt source to check.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  *            @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  *            @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  *            @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  *            @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  *            @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  *            @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  *            @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
  *            @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
  *            @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
  *            @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
  *            @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
  *            @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
  *            @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
  *            @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
  *            @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
  *            @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
  *            @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
  *            @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
  *            @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
  *            @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
  * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  */



/** @brief  Clears the specified HRTIM common pending flag.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_IT_FLT1: Fault 1 interrupt clear flag
  *            @arg HRTIM_IT_FLT2: Fault 2 interrupt clear flag
  *            @arg HRTIM_IT_FLT3: Fault 3 clear flag
  *            @arg HRTIM_IT_FLT4: Fault 4 clear flag
  *            @arg HRTIM_IT_FLT5: Fault 5 clear flag
  *            @arg HRTIM_IT_SYSFLT: System Fault interrupt clear flag
  *            @arg HRTIM_IT_BMPER: Burst mode period interrupt clear flag
  * @retval None
  */


/** @brief  Clears the specified HRTIM Master pending flag.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt clear flag
  *            @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt clear flag
  *            @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt clear flag
  *            @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt clear flag
  *            @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt clear flag
  *            @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt clear flag
  *            @arg HRTIM_MASTER_IT_MUPD: Master update interrupt clear flag
  * @retval None
  */



/** @brief  Clears the specified HRTIM Timerx pending flag.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __TIMER__ specified the timing unit (Timer A to E)
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt clear flag
  *            @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt clear flag
  *            @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt clear flag
  *            @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt clear flag
  *            @arg HRTIM_TIM_IT_REP: Timer repetition interrupt clear flag
  *            @arg HRTIM_TIM_IT_UPD: Timer update interrupt clear flag
  *            @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt clear flag
  *            @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt clear flag
  *            @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt clear flag
  *            @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt clear flag
  *            @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt clear flag
  *            @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt clear flag
  *            @arg HRTIM_TIM_IT_RST: Timer reset interrupt clear flag
  *            @arg HRTIM_TIM_IT_DLYPRT: Timer output 1 delay protection interrupt clear flag
  * @retval None
  */



/* DMA HANDLING */
/** @brief  Enables or disables the specified HRTIM Master timer DMA requests.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __DMA__ specifies the DMA request to enable or disable.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_MASTER_DMA_MCMP1: Master compare 1 DMA request enable
  *            @arg HRTIM_MASTER_DMA_MCMP2: Master compare 2 DMA request enable
  *            @arg HRTIM_MASTER_DMA_MCMP3: Master compare 3 DMA request enable
  *            @arg HRTIM_MASTER_DMA_MCMP4: Master compare 4 DMA request enable
  *            @arg HRTIM_MASTER_DMA_MREP: Master Repetition DMA request enable
  *            @arg HRTIM_MASTER_DMA_SYNC: Synchronization input DMA request enable
  *            @arg HRTIM_MASTER_DMA_MUPD: Master update DMA request enable
  * @retval None
  */



/** @brief  Enables or disables the specified HRTIM Timerx DMA requests.
  * @param  __HANDLE__ specifies the HRTIM Handle.
  * @param  __TIMER__ specified the timing unit (Timer A to E)
  * @param  __DMA__ specifies the DMA request to enable or disable.
  *        This parameter can be one of the following values:
  *            @arg HRTIM_TIM_DMA_CMP1: Timer compare 1 DMA request enable
  *            @arg HRTIM_TIM_DMA_CMP2: Timer compare 2 DMA request enable
  *            @arg HRTIM_TIM_DMA_CMP3: Timer compare 3 DMA request enable
  *            @arg HRTIM_TIM_DMA_CMP4: Timer compare 4 DMA request enable
  *            @arg HRTIM_TIM_DMA_REP: Timer repetition DMA request enable
  *            @arg HRTIM_TIM_DMA_UPD: Timer update DMA request enable
  *            @arg HRTIM_TIM_DMA_CPT1: Timer capture 1 DMA request enable
  *            @arg HRTIM_TIM_DMA_CPT2: Timer capture 2 DMA request enable
  *            @arg HRTIM_TIM_DMA_SET1: Timer output 1 set DMA request enable
  *            @arg HRTIM_TIM_DMA_RST1: Timer output 1 reset DMA request enable
  *            @arg HRTIM_TIM_DMA_SET2: Timer output 2 set DMA request enable
  *            @arg HRTIM_TIM_DMA_RST2: Timer output 2 reset DMA request enable
  *            @arg HRTIM_TIM_DMA_RST: Timer reset DMA request enable
  *            @arg HRTIM_TIM_DMA_DLYPRT: Timer delay protection DMA request enable
  * @retval None
  */
# 3057 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/** @brief  Sets the HRTIM timer Counter Register value on runtime
  * @param  __HANDLE__ HRTIM Handle.
  * @param  __TIMER__ HRTIM timer
  *                   This parameter can be one of the following values:
  *                   @arg 0x5 for master timer
  *                   @arg 0x0 to 0x4 for timers A to E
  * @param  __COUNTER__ specifies the Counter Register new value.
  * @retval None
  */




/** @brief  Gets the HRTIM timer Counter Register value on runtime
  * @param  __HANDLE__ HRTIM Handle.
  * @param  __TIMER__ HRTIM timer
  *                   This parameter can be one of the following values:
  *                   @arg 0x5 for master timer
  *                   @arg 0x0 to 0x4 for timers A to E
  * @retval HRTIM timer Counter Register value
  */




/** @brief  Sets the HRTIM timer Period value on runtime
  * @param  __HANDLE__ HRTIM Handle.
  * @param  __TIMER__ HRTIM timer
  *                   This parameter can be one of the following values:
  *                   @arg 0x5 for master timer
  *                   @arg 0x0 to 0x4 for timers A to E
  * @param  __PERIOD__ specifies the Period Register new value.
  * @retval None
  */




/** @brief  Gets the HRTIM timer Period Register value on runtime
  * @param  __HANDLE__ HRTIM Handle.
  * @param  __TIMER__ HRTIM timer
  *                   This parameter can be one of the following values:
  *                   @arg 0x5 for master timer
  *                   @arg 0x0 to 0x4 for timers A to E
  * @retval timer Period Register
  */




/** @brief  Sets the HRTIM timer clock prescaler value on runtime
  * @param  __HANDLE__ HRTIM Handle.
  * @param  __TIMER__ HRTIM timer
  *                   This parameter can be one of the following values:
  *                   @arg 0x5 for master timer
  *                   @arg 0x0 to 0x4 for timers A to E
  * @param  __PRESCALER__ specifies the clock prescaler new value.
  *                   This parameter can be one of the following values:
  *                   @arg HRTIM_PRESCALERRATIO_DIV1: fHRCK: 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz)
  *                   @arg HRTIM_PRESCALERRATIO_DIV2: fHRCK: 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz)
  *                   @arg HRTIM_PRESCALERRATIO_DIV4: fHRCK: 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz)
  * @retval None
  */




/** @brief  Gets the HRTIM timer clock prescaler value on runtime
  * @param  __HANDLE__ HRTIM Handle.
  * @param  __TIMER__ HRTIM timer
  *                   This parameter can be one of the following values:
  *                   @arg 0x5 for master timer
  *                   @arg 0x0 to 0x4 for timers A to E
  * @retval timer clock prescaler value
  */




/** @brief  Sets the HRTIM timer Compare Register value on runtime
  * @param  __HANDLE__ HRTIM Handle.
  * @param  __TIMER__ HRTIM timer
  *                   This parameter can be one of the following values:
  *                   @arg 0x0 to 0x4 for timers A to E
  * @param  __COMPAREUNIT__ timer compare unit
  *                   This parameter can be one of the following values:
  *                   @arg HRTIM_COMPAREUNIT_1: Compare unit 1
  *                   @arg HRTIM_COMPAREUNIT_2: Compare unit 2
  *                   @arg HRTIM_COMPAREUNIT_3: Compare unit 3
  *                   @arg HRTIM_COMPAREUNIT_4: Compare unit 4
  * @param  __COMPARE__ specifies the Compare new value.
  * @retval None
  */
# 3162 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/** @brief  Gets the HRTIM timer Compare Register value on runtime
  * @param  __HANDLE__ HRTIM Handle.
  * @param  __TIMER__ HRTIM timer
  *                   This parameter can be one of the following values:
  *                   @arg 0x0 to 0x4 for timers A to E
  * @param  __COMPAREUNIT__ timer compare unit
  *                   This parameter can be one of the following values:
  *                   @arg HRTIM_COMPAREUNIT_1: Compare unit 1
  *                   @arg HRTIM_COMPAREUNIT_2: Compare unit 2
  *                   @arg HRTIM_COMPAREUNIT_3: Compare unit 3
  *                   @arg HRTIM_COMPAREUNIT_4: Compare unit 4
  * @retval Compare value
  */
# 3187 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup HRTIM_Exported_Functions
  * @{
  */

/** @addtogroup HRTIM_Exported_Functions_Group1
  * @{
  */

/* Initialization and Configuration functions  ********************************/
HAL_StatusTypeDef HAL_HRTIM_Init(HRTIM_HandleTypeDef *hhrtim);

HAL_StatusTypeDef HAL_HRTIM_DeInit(HRTIM_HandleTypeDef *hhrtim);

void HAL_HRTIM_MspInit(HRTIM_HandleTypeDef *hhrtim);

void HAL_HRTIM_MspDeInit(HRTIM_HandleTypeDef *hhrtim);

HAL_StatusTypeDef HAL_HRTIM_TimeBaseConfig(HRTIM_HandleTypeDef *hhrtim,
                                           uint32_t TimerIdx,
                                           const HRTIM_TimeBaseCfgTypeDef *pTimeBaseCfg);
/**
  * @}
  */

/** @addtogroup HRTIM_Exported_Functions_Group2
  * @{
  */

/* Simple time base related functions  *****************************************/
HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart(HRTIM_HandleTypeDef *hhrtim,
                                            uint32_t TimerIdx);

HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop(HRTIM_HandleTypeDef *hhrtim,
                                           uint32_t TimerIdx);

HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_IT(HRTIM_HandleTypeDef *hhrtim,
                                               uint32_t TimerIdx);

HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_IT(HRTIM_HandleTypeDef *hhrtim,
                                              uint32_t TimerIdx);

HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_DMA(HRTIM_HandleTypeDef *hhrtim,
                                                uint32_t TimerIdx,
                                                uint32_t SrcAddr,
                                                uint32_t DestAddr,
                                                uint32_t Length);

HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_DMA(HRTIM_HandleTypeDef *hhrtim,
                                               uint32_t TimerIdx);

/**
  * @}
  */

/** @addtogroup HRTIM_Exported_Functions_Group3
  * @{
  */
/* Simple output compare related functions  ************************************/
HAL_StatusTypeDef HAL_HRTIM_SimpleOCChannelConfig(HRTIM_HandleTypeDef *hhrtim,
                                                  uint32_t TimerIdx,
                                                  uint32_t OCChannel,
                                                  const HRTIM_SimpleOCChannelCfgTypeDef *pSimpleOCChannelCfg);

HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart(HRTIM_HandleTypeDef *hhrtim,
                                          uint32_t TimerIdx,
                                          uint32_t OCChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop(HRTIM_HandleTypeDef *hhrtim,
                                         uint32_t TimerIdx,
                                         uint32_t OCChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_IT(HRTIM_HandleTypeDef *hhrtim,
                                             uint32_t TimerIdx,
                                             uint32_t OCChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_IT(HRTIM_HandleTypeDef *hhrtim,
                                            uint32_t TimerIdx,
                                            uint32_t OCChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_DMA(HRTIM_HandleTypeDef *hhrtim,
                                              uint32_t TimerIdx,
                                              uint32_t OCChannel,
                                              uint32_t SrcAddr,
                                              uint32_t DestAddr,
                                              uint32_t Length);

HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_DMA(HRTIM_HandleTypeDef *hhrtim,
                                             uint32_t TimerIdx,
                                             uint32_t OCChannel);

/**
  * @}
  */

/** @addtogroup HRTIM_Exported_Functions_Group4
  * @{
  */
/* Simple PWM output related functions  ****************************************/
HAL_StatusTypeDef HAL_HRTIM_SimplePWMChannelConfig(HRTIM_HandleTypeDef *hhrtim,
                                                   uint32_t TimerIdx,
                                                   uint32_t PWMChannel,
                                                   const HRTIM_SimplePWMChannelCfgTypeDef *pSimplePWMChannelCfg);

HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart(HRTIM_HandleTypeDef *hhrtim,
                                           uint32_t TimerIdx,
                                           uint32_t PWMChannel);

HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop(HRTIM_HandleTypeDef *hhrtim,
                                          uint32_t TimerIdx,
                                          uint32_t PWMChannel);

HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_IT(HRTIM_HandleTypeDef *hhrtim,
                                              uint32_t TimerIdx,
                                              uint32_t PWMChannel);

HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_IT(HRTIM_HandleTypeDef *hhrtim,
                                             uint32_t TimerIdx,
                                             uint32_t PWMChannel);

HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_DMA(HRTIM_HandleTypeDef *hhrtim,
                                               uint32_t TimerIdx,
                                               uint32_t PWMChannel,
                                               uint32_t SrcAddr,
                                               uint32_t DestAddr,
                                               uint32_t Length);

HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_DMA(HRTIM_HandleTypeDef *hhrtim,
                                              uint32_t TimerIdx,
                                              uint32_t PWMChannel);

/**
  * @}
  */

/** @addtogroup HRTIM_Exported_Functions_Group5
  * @{
  */
/* Simple capture related functions  *******************************************/
HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureChannelConfig(HRTIM_HandleTypeDef *hhrtim,
                                                       uint32_t TimerIdx,
                                                       uint32_t CaptureChannel,
                                                       const HRTIM_SimpleCaptureChannelCfgTypeDef *pSimpleCaptureChannelCfg);

HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart(HRTIM_HandleTypeDef *hhrtim,
                                               uint32_t TimerIdx,
                                               uint32_t CaptureChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop(HRTIM_HandleTypeDef *hhrtim,
                                              uint32_t TimerIdx,
                                              uint32_t CaptureChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_IT(HRTIM_HandleTypeDef *hhrtim,
                                                  uint32_t TimerIdx,
                                                  uint32_t CaptureChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_IT(HRTIM_HandleTypeDef *hhrtim,
                                                 uint32_t TimerIdx,
                                                 uint32_t CaptureChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_DMA(HRTIM_HandleTypeDef *hhrtim,
                                                   uint32_t TimerIdx,
                                                   uint32_t CaptureChannel,
                                                   uint32_t SrcAddr,
                                                   uint32_t DestAddr,
                                                   uint32_t Length);

HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_DMA(HRTIM_HandleTypeDef *hhrtim,
                                                  uint32_t TimerIdx,
                                                  uint32_t CaptureChannel);

/**
  * @}
  */

/** @addtogroup HRTIM_Exported_Functions_Group6
  * @{
  */
/* Simple one pulse related functions  *****************************************/
HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseChannelConfig(HRTIM_HandleTypeDef *hhrtim,
                                                        uint32_t TimerIdx,
                                                        uint32_t OnePulseChannel,
                                                        const HRTIM_SimpleOnePulseChannelCfgTypeDef *pSimpleOnePulseChannelCfg);

HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart(HRTIM_HandleTypeDef *hhrtim,
                                                uint32_t TimerIdx,
                                                uint32_t OnePulseChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop(HRTIM_HandleTypeDef *hhrtim,
                                               uint32_t TimerIdx,
                                               uint32_t OnePulseChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart_IT(HRTIM_HandleTypeDef *hhrtim,
                                                   uint32_t TimerIdx,
                                                   uint32_t OnePulseChannel);

HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop_IT(HRTIM_HandleTypeDef *hhrtim,
                                                  uint32_t TimerIdx,
                                                  uint32_t OnePulseChannel);

/**
  * @}
  */

/** @addtogroup HRTIM_Exported_Functions_Group7
  * @{
  */
HAL_StatusTypeDef HAL_HRTIM_BurstModeConfig(HRTIM_HandleTypeDef *hhrtim,
                                            const HRTIM_BurstModeCfgTypeDef *pBurstModeCfg);

HAL_StatusTypeDef HAL_HRTIM_EventConfig(HRTIM_HandleTypeDef *hhrtim,
                                        uint32_t Event,
                                        const HRTIM_EventCfgTypeDef *pEventCfg);

HAL_StatusTypeDef HAL_HRTIM_EventPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
                                                 uint32_t Prescaler);

HAL_StatusTypeDef HAL_HRTIM_FaultConfig(HRTIM_HandleTypeDef *hhrtim,
                                        uint32_t Fault,
                                        const HRTIM_FaultCfgTypeDef *pFaultCfg);

HAL_StatusTypeDef HAL_HRTIM_FaultPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
                                                 uint32_t Prescaler);

void HAL_HRTIM_FaultModeCtl(HRTIM_HandleTypeDef *hhrtim,
                            uint32_t Faults,
                            uint32_t Enable);

HAL_StatusTypeDef HAL_HRTIM_ADCTriggerConfig(HRTIM_HandleTypeDef *hhrtim,
                                             uint32_t ADCTrigger,
                                             const HRTIM_ADCTriggerCfgTypeDef *pADCTriggerCfg);

/**
  * @}
  */

/** @addtogroup HRTIM_Exported_Functions_Group8
  * @{
  */
/* Waveform related functions *************************************************/
HAL_StatusTypeDef HAL_HRTIM_WaveformTimerConfig(HRTIM_HandleTypeDef *hhrtim,
                                                uint32_t TimerIdx,
                                                const HRTIM_TimerCfgTypeDef *pTimerCfg);

HAL_StatusTypeDef HAL_HRTIM_WaveformCompareConfig(HRTIM_HandleTypeDef *hhrtim,
                                                  uint32_t TimerIdx,
                                                  uint32_t CompareUnit,
                                                  const HRTIM_CompareCfgTypeDef *pCompareCfg);

HAL_StatusTypeDef HAL_HRTIM_WaveformCaptureConfig(HRTIM_HandleTypeDef *hhrtim,
                                                  uint32_t TimerIdx,
                                                  uint32_t CaptureUnit,
                                                  const HRTIM_CaptureCfgTypeDef *pCaptureCfg);

HAL_StatusTypeDef HAL_HRTIM_WaveformOutputConfig(HRTIM_HandleTypeDef *hhrtim,
                                                 uint32_t TimerIdx,
                                                 uint32_t Output,
                                                 const HRTIM_OutputCfgTypeDef *pOutputCfg);

HAL_StatusTypeDef HAL_HRTIM_WaveformSetOutputLevel(HRTIM_HandleTypeDef *hhrtim,
                                                   uint32_t TimerIdx,
                                                   uint32_t Output,
                                                   uint32_t OutputLevel);

HAL_StatusTypeDef HAL_HRTIM_TimerEventFilteringConfig(HRTIM_HandleTypeDef *hhrtim,
                                                      uint32_t TimerIdx,
                                                      uint32_t Event,
                                                      const HRTIM_TimerEventFilteringCfgTypeDef *pTimerEventFilteringCfg);

HAL_StatusTypeDef HAL_HRTIM_DeadTimeConfig(HRTIM_HandleTypeDef *hhrtim,
                                           uint32_t TimerIdx,
                                           const HRTIM_DeadTimeCfgTypeDef *pDeadTimeCfg);

HAL_StatusTypeDef HAL_HRTIM_ChopperModeConfig(HRTIM_HandleTypeDef *hhrtim,
                                              uint32_t TimerIdx,
                                              const HRTIM_ChopperModeCfgTypeDef *pChopperModeCfg);

HAL_StatusTypeDef HAL_HRTIM_BurstDMAConfig(HRTIM_HandleTypeDef *hhrtim,
                                           uint32_t TimerIdx,
                                           uint32_t RegistersToUpdate);


HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart(HRTIM_HandleTypeDef *hhrtim,
                                               uint32_t Timers);

HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop(HRTIM_HandleTypeDef *hhrtim,
                                              uint32_t Timers);

HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart_IT(HRTIM_HandleTypeDef *hhrtim,
                                                  uint32_t Timers);

HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop_IT(HRTIM_HandleTypeDef *hhrtim,
                                                 uint32_t Timers);

HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart_DMA(HRTIM_HandleTypeDef *hhrtim,
                                                   uint32_t Timers);

HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop_DMA(HRTIM_HandleTypeDef *hhrtim,
                                                  uint32_t Timers);

HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStart(HRTIM_HandleTypeDef *hhrtim,
                                                uint32_t OutputsToStart);

HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStop(HRTIM_HandleTypeDef *hhrtim,
                                               uint32_t OutputsToStop);

HAL_StatusTypeDef HAL_HRTIM_BurstModeCtl(HRTIM_HandleTypeDef *hhrtim,
                                         uint32_t Enable);

HAL_StatusTypeDef HAL_HRTIM_BurstModeSoftwareTrigger(HRTIM_HandleTypeDef *hhrtim);

HAL_StatusTypeDef HAL_HRTIM_SoftwareCapture(HRTIM_HandleTypeDef *hhrtim,
                                            uint32_t TimerIdx,
                                            uint32_t CaptureUnit);

HAL_StatusTypeDef HAL_HRTIM_SoftwareUpdate(HRTIM_HandleTypeDef *hhrtim,
                                           uint32_t Timers);

HAL_StatusTypeDef HAL_HRTIM_SoftwareReset(HRTIM_HandleTypeDef *hhrtim,
                                          uint32_t Timers);

HAL_StatusTypeDef HAL_HRTIM_BurstDMATransfer(HRTIM_HandleTypeDef *hhrtim,
                                             uint32_t TimerIdx,
                                             uint32_t BurstBufferAddress,
                                             uint32_t BurstBufferLength);

HAL_StatusTypeDef HAL_HRTIM_UpdateEnable(HRTIM_HandleTypeDef *hhrtim,
                                         uint32_t Timers);

HAL_StatusTypeDef HAL_HRTIM_UpdateDisable(HRTIM_HandleTypeDef *hhrtim,
                                          uint32_t Timers);

/**
  * @}
  */

/** @addtogroup HRTIM_Exported_Functions_Group9
  * @{
  */
/* HRTIM peripheral state functions */
HAL_HRTIM_StateTypeDef HAL_HRTIM_GetState(const HRTIM_HandleTypeDef *hhrtim);

uint32_t HAL_HRTIM_GetCapturedValue(const HRTIM_HandleTypeDef *hhrtim,
                                    uint32_t TimerIdx,
                                    uint32_t CaptureUnit);

uint32_t HAL_HRTIM_WaveformGetOutputLevel(const HRTIM_HandleTypeDef *hhrtim,
                                          uint32_t TimerIdx,
                                          uint32_t Output);

uint32_t HAL_HRTIM_WaveformGetOutputState(const HRTIM_HandleTypeDef *hhrtim,
                                          uint32_t TimerIdx,
                                          uint32_t Output);

uint32_t HAL_HRTIM_GetDelayedProtectionStatus(const HRTIM_HandleTypeDef *hhrtim,
                                              uint32_t TimerIdx,
                                              uint32_t Output);

uint32_t HAL_HRTIM_GetBurstStatus(const HRTIM_HandleTypeDef *hhrtim);

uint32_t HAL_HRTIM_GetCurrentPushPullStatus(const HRTIM_HandleTypeDef *hhrtim,
                                            uint32_t TimerIdx);

uint32_t HAL_HRTIM_GetIdlePushPullStatus(const HRTIM_HandleTypeDef *hhrtim,
                                         uint32_t TimerIdx);

/**
  * @}
  */

/** @addtogroup HRTIM_Exported_Functions_Group10
  * @{
  */
/* IRQ handler */
void HAL_HRTIM_IRQHandler(HRTIM_HandleTypeDef *hhrtim,
                          uint32_t TimerIdx);

/* HRTIM events related callback functions */
void HAL_HRTIM_Fault1Callback(HRTIM_HandleTypeDef *hhrtim);
void HAL_HRTIM_Fault2Callback(HRTIM_HandleTypeDef *hhrtim);
void HAL_HRTIM_Fault3Callback(HRTIM_HandleTypeDef *hhrtim);
void HAL_HRTIM_Fault4Callback(HRTIM_HandleTypeDef *hhrtim);
void HAL_HRTIM_Fault5Callback(HRTIM_HandleTypeDef *hhrtim);
void HAL_HRTIM_SystemFaultCallback(HRTIM_HandleTypeDef *hhrtim);
void HAL_HRTIM_BurstModePeriodCallback(HRTIM_HandleTypeDef *hhrtim);
void HAL_HRTIM_SynchronizationEventCallback(HRTIM_HandleTypeDef *hhrtim);

/* Timer events related callback functions */
void HAL_HRTIM_RegistersUpdateCallback(HRTIM_HandleTypeDef *hhrtim,
                                       uint32_t TimerIdx);
void HAL_HRTIM_RepetitionEventCallback(HRTIM_HandleTypeDef *hhrtim,
                                       uint32_t TimerIdx);
void HAL_HRTIM_Compare1EventCallback(HRTIM_HandleTypeDef *hhrtim,
                                     uint32_t TimerIdx);
void HAL_HRTIM_Compare2EventCallback(HRTIM_HandleTypeDef *hhrtim,
                                     uint32_t TimerIdx);
void HAL_HRTIM_Compare3EventCallback(HRTIM_HandleTypeDef *hhrtim,
                                     uint32_t TimerIdx);
void HAL_HRTIM_Compare4EventCallback(HRTIM_HandleTypeDef *hhrtim,
                                     uint32_t TimerIdx);
void HAL_HRTIM_Capture1EventCallback(HRTIM_HandleTypeDef *hhrtim,
                                     uint32_t TimerIdx);
void HAL_HRTIM_Capture2EventCallback(HRTIM_HandleTypeDef *hhrtim,
                                     uint32_t TimerIdx);
void HAL_HRTIM_DelayedProtectionCallback(HRTIM_HandleTypeDef *hhrtim,
                                         uint32_t TimerIdx);
void HAL_HRTIM_CounterResetCallback(HRTIM_HandleTypeDef *hhrtim,
                                    uint32_t TimerIdx);
void HAL_HRTIM_Output1SetCallback(HRTIM_HandleTypeDef *hhrtim,
                                  uint32_t TimerIdx);
void HAL_HRTIM_Output1ResetCallback(HRTIM_HandleTypeDef *hhrtim,
                                    uint32_t TimerIdx);
void HAL_HRTIM_Output2SetCallback(HRTIM_HandleTypeDef *hhrtim,
                                  uint32_t TimerIdx);
void HAL_HRTIM_Output2ResetCallback(HRTIM_HandleTypeDef *hhrtim,
                                    uint32_t TimerIdx);
void HAL_HRTIM_BurstDMATransferCallback(HRTIM_HandleTypeDef *hhrtim,
                                        uint32_t TimerIdx);
void HAL_HRTIM_ErrorCallback(HRTIM_HandleTypeDef *hhrtim);
# 3627 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hrtim.h"
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */




}
# 351 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hsem.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_hsem.h
  * @author  MCD Application Team
  * @brief   Header file of HSEM HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hsem.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
   * @{
   */

/** @addtogroup HSEM
   * @{
   */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup HSEM_Exported_Macros HSEM Exported Macros
  * @{
  */

/**
  * @brief  SemID to mask helper Macro.
  * @param  __SEMID__: semaphore ID from 0 to 31
  * @retval Semaphore Mask.
  */


/**
  * @brief  Enables the specified HSEM interrupts.
  * @param  __SEM_MASK__: semaphores Mask
  * @retval None.
  */







/**
  * @brief  Disables the specified HSEM interrupts.
  * @param  __SEM_MASK__: semaphores Mask
  * @retval None.
  */
# 75 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hsem.h"
/**
  * @brief  Checks whether interrupt has occurred or not for semaphores specified by a mask.
  * @param  __SEM_MASK__: semaphores Mask
  * @retval semaphores Mask : Semaphores where an interrupt occurred.
  */
# 88 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hsem.h"
/**
  * @brief  Get the semaphores release status flags.
  * @param  __SEM_MASK__: semaphores Mask
  * @retval semaphores Mask : Semaphores where Release flags rise.
  */
# 101 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hsem.h"
/**
  * @brief  Clears the HSEM Interrupt flags.
  * @param  __SEM_MASK__: semaphores Mask
  * @retval None.
  */
# 114 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hsem.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup HSEM_Exported_Functions HSEM Exported Functions
  * @{
  */

/** @addtogroup HSEM_Exported_Functions_Group1 Take and Release functions
  * @brief    HSEM Take and Release functions
  * @{
  */

/* HSEM semaphore take (lock) using 2-Step  method ****************************/
HAL_StatusTypeDef HAL_HSEM_Take(uint32_t SemID, uint32_t ProcessID);
/* HSEM semaphore fast take (lock) using 1-Step  method ***********************/
HAL_StatusTypeDef HAL_HSEM_FastTake(uint32_t SemID);
/* HSEM Release  **************************************************************/
void HAL_HSEM_Release(uint32_t SemID, uint32_t ProcessID);
/* HSEM Release All************************************************************/
void HAL_HSEM_ReleaseAll(uint32_t Key, uint32_t CoreID);
/* HSEM Check semaphore state Taken or not   **********************************/
uint32_t HAL_HSEM_IsSemTaken(uint32_t SemID);

/**
  * @}
  */

/** @addtogroup HSEM_Exported_Functions_Group2 HSEM Set and Get Key functions
  * @brief    HSEM Set and Get Key functions.
  * @{
  */
/* HSEM Set Clear Key *********************************************************/
void HAL_HSEM_SetClearKey(uint32_t Key);
/* HSEM Get Clear Key *********************************************************/
uint32_t HAL_HSEM_GetClearKey(void);
/**
  * @}
  */

/** @addtogroup HSEM_Exported_Functions_Group3
  * @brief   HSEM Notification functions
  * @{
  */
/* HSEM Activate HSEM Notification (When a semaphore is released) ) *****************/
void HAL_HSEM_ActivateNotification(uint32_t SemMask);
/* HSEM Deactivate HSEM Notification (When a semaphore is released)  ****************/
void HAL_HSEM_DeactivateNotification(uint32_t SemMask);
/* HSEM Free Callback (When a semaphore is released)  *******************************/
void HAL_HSEM_FreeCallback(uint32_t SemMask);
/* HSEM IRQ Handler  **********************************************************/
void HAL_HSEM_IRQHandler(void);

/**
  * @}
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup HSEM_Private_Macros HSEM Private Macros
  * @{
  */
# 195 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hsem.h"
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 355 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sram.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_sram.h
  * @author  MCD Application Team
  * @brief   Header file of SRAM HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {



/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_fmc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_fmc.h
  * @author  MCD Application Team
  * @brief   Header file of FMC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_fmc.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup FMC_LL
  * @{
  */

/** @addtogroup FMC_LL_Private_Macros
  * @{
  */
# 167 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_fmc.h"
/**
  * @}
  */

/* Exported typedef ----------------------------------------------------------*/

/** @defgroup FMC_LL_Exported_typedef FMC Low Layer Exported Types
  * @{
  */
# 187 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_fmc.h"
/**
  * @brief  FMC NORSRAM Configuration Structure definition
  */
typedef struct
{
  uint32_t NSBank; /*!< Specifies the NORSRAM memory device that will be used.
                                              This parameter can be a value of @ref FMC_NORSRAM_Bank                 */

  uint32_t DataAddressMux; /*!< Specifies whether the address and data values are
                                              multiplexed on the data bus or not.
                                              This parameter can be a value of @ref FMC_Data_Address_Bus_Multiplexing*/

  uint32_t MemoryType; /*!< Specifies the type of external memory attached to
                                              the corresponding memory device.
                                              This parameter can be a value of @ref FMC_Memory_Type                  */

  uint32_t MemoryDataWidth; /*!< Specifies the external memory device width.
                                              This parameter can be a value of @ref FMC_NORSRAM_Data_Width           */

  uint32_t BurstAccessMode; /*!< Enables or disables the burst access mode for Flash memory,
                                              valid only with synchronous burst Flash memories.
                                              This parameter can be a value of @ref FMC_Burst_Access_Mode            */

  uint32_t WaitSignalPolarity; /*!< Specifies the wait signal polarity, valid only when accessing
                                              the Flash memory in burst mode.
                                              This parameter can be a value of @ref FMC_Wait_Signal_Polarity         */

  uint32_t WaitSignalActive; /*!< Specifies if the wait signal is asserted by the memory one
                                              clock cycle before the wait state or during the wait state,
                                              valid only when accessing memories in burst mode.
                                              This parameter can be a value of @ref FMC_Wait_Timing                  */

  uint32_t WriteOperation; /*!< Enables or disables the write operation in the selected device
                                              by the FMC.
                                              This parameter can be a value of @ref FMC_Write_Operation              */

  uint32_t WaitSignal; /*!< Enables or disables the wait state insertion via wait
                                              signal, valid for Flash memory access in burst mode.
                                              This parameter can be a value of @ref FMC_Wait_Signal                  */

  uint32_t ExtendedMode; /*!< Enables or disables the extended mode.
                                              This parameter can be a value of @ref FMC_Extended_Mode                */

  uint32_t AsynchronousWait; /*!< Enables or disables wait signal during asynchronous transfers,
                                              valid only with asynchronous Flash memories.
                                              This parameter can be a value of @ref FMC_AsynchronousWait             */

  uint32_t WriteBurst; /*!< Enables or disables the write burst operation.
                                              This parameter can be a value of @ref FMC_Write_Burst                  */

  uint32_t ContinuousClock; /*!< Enables or disables the FMC clock output to external memory devices.
                                              This parameter is only enabled through the FMC_BCR1 register,
                                              and don't care through FMC_BCR2..4 registers.
                                              This parameter can be a value of @ref FMC_Continous_Clock              */

  uint32_t WriteFifo; /*!< Enables or disables the write FIFO used by the FMC controller.
                                              This parameter is only enabled through the FMC_BCR1 register,
                                              and don't care through FMC_BCR2..4 registers.
                                              This parameter can be a value of @ref FMC_Write_FIFO                   */

  uint32_t PageSize; /*!< Specifies the memory page size.
                                              This parameter can be a value of @ref FMC_Page_Size                    */
} FMC_NORSRAM_InitTypeDef;

/**
  * @brief  FMC NORSRAM Timing parameters structure definition
  */
typedef struct
{
  uint32_t AddressSetupTime; /*!< Defines the number of HCLK cycles to configure
                                              the duration of the address setup time.
                                              This parameter can be a value between Min_Data = 0 and Max_Data = 15.
                                              @note This parameter is not used with synchronous NOR Flash memories.   */

  uint32_t AddressHoldTime; /*!< Defines the number of HCLK cycles to configure
                                              the duration of the address hold time.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 15.
                                              @note This parameter is not used with synchronous NOR Flash memories.   */

  uint32_t DataSetupTime; /*!< Defines the number of HCLK cycles to configure
                                              the duration of the data setup time.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 255.
                                              @note This parameter is used for SRAMs, ROMs and asynchronous multiplexed
                                              NOR Flash memories.                                                     */

  uint32_t BusTurnAroundDuration; /*!< Defines the number of HCLK cycles to configure
                                              the duration of the bus turnaround.
                                              This parameter can be a value between Min_Data = 0 and Max_Data = 15.
                                              @note This parameter is only used for multiplexed NOR Flash memories.   */

  uint32_t CLKDivision; /*!< Defines the period of CLK clock output signal, expressed in number of
                                              HCLK cycles. This parameter can be a value between Min_Data = 2 and
                                              Max_Data = 16.
                                              @note This parameter is not used for asynchronous NOR Flash, SRAM or ROM
                                              accesses.                                                               */

  uint32_t DataLatency; /*!< Defines the number of memory clock cycles to issue
                                              to the memory before getting the first data.
                                              The parameter value depends on the memory type as shown below:
                                              - It must be set to 0 in case of a CRAM
                                              - It is don't care in asynchronous NOR, SRAM or ROM accesses
                                              - It may assume a value between Min_Data = 2 and Max_Data = 17
                                                in NOR Flash memories with synchronous burst mode enable              */

  uint32_t AccessMode; /*!< Specifies the asynchronous access mode.
                                              This parameter can be a value of @ref FMC_Access_Mode                  */
} FMC_NORSRAM_TimingTypeDef;

/**
  * @brief  FMC NAND Configuration Structure definition
  */
typedef struct
{
  uint32_t NandBank; /*!< Specifies the NAND memory device that will be used.
                                        This parameter can be a value of @ref FMC_NAND_Bank                  */

  uint32_t Waitfeature; /*!< Enables or disables the Wait feature for the NAND Memory device.
                                        This parameter can be any value of @ref FMC_Wait_feature             */

  uint32_t MemoryDataWidth; /*!< Specifies the external memory device width.
                                        This parameter can be any value of @ref FMC_NAND_Data_Width          */

  uint32_t EccComputation; /*!< Enables or disables the ECC computation.
                                        This parameter can be any value of @ref FMC_ECC                      */

  uint32_t ECCPageSize; /*!< Defines the page size for the extended ECC.
                                        This parameter can be any value of @ref FMC_ECC_Page_Size            */

  uint32_t TCLRSetupTime; /*!< Defines the number of HCLK cycles to configure the
                                        delay between CLE low and RE low.
                                        This parameter can be a value between Min_Data = 0 and Max_Data = 255  */

  uint32_t TARSetupTime; /*!< Defines the number of HCLK cycles to configure the
                                        delay between ALE low and RE low.
                                        This parameter can be a number between Min_Data = 0 and Max_Data = 255 */
} FMC_NAND_InitTypeDef;

/**
  * @brief  FMC NAND Timing parameters structure definition
  */
typedef struct
{
  uint32_t SetupTime; /*!< Defines the number of HCLK cycles to setup address before
                                      the command assertion for NAND-Flash read or write access
                                      to common/Attribute or I/O memory space (depending on
                                      the memory space timing to be configured).
                                      This parameter can be a value between Min_Data = 0 and Max_Data = 254    */

  uint32_t WaitSetupTime; /*!< Defines the minimum number of HCLK cycles to assert the
                                      command for NAND-Flash read or write access to
                                      common/Attribute or I/O memory space (depending on the
                                      memory space timing to be configured).
                                      This parameter can be a number between Min_Data = 0 and Max_Data = 254   */

  uint32_t HoldSetupTime; /*!< Defines the number of HCLK clock cycles to hold address
                                      (and data for write access) after the command de-assertion
                                      for NAND-Flash read or write access to common/Attribute
                                      or I/O memory space (depending on the memory space timing
                                      to be configured).
                                      This parameter can be a number between Min_Data = 0 and Max_Data = 254   */

  uint32_t HiZSetupTime; /*!< Defines the number of HCLK clock cycles during which the
                                      data bus is kept in HiZ after the start of a NAND-Flash
                                      write access to common/Attribute or I/O memory space (depending
                                      on the memory space timing to be configured).
                                      This parameter can be a number between Min_Data = 0 and Max_Data = 254   */
} FMC_NAND_PCC_TimingTypeDef;


/**
  * @brief  FMC SDRAM Configuration Structure definition
  */
typedef struct
{
  uint32_t SDBank; /*!< Specifies the SDRAM memory device that will be used.
                                             This parameter can be a value of @ref FMC_SDRAM_Bank                */

  uint32_t ColumnBitsNumber; /*!< Defines the number of bits of column address.
                                             This parameter can be a value of @ref FMC_SDRAM_Column_Bits_number. */

  uint32_t RowBitsNumber; /*!< Defines the number of bits of column address.
                                             This parameter can be a value of @ref FMC_SDRAM_Row_Bits_number.    */

  uint32_t MemoryDataWidth; /*!< Defines the memory device width.
                                             This parameter can be a value of @ref FMC_SDRAM_Memory_Bus_Width.   */

  uint32_t InternalBankNumber; /*!< Defines the number of the device's internal banks.
                                             This parameter can be of @ref FMC_SDRAM_Internal_Banks_Number.      */

  uint32_t CASLatency; /*!< Defines the SDRAM CAS latency in number of memory clock cycles.
                                             This parameter can be a value of @ref FMC_SDRAM_CAS_Latency.        */

  uint32_t WriteProtection; /*!< Enables the SDRAM device to be accessed in write mode.
                                             This parameter can be a value of @ref FMC_SDRAM_Write_Protection.   */

  uint32_t SDClockPeriod; /*!< Define the SDRAM Clock Period for both SDRAM devices and they allow
                                             to disable the clock before changing frequency.
                                             This parameter can be a value of @ref FMC_SDRAM_Clock_Period.       */

  uint32_t ReadBurst; /*!< This bit enable the SDRAM controller to anticipate the next read
                                             commands during the CAS latency and stores data in the Read FIFO.
                                             This parameter can be a value of @ref FMC_SDRAM_Read_Burst.         */

  uint32_t ReadPipeDelay; /*!< Define the delay in system clock cycles on read data path.
                                             This parameter can be a value of @ref FMC_SDRAM_Read_Pipe_Delay.    */
} FMC_SDRAM_InitTypeDef;

/**
  * @brief FMC SDRAM Timing parameters structure definition
  */
typedef struct
{
  uint32_t LoadToActiveDelay; /*!< Defines the delay between a Load Mode Register command and
                                              an active or Refresh command in number of memory clock cycles.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16  */

  uint32_t ExitSelfRefreshDelay; /*!< Defines the delay from releasing the self refresh command to
                                              issuing the Activate command in number of memory clock cycles.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16  */

  uint32_t SelfRefreshTime; /*!< Defines the minimum Self Refresh period in number of memory clock
                                              cycles.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16  */

  uint32_t RowCycleDelay; /*!< Defines the delay between the Refresh command and the Activate command
                                              and the delay between two consecutive Refresh commands in number of
                                              memory clock cycles.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16  */

  uint32_t WriteRecoveryTime; /*!< Defines the Write recovery Time in number of memory clock cycles.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16  */

  uint32_t RPDelay; /*!< Defines the delay between a Precharge Command and an other command
                                              in number of memory clock cycles.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16  */

  uint32_t RCDDelay; /*!< Defines the delay between the Activate Command and a Read/Write
                                              command in number of memory clock cycles.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 16  */
} FMC_SDRAM_TimingTypeDef;

/**
  * @brief SDRAM command parameters structure definition
  */
typedef struct
{
  uint32_t CommandMode; /*!< Defines the command issued to the SDRAM device.
                                              This parameter can be a value of @ref FMC_SDRAM_Command_Mode.          */

  uint32_t CommandTarget; /*!< Defines which device (1 or 2) the command will be issued to.
                                              This parameter can be a value of @ref FMC_SDRAM_Command_Target.        */

  uint32_t AutoRefreshNumber; /*!< Defines the number of consecutive auto refresh command issued
                                              in auto refresh mode.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 15   */

  uint32_t ModeRegisterDefinition;
} FMC_SDRAM_CommandTypeDef;
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @addtogroup FMC_LL_Exported_Constants FMC Low Layer Exported Constants
  * @{
  */

/** @defgroup FMC_LL_NOR_SRAM_Controller FMC NOR/SRAM Controller
  * @{
  */

/** @defgroup FMC_NORSRAM_Bank FMC NOR/SRAM Bank
  * @{
  */




/**
  * @}
  */

/** @defgroup FMC_Data_Address_Bus_Multiplexing FMC Data Address Bus Multiplexing
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_Memory_Type FMC Memory Type
  * @{
  */



/**
  * @}
  */

/** @defgroup FMC_NORSRAM_Data_Width FMC NORSRAM Data Width
  * @{
  */



/**
  * @}
  */

/** @defgroup FMC_NORSRAM_Flash_Access FMC NOR/SRAM Flash Access
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_Burst_Access_Mode FMC Burst Access Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_Wait_Signal_Polarity FMC Wait Signal Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_Wait_Timing FMC Wait Timing
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_Write_Operation FMC Write Operation
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_Wait_Signal FMC Wait Signal
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_Extended_Mode FMC Extended Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_AsynchronousWait FMC Asynchronous Wait
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_Page_Size FMC Page Size
  * @{
  */






/**
  * @}
  */

/** @defgroup FMC_Write_Burst FMC Write Burst
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_Continous_Clock FMC Continuous Clock
  * @{
  */


/**
  * @}
  */


/** @defgroup FMC_Write_FIFO FMC Write FIFO
  * @{
  */



/**
  * @}
  */

/** @defgroup FMC_Access_Mode FMC Access Mode
  * @{
  */




/**
  * @}
  */

/**
  * @}
  */


/** @defgroup FMC_LL_NAND_Controller FMC NAND Controller
  * @{
  */
/** @defgroup FMC_NAND_Bank FMC NAND Bank
  * @{
  */

/**
  * @}
  */

/** @defgroup FMC_Wait_feature FMC Wait feature
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_PCR_Memory_Type FMC PCR Memory Type
  * @{
  */

/**
  * @}
  */

/** @defgroup FMC_NAND_Data_Width FMC NAND Data Width
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_ECC FMC ECC
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_ECC_Page_Size FMC ECC Page Size
  * @{
  */






/**
  * @}
  */

/**
  * @}
  */

/** @defgroup FMC_LL_SDRAM_Controller FMC SDRAM Controller
  * @{
  */
/** @defgroup FMC_SDRAM_Bank FMC SDRAM Bank
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_SDRAM_Column_Bits_number FMC SDRAM Column Bits number
  * @{
  */




/**
  * @}
  */

/** @defgroup FMC_SDRAM_Row_Bits_number FMC SDRAM Row Bits number
  * @{
  */



/**
  * @}
  */

/** @defgroup FMC_SDRAM_Memory_Bus_Width FMC SDRAM Memory Bus Width
  * @{
  */



/**
  * @}
  */

/** @defgroup FMC_SDRAM_Internal_Banks_Number FMC SDRAM Internal Banks Number
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_SDRAM_CAS_Latency FMC SDRAM CAS Latency
  * @{
  */



/**
  * @}
  */

/** @defgroup FMC_SDRAM_Write_Protection FMC SDRAM Write Protection
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_SDRAM_Clock_Period FMC SDRAM Clock Period
  * @{
  */



/**
  * @}
  */

/** @defgroup FMC_SDRAM_Read_Burst FMC SDRAM Read Burst
  * @{
  */


/**
  * @}
  */

/** @defgroup FMC_SDRAM_Read_Pipe_Delay FMC SDRAM Read Pipe Delay
  * @{
  */



/**
  * @}
  */

/** @defgroup FMC_SDRAM_Command_Mode FMC SDRAM Command Mode
  * @{
  */







/**
  * @}
  */

/** @defgroup FMC_SDRAM_Command_Target FMC SDRAM Command Target
  * @{
  */



/**
  * @}
  */

/** @defgroup FMC_SDRAM_Mode_Status FMC SDRAM Mode Status
  * @{
  */



/**
  * @}
  */

/**
  * @}
  */


/** @defgroup FMC_LL_Interrupt_definition FMC Low Layer Interrupt definition
  * @{
  */




/**
  * @}
  */

/** @defgroup FMC_LL_Flag_definition FMC Low Layer Flag definition
  * @{
  */







/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/* Private macro -------------------------------------------------------------*/
/** @defgroup FMC_LL_Private_Macros FMC_LL  Private Macros
  * @{
  */
/**
  * @brief  Enable the FMC Peripheral.
  * @retval None
  */


/**
  * @brief  Disable the FMC Peripheral.
  * @retval None
  */

/** @defgroup FMC_LL_NOR_Macros FMC NOR/SRAM Macros
  * @brief macros to handle NOR device enable/disable and read/write operations
  * @{
  */

/**
  * @brief  Enable the NORSRAM device access.
  * @param  __INSTANCE__ FMC_NORSRAM Instance
  * @param  __BANK__ FMC_NORSRAM Bank
  * @retval None
  */



/**
  * @brief  Disable the NORSRAM device access.
  * @param  __INSTANCE__ FMC_NORSRAM Instance
  * @param  __BANK__ FMC_NORSRAM Bank
  * @retval None
  */



/**
  * @}
  */

/** @defgroup FMC_LL_NAND_Macros FMC NAND Macros
  *  @brief macros to handle NAND device enable/disable
  *  @{
  */

/**
  * @brief  Enable the NAND device access.
  * @param  __INSTANCE__ FMC_NAND Instance
  * @retval None
  */


/**
  * @brief  Disable the NAND device access.
  * @param  __INSTANCE__ FMC_NAND Instance
  * @param  __BANK__     FMC_NAND Bank
  * @retval None
  */


/**
  * @}
  */

/** @defgroup FMC_LL_NAND_Interrupt FMC NAND Interrupt
  * @brief macros to handle NAND interrupts
  * @{
  */

/**
  * @brief  Enable the NAND device interrupt.
  * @param  __INSTANCE__  FMC_NAND instance
  * @param  __INTERRUPT__ FMC_NAND interrupt
  *         This parameter can be any combination of the following values:
  *            @arg FMC_IT_RISING_EDGE: Interrupt rising edge.
  *            @arg FMC_IT_LEVEL: Interrupt level.
  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.
  * @retval None
  */


/**
  * @brief  Disable the NAND device interrupt.
  * @param  __INSTANCE__  FMC_NAND Instance
  * @param  __INTERRUPT__ FMC_NAND interrupt
  *         This parameter can be any combination of the following values:
  *            @arg FMC_IT_RISING_EDGE: Interrupt rising edge.
  *            @arg FMC_IT_LEVEL: Interrupt level.
  *            @arg FMC_IT_FALLING_EDGE: Interrupt falling edge.
  * @retval None
  */


/**
  * @brief  Get flag status of the NAND device.
  * @param  __INSTANCE__ FMC_NAND Instance
  * @param  __BANK__     FMC_NAND Bank
  * @param  __FLAG__     FMC_NAND flag
  *         This parameter can be any combination of the following values:
  *            @arg FMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
  *            @arg FMC_FLAG_LEVEL: Interrupt level edge flag.
  *            @arg FMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
  *            @arg FMC_FLAG_FEMPT: FIFO empty flag.
  * @retval The state of FLAG (SET or RESET).
  */


/**
  * @brief  Clear flag status of the NAND device.
  * @param  __INSTANCE__ FMC_NAND Instance
  * @param  __FLAG__     FMC_NAND flag
  *         This parameter can be any combination of the following values:
  *            @arg FMC_FLAG_RISING_EDGE: Interrupt rising edge flag.
  *            @arg FMC_FLAG_LEVEL: Interrupt level edge flag.
  *            @arg FMC_FLAG_FALLING_EDGE: Interrupt falling edge flag.
  *            @arg FMC_FLAG_FEMPT: FIFO empty flag.
  * @retval None
  */


/**
  * @}
  */


/** @defgroup FMC_LL_SDRAM_Interrupt FMC SDRAM Interrupt
  * @brief macros to handle SDRAM interrupts
  * @{
  */

/**
  * @brief  Enable the SDRAM device interrupt.
  * @param  __INSTANCE__  FMC_SDRAM instance
  * @param  __INTERRUPT__ FMC_SDRAM interrupt
  *         This parameter can be any combination of the following values:
  *            @arg FMC_IT_REFRESH_ERROR: Interrupt refresh error
  * @retval None
  */


/**
  * @brief  Disable the SDRAM device interrupt.
  * @param  __INSTANCE__  FMC_SDRAM instance
  * @param  __INTERRUPT__ FMC_SDRAM interrupt
  *         This parameter can be any combination of the following values:
  *            @arg FMC_IT_REFRESH_ERROR: Interrupt refresh error
  * @retval None
  */


/**
  * @brief  Get flag status of the SDRAM device.
  * @param  __INSTANCE__ FMC_SDRAM instance
  * @param  __FLAG__     FMC_SDRAM flag
  *         This parameter can be any combination of the following values:
  *            @arg FMC_SDRAM_FLAG_REFRESH_IT: Interrupt refresh error.
  *            @arg FMC_SDRAM_FLAG_BUSY: SDRAM busy flag.
  *            @arg FMC_SDRAM_FLAG_REFRESH_ERROR: Refresh error flag.
  * @retval The state of FLAG (SET or RESET).
  */


/**
  * @brief  Clear flag status of the SDRAM device.
  * @param  __INSTANCE__ FMC_SDRAM instance
  * @param  __FLAG__     FMC_SDRAM flag
  *         This parameter can be any combination of the following values:
  *           @arg FMC_SDRAM_FLAG_REFRESH_ERROR
  * @retval None
  */


/**
  * @}
  */
/**
  * @}
  */

/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup FMC_LL_Private_Functions FMC LL Private Functions
  *  @{
  */

/** @defgroup FMC_LL_NORSRAM  NOR SRAM
  *  @{
  */
/** @defgroup FMC_LL_NORSRAM_Private_Functions_Group1 NOR SRAM Initialization/de-initialization functions
  *  @{
  */
HAL_StatusTypeDef FMC_NORSRAM_Init(FMC_Bank1_TypeDef *Device,
                                    const FMC_NORSRAM_InitTypeDef *Init);
HAL_StatusTypeDef FMC_NORSRAM_Timing_Init(FMC_Bank1_TypeDef *Device,
                                           const FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank);
HAL_StatusTypeDef FMC_NORSRAM_Extended_Timing_Init(FMC_Bank1E_TypeDef *Device,
                                                    const FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank,
                                                    uint32_t ExtendedMode);
HAL_StatusTypeDef FMC_NORSRAM_DeInit(FMC_Bank1_TypeDef *Device,
                                      FMC_Bank1E_TypeDef *ExDevice, uint32_t Bank);
/**
  * @}
  */

/** @defgroup FMC_LL_NORSRAM_Private_Functions_Group2 NOR SRAM Control functions
  *  @{
  */
HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Enable(FMC_Bank1_TypeDef *Device, uint32_t Bank);
HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Disable(FMC_Bank1_TypeDef *Device, uint32_t Bank);
/**
  * @}
  */
/**
  * @}
  */

/** @defgroup FMC_LL_NAND NAND
  *  @{
  */
/** @defgroup FMC_LL_NAND_Private_Functions_Group1 NAND Initialization/de-initialization functions
  *  @{
  */
HAL_StatusTypeDef FMC_NAND_Init(FMC_Bank3_TypeDef *Device, const FMC_NAND_InitTypeDef *Init);
HAL_StatusTypeDef FMC_NAND_CommonSpace_Timing_Init(FMC_Bank3_TypeDef *Device,
                                                    const FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
HAL_StatusTypeDef FMC_NAND_AttributeSpace_Timing_Init(FMC_Bank3_TypeDef *Device,
                                                       const FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
HAL_StatusTypeDef FMC_NAND_DeInit(FMC_Bank3_TypeDef *Device, uint32_t Bank);
/**
  * @}
  */

/** @defgroup FMC_LL_NAND_Private_Functions_Group2 NAND Control functions
  *  @{
  */
HAL_StatusTypeDef FMC_NAND_ECC_Enable(FMC_Bank3_TypeDef *Device, uint32_t Bank);
HAL_StatusTypeDef FMC_NAND_ECC_Disable(FMC_Bank3_TypeDef *Device, uint32_t Bank);
HAL_StatusTypeDef FMC_NAND_GetECC(const FMC_Bank3_TypeDef *Device, uint32_t *ECCval, uint32_t Bank,
                                   uint32_t Timeout);
/**
  * @}
  */
/**
  * @}
  */


/** @defgroup FMC_LL_SDRAM SDRAM
  *  @{
  */
/** @defgroup FMC_LL_SDRAM_Private_Functions_Group1 SDRAM Initialization/de-initialization functions
  *  @{
  */
HAL_StatusTypeDef FMC_SDRAM_Init(FMC_Bank5_6_TypeDef *Device, const FMC_SDRAM_InitTypeDef *Init);
HAL_StatusTypeDef FMC_SDRAM_Timing_Init(FMC_Bank5_6_TypeDef *Device,
                                         const FMC_SDRAM_TimingTypeDef *Timing, uint32_t Bank);
HAL_StatusTypeDef FMC_SDRAM_DeInit(FMC_Bank5_6_TypeDef *Device, uint32_t Bank);
/**
  * @}
  */

/** @defgroup FMC_LL_SDRAM_Private_Functions_Group2 SDRAM Control functions
  *  @{
  */
HAL_StatusTypeDef FMC_SDRAM_WriteProtection_Enable(FMC_Bank5_6_TypeDef *Device, uint32_t Bank);
HAL_StatusTypeDef FMC_SDRAM_WriteProtection_Disable(FMC_Bank5_6_TypeDef *Device, uint32_t Bank);
HAL_StatusTypeDef FMC_SDRAM_SendCommand(FMC_Bank5_6_TypeDef *Device,
                                         const FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout);
HAL_StatusTypeDef FMC_SDRAM_ProgramRefreshRate(FMC_Bank5_6_TypeDef *Device, uint32_t RefreshRate);
HAL_StatusTypeDef FMC_SDRAM_SetAutoRefreshNumber(FMC_Bank5_6_TypeDef *Device,
                                                  uint32_t AutoRefreshNumber);
uint32_t FMC_SDRAM_GetModeStatus(const FMC_Bank5_6_TypeDef *Device, uint32_t Bank);
/**
  * @}
  */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sram.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */
/** @addtogroup SRAM
  * @{
  */

/* Exported typedef ----------------------------------------------------------*/

/** @defgroup SRAM_Exported_Types SRAM Exported Types
  * @{
  */
/**
  * @brief  HAL SRAM State structures definition
  */
typedef enum
{
  HAL_SRAM_STATE_RESET = 0x00U,
  HAL_SRAM_STATE_READY = 0x01U,
  HAL_SRAM_STATE_BUSY = 0x02U,
  HAL_SRAM_STATE_ERROR = 0x03U,
  HAL_SRAM_STATE_PROTECTED = 0x04U

} HAL_SRAM_StateTypeDef;

/**
  * @brief  SRAM handle Structure definition
  */



typedef struct

{
  FMC_Bank1_TypeDef *Instance;

  FMC_Bank1E_TypeDef *Extended;

  FMC_NORSRAM_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  volatile HAL_SRAM_StateTypeDef State;

  MDMA_HandleTypeDef *hmdma;







} SRAM_HandleTypeDef;
# 103 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sram.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/

/** @defgroup SRAM_Exported_Macros SRAM Exported Macros
  * @{
  */

/** @brief Reset SRAM handle state
  * @param  __HANDLE__ SRAM handle
  * @retval None
  */
# 128 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sram.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SRAM_Exported_Functions SRAM Exported Functions
  * @{
  */

/** @addtogroup SRAM_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */

/* Initialization/de-initialization functions  ********************************/
HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing,
                                FMC_NORSRAM_TimingTypeDef *ExtTiming);
HAL_StatusTypeDef HAL_SRAM_DeInit(SRAM_HandleTypeDef *hsram);
void HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram);
void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram);

/**
  * @}
  */

/** @addtogroup SRAM_Exported_Functions_Group2 Input Output and memory control functions
  * @{
  */

/* I/O operation functions  ***************************************************/
HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer,
                                   uint32_t BufferSize);
HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer,
                                    uint32_t BufferSize);
HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer,
                                    uint32_t BufferSize);
HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer,
                                     uint32_t BufferSize);
HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
                                    uint32_t BufferSize);
HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
                                     uint32_t BufferSize);
HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
                                    uint32_t BufferSize);
HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
                                     uint32_t BufferSize);

void HAL_SRAM_DMA_XferCpltCallback(MDMA_HandleTypeDef *hmdma);
void HAL_SRAM_DMA_XferErrorCallback(MDMA_HandleTypeDef *hmdma);
# 186 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sram.h"
/**
  * @}
  */

/** @addtogroup SRAM_Exported_Functions_Group3 Control functions
  * @{
  */

/* SRAM Control functions  ****************************************************/
HAL_StatusTypeDef HAL_SRAM_WriteOperation_Enable(SRAM_HandleTypeDef *hsram);
HAL_StatusTypeDef HAL_SRAM_WriteOperation_Disable(SRAM_HandleTypeDef *hsram);

/**
  * @}
  */

/** @addtogroup SRAM_Exported_Functions_Group4 Peripheral State functions
  * @{
  */

/* SRAM  State functions ******************************************************/
HAL_SRAM_StateTypeDef HAL_SRAM_GetState(const SRAM_HandleTypeDef *hsram);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 359 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nor.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_nor.h
  * @author  MCD Application Team
  * @brief   Header file of NOR HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {



/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_fmc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_fmc.h
  * @author  MCD Application Team
  * @brief   Header file of FMC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nor.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup NOR
  * @{
  */

/* Exported typedef ----------------------------------------------------------*/
/** @defgroup NOR_Exported_Types NOR Exported Types
  * @{
  */

/**
  * @brief  HAL SRAM State structures definition
  */
typedef enum
{
  HAL_NOR_STATE_RESET = 0x00U,
  HAL_NOR_STATE_READY = 0x01U,
  HAL_NOR_STATE_BUSY = 0x02U,
  HAL_NOR_STATE_ERROR = 0x03U,
  HAL_NOR_STATE_PROTECTED = 0x04U
} HAL_NOR_StateTypeDef;

/**
  * @brief  FMC NOR Status typedef
  */
typedef enum
{
  HAL_NOR_STATUS_SUCCESS = 0U,
  HAL_NOR_STATUS_ONGOING,
  HAL_NOR_STATUS_ERROR,
  HAL_NOR_STATUS_TIMEOUT
} HAL_NOR_StatusTypeDef;

/**
  * @brief  FMC NOR ID typedef
  */
typedef struct
{
  uint16_t Manufacturer_Code;

  uint16_t Device_Code1;

  uint16_t Device_Code2;

  uint16_t Device_Code3; /*!< Defines the device's codes used to identify the memory.
                                    These codes can be accessed by performing read operations with specific
                                    control signals and addresses set.They can also be accessed by issuing
                                    an Auto Select command                                                   */
} NOR_IDTypeDef;

/**
  * @brief  FMC NOR CFI typedef
  */
typedef struct
{
  /*!< Defines the information stored in the memory's Common flash interface
       which contains a description of various electrical and timing parameters,
       density information and functions supported by the memory                   */

  uint16_t CFI_1;

  uint16_t CFI_2;

  uint16_t CFI_3;

  uint16_t CFI_4;
} NOR_CFITypeDef;

/**
  * @brief  NOR handle Structure definition
  */



typedef struct


{
  FMC_Bank1_TypeDef *Instance;

  FMC_Bank1E_TypeDef *Extended;

  FMC_NORSRAM_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  volatile HAL_NOR_StateTypeDef State;

  uint32_t CommandSet;





} NOR_HandleTypeDef;
# 145 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nor.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/** @defgroup NOR_Exported_Macros NOR Exported Macros
  * @{
  */
/** @brief Reset NOR handle state
  * @param  __HANDLE__ specifies the NOR handle.
  * @retval None
  */
# 167 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nor.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup NOR_Exported_Functions NOR Exported Functions
  * @{
  */

/** @addtogroup NOR_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */

/* Initialization/de-initialization functions  ********************************/
HAL_StatusTypeDef HAL_NOR_Init(NOR_HandleTypeDef *hnor, FMC_NORSRAM_TimingTypeDef *Timing,
                               FMC_NORSRAM_TimingTypeDef *ExtTiming);
HAL_StatusTypeDef HAL_NOR_DeInit(NOR_HandleTypeDef *hnor);
void HAL_NOR_MspInit(NOR_HandleTypeDef *hnor);
void HAL_NOR_MspDeInit(NOR_HandleTypeDef *hnor);
void HAL_NOR_MspWait(NOR_HandleTypeDef *hnor, uint32_t Timeout);
/**
  * @}
  */

/** @addtogroup NOR_Exported_Functions_Group2 Input and Output functions
  * @{
  */

/* I/O operation functions  ***************************************************/
HAL_StatusTypeDef HAL_NOR_Read_ID(NOR_HandleTypeDef *hnor, NOR_IDTypeDef *pNOR_ID);
HAL_StatusTypeDef HAL_NOR_ReturnToReadMode(NOR_HandleTypeDef *hnor);
HAL_StatusTypeDef HAL_NOR_Read(NOR_HandleTypeDef *hnor, uint32_t *pAddress, uint16_t *pData);
HAL_StatusTypeDef HAL_NOR_Program(NOR_HandleTypeDef *hnor, uint32_t *pAddress, uint16_t *pData);

HAL_StatusTypeDef HAL_NOR_ReadBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData,
                                     uint32_t uwBufferSize);
HAL_StatusTypeDef HAL_NOR_ProgramBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData,
                                        uint32_t uwBufferSize);

HAL_StatusTypeDef HAL_NOR_Erase_Block(NOR_HandleTypeDef *hnor, uint32_t BlockAddress, uint32_t Address);
HAL_StatusTypeDef HAL_NOR_Erase_Chip(NOR_HandleTypeDef *hnor, uint32_t Address);
HAL_StatusTypeDef HAL_NOR_Read_CFI(NOR_HandleTypeDef *hnor, NOR_CFITypeDef *pNOR_CFI);







/**
  * @}
  */

/** @addtogroup NOR_Exported_Functions_Group3 NOR Control functions
  * @{
  */

/* NOR Control functions  *****************************************************/
HAL_StatusTypeDef HAL_NOR_WriteOperation_Enable(NOR_HandleTypeDef *hnor);
HAL_StatusTypeDef HAL_NOR_WriteOperation_Disable(NOR_HandleTypeDef *hnor);
/**
  * @}
  */

/** @addtogroup NOR_Exported_Functions_Group4 NOR State functions
  * @{
  */

/* NOR State functions ********************************************************/
HAL_NOR_StateTypeDef HAL_NOR_GetState(const NOR_HandleTypeDef *hnor);
HAL_NOR_StatusTypeDef HAL_NOR_GetStatus(NOR_HandleTypeDef *hnor, uint32_t Address, uint32_t Timeout);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup NOR_Private_Constants NOR Private Constants
  * @{
  */
/* NOR device IDs addresses */





/* NOR CFI IDs addresses */





/* NOR operation wait timeout */


/* NOR memory data width */



/* NOR memory device read/write start address */




/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup NOR_Private_Macros NOR Private Macros
  * @{
  */
/**
  * @brief  NOR memory address shifting.
  * @param  __NOR_ADDRESS NOR base address
  * @param  __NOR_MEMORY_WIDTH_ NOR memory width
  * @param  __ADDRESS__ NOR memory address
  * @retval NOR shifted address value
  */





/**
  * @brief  NOR memory write data to specified address.
  * @param  __ADDRESS__ NOR memory address
  * @param  __DATA__ Data to write
  * @retval None
  */





/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 363 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nand.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_nand.h
  * @author  MCD Application Team
  * @brief   Header file of NAND HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {



/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_fmc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_fmc.h
  * @author  MCD Application Team
  * @brief   Header file of FMC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nand.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup NAND
  * @{
  */

/* Exported typedef ----------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/** @defgroup NAND_Exported_Types NAND Exported Types
  * @{
  */

/**
  * @brief  HAL NAND State structures definition
  */
typedef enum
{
  HAL_NAND_STATE_RESET = 0x00U,
  HAL_NAND_STATE_READY = 0x01U,
  HAL_NAND_STATE_BUSY = 0x02U,
  HAL_NAND_STATE_ERROR = 0x03U
} HAL_NAND_StateTypeDef;

/**
  * @brief  NAND Memory electronic signature Structure definition
  */
typedef struct
{
  /*<! NAND memory electronic signature maker and device IDs */

  uint8_t Maker_Id;

  uint8_t Device_Id;

  uint8_t Third_Id;

  uint8_t Fourth_Id;
} NAND_IDTypeDef;

/**
  * @brief  NAND Memory address Structure definition
  */
typedef struct
{
  uint16_t Page;

  uint16_t Plane;

  uint16_t Block;

} NAND_AddressTypeDef;

/**
  * @brief  NAND Memory info Structure definition
  */
typedef struct
{
  uint32_t PageSize; /*!< NAND memory page (without spare area) size measured in bytes
                                              for 8 bits addressing or words for 16 bits addressing             */

  uint32_t SpareAreaSize; /*!< NAND memory spare area size measured in bytes
                                              for 8 bits addressing or words for 16 bits addressing             */

  uint32_t BlockSize;

  uint32_t BlockNbr;

  uint32_t PlaneNbr;

  uint32_t PlaneSize;

  FunctionalState ExtraCommandEnable; /*!< NAND extra command needed for Page reading mode. This
                                              parameter is mandatory for some NAND parts after the read
                                              command (NAND_CMD_AREA_TRUE1) and before DATA reading sequence.
                                              This parameter could be ENABLE or DISABLE
                                              Please check the Read Mode sequence in the NAND device datasheet */
} NAND_DeviceConfigTypeDef;

/**
  * @brief  NAND handle Structure definition
  */



typedef struct

{
  FMC_Bank3_TypeDef *Instance;

  FMC_NAND_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  volatile HAL_NAND_StateTypeDef State;

  NAND_DeviceConfigTypeDef Config;






} NAND_HandleTypeDef;
# 154 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nand.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/** @defgroup NAND_Exported_Macros NAND Exported Macros
  * @{
  */

/** @brief Reset NAND handle state
  * @param  __HANDLE__ specifies the NAND handle.
  * @retval None
  */
# 178 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nand.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup NAND_Exported_Functions NAND Exported Functions
  * @{
  */

/** @addtogroup NAND_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */

/* Initialization/de-initialization functions  ********************************/
HAL_StatusTypeDef HAL_NAND_Init(NAND_HandleTypeDef *hnand, FMC_NAND_PCC_TimingTypeDef *ComSpace_Timing,
                                 FMC_NAND_PCC_TimingTypeDef *AttSpace_Timing);
HAL_StatusTypeDef HAL_NAND_DeInit(NAND_HandleTypeDef *hnand);

HAL_StatusTypeDef HAL_NAND_ConfigDevice(NAND_HandleTypeDef *hnand, const NAND_DeviceConfigTypeDef *pDeviceConfig);

HAL_StatusTypeDef HAL_NAND_Read_ID(NAND_HandleTypeDef *hnand, NAND_IDTypeDef *pNAND_ID);

void HAL_NAND_MspInit(NAND_HandleTypeDef *hnand);
void HAL_NAND_MspDeInit(NAND_HandleTypeDef *hnand);
void HAL_NAND_IRQHandler(NAND_HandleTypeDef *hnand);
void HAL_NAND_ITCallback(NAND_HandleTypeDef *hnand);

/**
  * @}
  */

/** @addtogroup NAND_Exported_Functions_Group2 Input and Output functions
  * @{
  */

/* IO operation functions  ****************************************************/
HAL_StatusTypeDef HAL_NAND_Reset(NAND_HandleTypeDef *hnand);

HAL_StatusTypeDef HAL_NAND_Read_Page_8b(NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress,
                                         uint8_t *pBuffer, uint32_t NumPageToRead);
HAL_StatusTypeDef HAL_NAND_Write_Page_8b(NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress,
                                          const uint8_t *pBuffer, uint32_t NumPageToWrite);
HAL_StatusTypeDef HAL_NAND_Read_SpareArea_8b(NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress,
                                              uint8_t *pBuffer, uint32_t NumSpareAreaToRead);
HAL_StatusTypeDef HAL_NAND_Write_SpareArea_8b(NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress,
                                               const uint8_t *pBuffer, uint32_t NumSpareAreaTowrite);

HAL_StatusTypeDef HAL_NAND_Read_Page_16b(NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress,
                                          uint16_t *pBuffer, uint32_t NumPageToRead);
HAL_StatusTypeDef HAL_NAND_Write_Page_16b(NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress,
                                           const uint16_t *pBuffer, uint32_t NumPageToWrite);
HAL_StatusTypeDef HAL_NAND_Read_SpareArea_16b(NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress,
                                               uint16_t *pBuffer, uint32_t NumSpareAreaToRead);
HAL_StatusTypeDef HAL_NAND_Write_SpareArea_16b(NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress,
                                                const uint16_t *pBuffer, uint32_t NumSpareAreaTowrite);

HAL_StatusTypeDef HAL_NAND_Erase_Block(NAND_HandleTypeDef *hnand, const NAND_AddressTypeDef *pAddress);

uint32_t HAL_NAND_Address_Inc(const NAND_HandleTypeDef *hnand, NAND_AddressTypeDef *pAddress);
# 245 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nand.h"
/**
  * @}
  */

/** @addtogroup NAND_Exported_Functions_Group3 Peripheral Control functions
  * @{
  */

/* NAND Control functions  ****************************************************/
HAL_StatusTypeDef HAL_NAND_ECC_Enable(NAND_HandleTypeDef *hnand);
HAL_StatusTypeDef HAL_NAND_ECC_Disable(NAND_HandleTypeDef *hnand);
HAL_StatusTypeDef HAL_NAND_GetECC(NAND_HandleTypeDef *hnand, uint32_t *ECCval, uint32_t Timeout);

/**
  * @}
  */

/** @addtogroup NAND_Exported_Functions_Group4 Peripheral State functions
  * @{
  */
/* NAND State functions *******************************************************/
HAL_NAND_StateTypeDef HAL_NAND_GetState(const NAND_HandleTypeDef *hnand);
uint32_t HAL_NAND_Read_Status(const NAND_HandleTypeDef *hnand);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup NAND_Private_Constants NAND Private Constants
  * @{
  */
# 302 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_nand.h"
/* NAND memory status */






/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup NAND_Private_Macros NAND Private Macros
  * @{
  */

/**
  * @brief  NAND memory address computation.
  * @param  __ADDRESS__ NAND memory address.
  * @param  __HANDLE__  NAND handle.
  * @retval NAND Raw address value
  */






/**
  * @brief  NAND memory Column address computation.
  * @param  __HANDLE__ NAND handle.
  * @retval NAND Raw address value
  */


/**
  * @brief  NAND memory address cycling.
  * @param  __ADDRESS__ NAND memory address.
  * @retval NAND address cycling value.
  */





/**
  * @brief  NAND memory Columns cycling.
  * @param  __ADDRESS__ NAND memory address.
  * @retval NAND Column address cycling value.
  */



/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 367 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_i2c.h
  * @author  MCD Application Team
  * @brief   Header file of I2C HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup I2C
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup I2C_Exported_Types I2C Exported Types
  * @{
  */

/** @defgroup I2C_Configuration_Structure_definition I2C Configuration Structure definition
  * @brief  I2C Configuration Structure definition
  * @{
  */
typedef struct
{
  uint32_t Timing; /*!< Specifies the I2C_TIMINGR_register value.
                                     This parameter calculated by referring to I2C initialization section
                                     in Reference manual */

  uint32_t OwnAddress1; /*!< Specifies the first device own address.
                                     This parameter can be a 7-bit or 10-bit address. */

  uint32_t AddressingMode; /*!< Specifies if 7-bit or 10-bit addressing mode is selected.
                                     This parameter can be a value of @ref I2C_ADDRESSING_MODE */

  uint32_t DualAddressMode; /*!< Specifies if dual addressing mode is selected.
                                     This parameter can be a value of @ref I2C_DUAL_ADDRESSING_MODE */

  uint32_t OwnAddress2; /*!< Specifies the second device own address if dual addressing mode is selected
                                     This parameter can be a 7-bit address. */

  uint32_t OwnAddress2Masks; /*!< Specifies the acknowledge mask address second device own address if dual addressing
                                     mode is selected.
                                     This parameter can be a value of @ref I2C_OWN_ADDRESS2_MASKS */

  uint32_t GeneralCallMode; /*!< Specifies if general call mode is selected.
                                     This parameter can be a value of @ref I2C_GENERAL_CALL_ADDRESSING_MODE */

  uint32_t NoStretchMode; /*!< Specifies if nostretch mode is selected.
                                     This parameter can be a value of @ref I2C_NOSTRETCH_MODE */

} I2C_InitTypeDef;

/**
  * @}
  */

/** @defgroup HAL_state_structure_definition HAL state structure definition
  * @brief  HAL State structure definition
  * @note  HAL I2C State value coding follow below described bitmap :\n
  *          b7-b6  Error information\n
  *             00 : No Error\n
  *             01 : Abort (Abort user request on going)\n
  *             10 : Timeout\n
  *             11 : Error\n
  *          b5     Peripheral initialization status\n
  *             0  : Reset (peripheral not initialized)\n
  *             1  : Init done (peripheral initialized and ready to use. HAL I2C Init function called)\n
  *          b4     (not used)\n
  *             x  : Should be set to 0\n
  *          b3\n
  *             0  : Ready or Busy (No Listen mode ongoing)\n
  *             1  : Listen (peripheral in Address Listen Mode)\n
  *          b2     Intrinsic process state\n
  *             0  : Ready\n
  *             1  : Busy (peripheral busy with some configuration or internal operations)\n
  *          b1     Rx state\n
  *             0  : Ready (no Rx operation ongoing)\n
  *             1  : Busy (Rx operation ongoing)\n
  *          b0     Tx state\n
  *             0  : Ready (no Tx operation ongoing)\n
  *             1  : Busy (Tx operation ongoing)
  * @{
  */
typedef enum
{
  HAL_I2C_STATE_RESET = 0x00U,
  HAL_I2C_STATE_READY = 0x20U,
  HAL_I2C_STATE_BUSY = 0x24U,
  HAL_I2C_STATE_BUSY_TX = 0x21U,
  HAL_I2C_STATE_BUSY_RX = 0x22U,
  HAL_I2C_STATE_LISTEN = 0x28U,
  HAL_I2C_STATE_BUSY_TX_LISTEN = 0x29U, /*!< Address Listen Mode and Data Transmission
                                                 process is ongoing                         */
  HAL_I2C_STATE_BUSY_RX_LISTEN = 0x2AU, /*!< Address Listen Mode and Data Reception
                                                 process is ongoing                         */
  HAL_I2C_STATE_ABORT = 0x60U,

} HAL_I2C_StateTypeDef;

/**
  * @}
  */

/** @defgroup HAL_mode_structure_definition HAL mode structure definition
  * @brief  HAL Mode structure definition
  * @note  HAL I2C Mode value coding follow below described bitmap :\n
  *          b7     (not used)\n
  *             x  : Should be set to 0\n
  *          b6\n
  *             0  : None\n
  *             1  : Memory (HAL I2C communication is in Memory Mode)\n
  *          b5\n
  *             0  : None\n
  *             1  : Slave (HAL I2C communication is in Slave Mode)\n
  *          b4\n
  *             0  : None\n
  *             1  : Master (HAL I2C communication is in Master Mode)\n
  *          b3-b2-b1-b0  (not used)\n
  *             xxxx : Should be set to 0000
  * @{
  */
typedef enum
{
  HAL_I2C_MODE_NONE = 0x00U,
  HAL_I2C_MODE_MASTER = 0x10U,
  HAL_I2C_MODE_SLAVE = 0x20U,
  HAL_I2C_MODE_MEM = 0x40U

} HAL_I2C_ModeTypeDef;

/**
  * @}
  */

/** @defgroup I2C_Error_Code_definition I2C Error Code definition
  * @brief  I2C Error Code definition
  * @{
  */
# 176 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h"
/**
  * @}
  */

/** @defgroup I2C_handle_Structure_definition I2C handle Structure definition
  * @brief  I2C handle Structure definition
  * @{
  */
typedef struct __I2C_HandleTypeDef
{
  I2C_TypeDef *Instance;

  I2C_InitTypeDef Init;

  uint8_t *pBuffPtr;

  uint16_t XferSize;

  volatile uint16_t XferCount;

  volatile uint32_t XferOptions; /*!< I2C sequantial transfer options, this parameter can
                                                  be a value of @ref I2C_XFEROPTIONS */

  volatile uint32_t PreviousState;

  HAL_StatusTypeDef(*XferISR)(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint32_t ITSources);
  /*!< I2C transfer IRQ handler function pointer */

  DMA_HandleTypeDef *hdmatx;

  DMA_HandleTypeDef *hdmarx;


  HAL_LockTypeDef Lock;

  volatile HAL_I2C_StateTypeDef State;

  volatile HAL_I2C_ModeTypeDef Mode;

  volatile uint32_t ErrorCode;

  volatile uint32_t AddrEventCount;

  volatile uint32_t Devaddress;

  volatile uint32_t Memaddress;
# 252 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h"
} I2C_HandleTypeDef;
# 285 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h"
/**
  * @}
  */

/**
  * @}
  */
/* Exported constants --------------------------------------------------------*/

/** @defgroup I2C_Exported_Constants I2C Exported Constants
  * @{
  */

/** @defgroup I2C_XFEROPTIONS  I2C Sequential Transfer Options
  * @{
  */







/* List of XferOptions in usage of :
 * 1- Restart condition in all use cases (direction change or not)
 */


/**
  * @}
  */

/** @defgroup I2C_ADDRESSING_MODE I2C Addressing Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup I2C_DUAL_ADDRESSING_MODE I2C Dual Addressing Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup I2C_OWN_ADDRESS2_MASKS I2C Own Address2 Masks
  * @{
  */
# 346 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h"
/**
  * @}
  */

/** @defgroup I2C_GENERAL_CALL_ADDRESSING_MODE I2C General Call Addressing Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup I2C_NOSTRETCH_MODE I2C No-Stretch Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup I2C_MEMORY_ADDRESS_SIZE I2C Memory Address Size
  * @{
  */


/**
  * @}
  */

/** @defgroup I2C_XFERDIRECTION I2C Transfer Direction Master Point of View
  * @{
  */


/**
  * @}
  */

/** @defgroup I2C_RELOAD_END_MODE I2C Reload End Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup I2C_START_STOP_MODE I2C Start or Stop Mode
  * @{
  */




/**
  * @}
  */

/** @defgroup I2C_Interrupt_configuration_definition I2C Interrupt configuration definition
  * @brief I2C Interrupt definition
  *        Elements values convention: 0xXXXXXXXX
  *           - XXXXXXXX  : Interrupt control mask
  * @{
  */







/**
  * @}
  */

/** @defgroup I2C_Flag_definition I2C Flag definition
  * @{
  */
# 443 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/

/** @defgroup I2C_Exported_Macros I2C Exported Macros
  * @{
  */

/** @brief Reset I2C handle state.
  * @param  __HANDLE__ specifies the I2C Handle.
  * @retval None
  */
# 471 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h"
/** @brief  Enable the specified I2C interrupt.
  * @param  __HANDLE__ specifies the I2C Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to enable.
  *        This parameter can be one of the following values:
  *            @arg @ref I2C_IT_ERRI  Errors interrupt enable
  *            @arg @ref I2C_IT_TCI   Transfer complete interrupt enable
  *            @arg @ref I2C_IT_STOPI STOP detection interrupt enable
  *            @arg @ref I2C_IT_NACKI NACK received interrupt enable
  *            @arg @ref I2C_IT_ADDRI Address match interrupt enable
  *            @arg @ref I2C_IT_RXI   RX interrupt enable
  *            @arg @ref I2C_IT_TXI   TX interrupt enable
  *
  * @retval None
  */


/** @brief  Disable the specified I2C interrupt.
  * @param  __HANDLE__ specifies the I2C Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to disable.
  *        This parameter can be one of the following values:
  *            @arg @ref I2C_IT_ERRI  Errors interrupt enable
  *            @arg @ref I2C_IT_TCI   Transfer complete interrupt enable
  *            @arg @ref I2C_IT_STOPI STOP detection interrupt enable
  *            @arg @ref I2C_IT_NACKI NACK received interrupt enable
  *            @arg @ref I2C_IT_ADDRI Address match interrupt enable
  *            @arg @ref I2C_IT_RXI   RX interrupt enable
  *            @arg @ref I2C_IT_TXI   TX interrupt enable
  *
  * @retval None
  */


/** @brief  Check whether the specified I2C interrupt source is enabled or not.
  * @param  __HANDLE__ specifies the I2C Handle.
  * @param  __INTERRUPT__ specifies the I2C interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg @ref I2C_IT_ERRI  Errors interrupt enable
  *            @arg @ref I2C_IT_TCI   Transfer complete interrupt enable
  *            @arg @ref I2C_IT_STOPI STOP detection interrupt enable
  *            @arg @ref I2C_IT_NACKI NACK received interrupt enable
  *            @arg @ref I2C_IT_ADDRI Address match interrupt enable
  *            @arg @ref I2C_IT_RXI   RX interrupt enable
  *            @arg @ref I2C_IT_TXI   TX interrupt enable
  *
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */



/** @brief  Check whether the specified I2C flag is set or not.
  * @param  __HANDLE__ specifies the I2C Handle.
  * @param  __FLAG__ specifies the flag to check.
  *        This parameter can be one of the following values:
  *            @arg @ref I2C_FLAG_TXE     Transmit data register empty
  *            @arg @ref I2C_FLAG_TXIS    Transmit interrupt status
  *            @arg @ref I2C_FLAG_RXNE    Receive data register not empty
  *            @arg @ref I2C_FLAG_ADDR    Address matched (slave mode)
  *            @arg @ref I2C_FLAG_AF      Acknowledge failure received flag
  *            @arg @ref I2C_FLAG_STOPF   STOP detection flag
  *            @arg @ref I2C_FLAG_TC      Transfer complete (master mode)
  *            @arg @ref I2C_FLAG_TCR     Transfer complete reload
  *            @arg @ref I2C_FLAG_BERR    Bus error
  *            @arg @ref I2C_FLAG_ARLO    Arbitration lost
  *            @arg @ref I2C_FLAG_OVR     Overrun/Underrun
  *            @arg @ref I2C_FLAG_PECERR  PEC error in reception
  *            @arg @ref I2C_FLAG_TIMEOUT Timeout or Tlow detection flag
  *            @arg @ref I2C_FLAG_ALERT   SMBus alert
  *            @arg @ref I2C_FLAG_BUSY    Bus busy
  *            @arg @ref I2C_FLAG_DIR     Transfer direction (slave mode)
  *
  * @retval The new state of __FLAG__ (SET or RESET).
  */




/** @brief  Clear the I2C pending flags which are cleared by writing 1 in a specific bit.
  * @param  __HANDLE__ specifies the I2C Handle.
  * @param  __FLAG__ specifies the flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg @ref I2C_FLAG_TXE     Transmit data register empty
  *            @arg @ref I2C_FLAG_ADDR    Address matched (slave mode)
  *            @arg @ref I2C_FLAG_AF      Acknowledge failure received flag
  *            @arg @ref I2C_FLAG_STOPF   STOP detection flag
  *            @arg @ref I2C_FLAG_BERR    Bus error
  *            @arg @ref I2C_FLAG_ARLO    Arbitration lost
  *            @arg @ref I2C_FLAG_OVR     Overrun/Underrun
  *            @arg @ref I2C_FLAG_PECERR  PEC error in reception
  *            @arg @ref I2C_FLAG_TIMEOUT Timeout or Tlow detection flag
  *            @arg @ref I2C_FLAG_ALERT   SMBus alert
  *
  * @retval None
  */




/** @brief  Enable the specified I2C peripheral.
  * @param  __HANDLE__ specifies the I2C Handle.
  * @retval None
  */


/** @brief  Disable the specified I2C peripheral.
  * @param  __HANDLE__ specifies the I2C Handle.
  * @retval None
  */


/** @brief  Generate a Non-Acknowledge I2C peripheral in Slave mode.
  * @param  __HANDLE__ specifies the I2C Handle.
  * @retval None
  */

/**
  * @}
  */

/* Include I2C HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_i2c_ex.h
  * @author  MCD Application Team
  * @brief   Header file of I2C HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup I2CEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup I2CEx_Exported_Constants I2C Extended Exported Constants
  * @{
  */

/** @defgroup I2CEx_Analog_Filter I2C Extended Analog Filter
  * @{
  */


/**
  * @}
  */

/** @defgroup I2CEx_FastModePlus I2C Extended Fast Mode Plus
  * @{
  */
# 70 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c_ex.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup I2CEx_Exported_Macros I2C Extended Exported Macros
  * @{
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup I2CEx_Exported_Functions I2C Extended Exported Functions
  * @{
  */

/** @addtogroup I2CEx_Exported_Functions_Group1 Filter Mode Functions
  * @{
  */
/* Peripheral Control functions  ************************************************/
HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter);
HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter);
/**
  * @}
  */

/** @addtogroup I2CEx_Exported_Functions_Group2 WakeUp Mode Functions
  * @{
  */
HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c);
HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c);
/**
  * @}
  */

/** @addtogroup I2CEx_Exported_Functions_Group3 Fast Mode Plus Functions
  * @{
  */
void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus);
void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus);
/**
  * @}
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup I2CEx_Private_Constants I2C Extended Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup I2CEx_Private_Macro I2C Extended Private Macros
  * @{
  */
# 150 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c_ex.h"
/**
  * @}
  */

/* Private Functions ---------------------------------------------------------*/
/** @defgroup I2CEx_Private_Functions I2C Extended Private Functions
  * @{
  */
/* Private functions are defined in stm32h7xx_hal_i2c_ex.c file */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 591 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup I2C_Exported_Functions
  * @{
  */

/** @addtogroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */
/* Initialization and de-initialization functions******************************/
HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c);
HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c);

/* Callbacks Register/UnRegister functions  ***********************************/
# 615 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h"
/**
  * @}
  */

/** @addtogroup I2C_Exported_Functions_Group2 Input and Output operation functions
  * @{
  */
/* IO operation functions  ****************************************************/
/******* Blocking mode: Polling */
HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                          uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                         uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
                                         uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
                                        uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress,
                                    uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress,
                                   uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials,
                                        uint32_t Timeout);

/******* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                             uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                            uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress,
                                       uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress,
                                      uint16_t MemAddSize, uint8_t *pData, uint16_t Size);

HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                                 uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                                uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
                                                uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
                                               uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c);
HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c);
HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress);

/******* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                              uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                             uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress,
                                        uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress,
                                       uint16_t MemAddSize, uint8_t *pData, uint16_t Size);

HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                                  uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData,
                                                 uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
                                                 uint32_t XferOptions);
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
                                                uint32_t XferOptions);
/**
  * @}
  */

/** @addtogroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
  * @{
  */
/******* I2C IRQHandler and Callbacks used in non blocking modes (Interrupt and DMA) */
void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c);
void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode);
void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c);
/**
  * @}
  */

/** @addtogroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
  * @{
  */
/* Peripheral State, Mode and Error functions  *********************************/
HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c);
HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c);
uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c);

/**
  * @}
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup I2C_Private_Constants I2C Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup I2C_Private_Macro I2C Private Macros
  * @{
  */
# 812 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2c.h"
/**
  * @}
  */

/* Private Functions ---------------------------------------------------------*/
/** @defgroup I2C_Private_Functions I2C Private Functions
  * @{
  */
/* Private functions are defined in stm32h7xx_hal_i2c.c file */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 371 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2s.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_i2s.h
  * @author  MCD Application Team
  * @brief   Header file of I2S HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2s.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup I2S
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup I2S_Exported_Types I2S Exported Types
  * @{
  */

/**
  * @brief I2S Init structure definition
  */
typedef struct
{
  uint32_t Mode; /*!< Specifies the I2S operating mode.
                                     This parameter can be a value of @ref I2S_Mode */

  uint32_t Standard; /*!< Specifies the standard used for the I2S communication.
                                     This parameter can be a value of @ref I2S_Standard */

  uint32_t DataFormat; /*!< Specifies the data format for the I2S communication.
                                     This parameter can be a value of @ref I2S_Data_Format */

  uint32_t MCLKOutput; /*!< Specifies whether the I2S MCLK output is enabled or not.
                                     This parameter can be a value of @ref I2S_MCLK_Output */

  uint32_t AudioFreq; /*!< Specifies the frequency selected for the I2S communication.
                                     This parameter can be a value of @ref I2S_Audio_Frequency */

  uint32_t CPOL; /*!< Specifies the idle state of the I2S clock.
                                     This parameter can be a value of @ref I2S_Clock_Polarity */

  uint32_t FirstBit; /*!< Specifies whether data transfers start from MSB or LSB bit.
                                     This parameter can be a value of @ref I2S_MSB_LSB_Transmission       */

  uint32_t WSInversion; /*!< Control the Word Select Inversion.
                                     This parameter can be a value of @ref I2S_WSInversion                */

  uint32_t Data24BitAlignment; /*!< Specifies the Data Padding for 24 bits data length
                                      This parameter can be a value of @ref I2S_Data_24Bit_Alignment       */

  uint32_t MasterKeepIOState; /*!< Control of Alternate function GPIOs state
                                     This parameter can be a value of @ref I2S_Master_Keep_IO_State */

} I2S_InitTypeDef;

/**
  * @brief  HAL State structures definition
  */
typedef enum
{
  HAL_I2S_STATE_RESET = 0x00UL,
  HAL_I2S_STATE_READY = 0x01UL,
  HAL_I2S_STATE_BUSY = 0x02UL,
  HAL_I2S_STATE_BUSY_TX = 0x03UL,
  HAL_I2S_STATE_BUSY_RX = 0x04UL,
  HAL_I2S_STATE_BUSY_TX_RX = 0x05UL,
  HAL_I2S_STATE_TIMEOUT = 0x06UL,
  HAL_I2S_STATE_ERROR = 0x07UL
} HAL_I2S_StateTypeDef;

/**
  * @brief I2S handle Structure definition
  */
typedef struct __I2S_HandleTypeDef
{
  SPI_TypeDef *Instance;

  I2S_InitTypeDef Init;

  const uint16_t *pTxBuffPtr;

  volatile uint16_t TxXferSize;

  volatile uint16_t TxXferCount;

  uint16_t *pRxBuffPtr;

  volatile uint16_t RxXferSize;

  volatile uint16_t RxXferCount; /*!< I2S Rx transfer counter
                                                      (This field is initialized at the
                                                       same value as transfer size at the
                                                       beginning of the transfer and
                                                       decremented when a sample is received
                                                       NbSamplesReceived = RxBufferSize-RxBufferCount) */

  void (*RxISR)(struct __I2S_HandleTypeDef *hi2s);

  void (*TxISR)(struct __I2S_HandleTypeDef *hi2s);

  DMA_HandleTypeDef *hdmatx;

  DMA_HandleTypeDef *hdmarx;

  volatile HAL_LockTypeDef Lock;

  volatile HAL_I2S_StateTypeDef State;

  volatile uint32_t ErrorCode; /*!< I2S Error code
                                                        This parameter can be a value of @ref I2S_Error */
# 148 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2s.h"
} I2S_HandleTypeDef;
# 175 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2s.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup I2S_Exported_Constants I2S Exported Constants
  * @{
  */
/** @defgroup I2S_Error I2S Error
  * @{
  */
# 198 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2s.h"
/**
  * @}
  */

/** @defgroup I2S_Mode I2S Mode
  * @{
  */






/**
  * @}
  */

/** @defgroup I2S_Standard I2S Standard
  * @{
  */





/**
  * @}
  */

/** @defgroup I2S_Data_Format I2S Data Format
  * @{
  */




/**
  * @}
  */

/** @defgroup I2S_MCLK_Output I2S MCLK Output
  * @{
  */


/**
  * @}
  */

/** @defgroup I2S_Audio_Frequency I2S Audio Frequency
  * @{
  */
# 260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2s.h"
/**
  * @}
  */

/** @defgroup I2S_Clock_Polarity I2S FullDuplex Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup I2S_MSB_LSB_Transmission I2S MSB LSB Transmission
  * @{
  */


/**
  * @}
  */

/** @defgroup I2S_WSInversion I2S Word Select Inversion
  * @{
  */


/**
  * @}
  */

/** @defgroup I2S_Data_24Bit_Alignment Data Padding 24Bit
  * @{
  */


/**
  * @}
  */

/** @defgroup I2S_Master_Keep_IO_State Keep IO State
  * @{
  */


/**
  * @}
  */

/** @defgroup I2S_Interrupts_Definition I2S Interrupts Definition
  * @{
  */







/**
  * @}
  */

/** @defgroup I2S_Flags_Definition I2S Flags Definition
  * @{
  */
# 334 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2s.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup I2S_Exported_macros I2S Exported Macros
  * @{
  */

/** @brief  Reset I2S handle state
  * @param  __HANDLE__ specifies the I2S Handle.
  * @retval None
  */
# 361 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2s.h"
/** @brief  Enable the specified SPI peripheral (in I2S mode).
  * @param  __HANDLE__ specifies the I2S Handle.
  * @retval None
  */


/** @brief  Disable the specified SPI peripheral (in I2S mode).
  * @param  __HANDLE__ specifies the I2S Handle.
  * @retval None
  */


/** @brief  Enable the specified I2S interrupts.
  * @param  __HANDLE__ specifies the I2S Handle.
  *        This parameter can be I2S where x: 1, 2 or 3 to select the I2S peripheral.
  * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
  *         This parameter can be one of the following values:
  *            @arg I2S_IT_RXP : Rx-Packet available interrupt
  *            @arg I2S_IT_TXP : Tx-Packet space available interrupt
  *            @arg I2S_IT_UDR : Underrun interrupt
  *            @arg I2S_IT_OVR : Overrun interrupt
  *            @arg I2S_IT_FRE : TI mode frame format error interrupt
  *            @arg I2S_IT_ERR : Error interrupt enable
  * @retval None
  */


/** @brief  Disable the specified I2S interrupts.
  * @param  __HANDLE__ specifies the I2S Handle.
  *         This parameter can be I2S where x: 1, 2 or 3 to select the I2S peripheral.
  * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
  *         This parameter can be one of the following values:
  *            @arg I2S_IT_RXP : Rx-Packet available interrupt
  *            @arg I2S_IT_TXP : Tx-Packet space available interrupt
  *            @arg I2S_IT_UDR : Underrun interrupt
  *            @arg I2S_IT_OVR : Overrun interrupt
  *            @arg I2S_IT_FRE : TI mode frame format error interrupt
  *            @arg I2S_IT_ERR : Error interrupt enable
  * @retval None
  */


/** @brief  Check if the specified I2S interrupt source is enabled or disabled.
  * @param  __HANDLE__ specifies the I2S Handle.
  *         This parameter can be I2S where x: 1, 2 or 3 to select the I2S peripheral.
  * @param  __INTERRUPT__ specifies the I2S interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg I2S_IT_RXP : Rx-Packet available interrupt
  *            @arg I2S_IT_TXP : Tx-Packet space available interrupt
  *            @arg I2S_IT_DXP : Tx-Packet space available interrupt
  *            @arg I2S_IT_UDR : Underrun interrupt
  *            @arg I2S_IT_OVR : Overrun interrupt
  *            @arg I2S_IT_FRE : TI mode frame format error interrupt
  *            @arg I2S_IT_ERR : Error interrupt enable
  * @retval The new state of __IT__ (TRUE or FALSE).
  */



/** @brief  Check whether the specified I2S flag is set or not.
  * @param  __HANDLE__ specifies the I2S Handle.
  *         This parameter can be I2S where x: 1, 2 or 3 to select the I2S peripheral.
  * @param  __FLAG__ specifies the flag to check.
  *         This parameter can be one of the following values:
  *            @arg I2S_FLAG_RXP : Rx-Packet available flag
  *            @arg I2S_FLAG_TXP : Tx-Packet space available flag
  *            @arg I2S_FLAG_UDR : Underrun flag
  *            @arg I2S_FLAG_OVR : Overrun flag
  *            @arg I2S_FLAG_FRE : TI mode frame format error flag
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */


/** @brief Clear the I2S OVR pending flag.
  * @param  __HANDLE__ specifies the I2S Handle.
  * @retval None
  */


/** @brief Clear the I2S UDR pending flag.
  * @param  __HANDLE__ specifies the I2S Handle.
  * @retval None
  */


/** @brief  Clear the I2S FRE pending flag.
  * @param  __HANDLE__: specifies the I2S Handle.
  * @retval None
  */

/**
  * @}
  */


/* Exported functions --------------------------------------------------------*/
/** @addtogroup I2S_Exported_Functions
  * @{
  */

/** @addtogroup I2S_Exported_Functions_Group1
  * @{
  */
/* Initialization/de-initialization functions  ********************************/
HAL_StatusTypeDef HAL_I2S_Init(I2S_HandleTypeDef *hi2s);
HAL_StatusTypeDef HAL_I2S_DeInit(I2S_HandleTypeDef *hi2s);
void HAL_I2S_MspInit(I2S_HandleTypeDef *hi2s);
void HAL_I2S_MspDeInit(I2S_HandleTypeDef *hi2s);

/* Callbacks Register/UnRegister functions  ***********************************/





/**
  * @}
  */

/** @addtogroup I2S_Exported_Functions_Group2
  * @{
  */
/* I/O operation functions  ***************************************************/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_I2S_Transmit(I2S_HandleTypeDef *hi2s, const uint16_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2S_Receive(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2SEx_TransmitReceive(I2S_HandleTypeDef *hi2s, const uint16_t *pTxData, uint16_t *pRxData,
                                            uint16_t Size, uint32_t Timeout);

/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_I2S_Transmit_IT(I2S_HandleTypeDef *hi2s, const uint16_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2S_Receive_IT(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_IT(I2S_HandleTypeDef *hi2s, const uint16_t *pTxData, uint16_t *pRxData,
                                               uint16_t Size);

void HAL_I2S_IRQHandler(I2S_HandleTypeDef *hi2s);

/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_I2S_Transmit_DMA(I2S_HandleTypeDef *hi2s, const uint16_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2S_Receive_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_DMA(I2S_HandleTypeDef *hi2s, const uint16_t *pTxData, uint16_t *pRxData,
                                                uint16_t Size);

HAL_StatusTypeDef HAL_I2S_DMAPause(I2S_HandleTypeDef *hi2s);
HAL_StatusTypeDef HAL_I2S_DMAResume(I2S_HandleTypeDef *hi2s);
HAL_StatusTypeDef HAL_I2S_DMAStop(I2S_HandleTypeDef *hi2s);

/* IO Swap feature */
HAL_StatusTypeDef HAL_I2S_EnableIOSwap(I2S_HandleTypeDef *hi2s);
HAL_StatusTypeDef HAL_I2S_DisableIOSwap(I2S_HandleTypeDef *hi2s);
uint32_t HAL_I2S_IsEnabledIOSwap(const I2S_HandleTypeDef *hi2s);

/* Callbacks used in non blocking modes (Interrupt and DMA) *******************/
void HAL_I2S_TxHalfCpltCallback(I2S_HandleTypeDef *hi2s);
void HAL_I2S_TxCpltCallback(I2S_HandleTypeDef *hi2s);
void HAL_I2S_RxHalfCpltCallback(I2S_HandleTypeDef *hi2s);
void HAL_I2S_RxCpltCallback(I2S_HandleTypeDef *hi2s);
void HAL_I2SEx_TxRxHalfCpltCallback(I2S_HandleTypeDef *hi2s);
void HAL_I2SEx_TxRxCpltCallback(I2S_HandleTypeDef *hi2s);
void HAL_I2S_ErrorCallback(I2S_HandleTypeDef *hi2s);
/**
  * @}
  */

/** @addtogroup I2S_Exported_Functions_Group3
  * @{
  */
/* Peripheral Control and State functions  ************************************/
HAL_I2S_StateTypeDef HAL_I2S_GetState(const I2S_HandleTypeDef *hi2s);
uint32_t HAL_I2S_GetError(const I2S_HandleTypeDef *hi2s);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup I2S_Private_Constants I2S Private Constants
  * @{
  */

/**
  * @}
  */

/* Private Functions ---------------------------------------------------------*/
/** @defgroup I2S_Private_Functions I2S Private Functions
  * @{
  */
/* Private functions are defined in stm32h7xx_hal_i2S.c file */
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup I2S_Private_Macros I2S Private Macros
  * @{
  */

/** @brief  Check whether the specified SPI flag is set or not.
  * @param  __SR__  copy of I2S SR register.
  * @param  __FLAG__ specifies the flag to check.
  *         This parameter can be one of the following values:
  *            @arg I2S_FLAG_RXP : Rx-Packet available flag
  *            @arg I2S_FLAG_TXP : Tx-Packet space available flag
  *            @arg I2S_FLAG_UDR : Underrun flag
  *            @arg I2S_FLAG_OVR : Overrun flag
  *            @arg I2S_FLAG_FRE : TI mode frame format error flag
  * @retval SET or RESET.
  */




/** @brief  Check whether the specified SPI Interrupt is set or not.
  * @param  __IER__  copy of I2S IER register.
  * @param  __INTERRUPT__ specifies the SPI interrupt source to check.
  *         This parameter can be one of the following values:
  *            @arg I2S_IT_RXP : Rx-Packet available interrupt
  *            @arg I2S_IT_TXP : Tx-Packet space available interrupt
  *            @arg I2S_IT_UDR : Underrun interrupt
  *            @arg I2S_IT_OVR : Overrun interrupt
  *            @arg I2S_IT_FRE : TI mode frame format error interrupt
  *            @arg I2S_IT_ERR : Error interrupt enable
  * @retval SET or RESET.
  */



/** @brief  Checks if I2S Mode parameter is in allowed range.
  * @param  __MODE__ specifies the I2S Mode.
  *         This parameter can be a value of @ref I2S_Mode
  * @retval None
  */
# 651 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_i2s.h"
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 375 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_iwdg.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_iwdg.h
  * @author  MCD Application Team
  * @brief   Header file of IWDG HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_iwdg.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @defgroup IWDG IWDG
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup IWDG_Exported_Types IWDG Exported Types
  * @{
  */

/**
  * @brief  IWDG Init structure definition
  */
typedef struct
{
  uint32_t Prescaler; /*!< Select the prescaler of the IWDG.
                            This parameter can be a value of @ref IWDG_Prescaler */

  uint32_t Reload; /*!< Specifies the IWDG down-counter reload value.
                            This parameter must be a number between Min_Data = 0 and Max_Data = 0x0FFF */

  uint32_t Window; /*!< Specifies the window value to be compared to the down-counter.
                            This parameter must be a number between Min_Data = 0 and Max_Data = 0x0FFF */

} IWDG_InitTypeDef;

/**
  * @brief  IWDG Handle Structure definition
  */
typedef struct
{
  IWDG_TypeDef *Instance;

  IWDG_InitTypeDef Init;
} IWDG_HandleTypeDef;


/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup IWDG_Exported_Constants IWDG Exported Constants
  * @{
  */

/** @defgroup IWDG_Prescaler IWDG Prescaler
  * @{
  */







/**
  * @}
  */

/** @defgroup IWDG_Window_option IWDG Window option
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup IWDG_Exported_Macros IWDG Exported Macros
  * @{
  */

/**
  * @brief  Enable the IWDG peripheral.
  * @param  __HANDLE__  IWDG handle
  * @retval None
  */


/**
  * @brief  Reload IWDG counter with value defined in the reload register
  *         (write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers disabled).
  * @param  __HANDLE__  IWDG handle
  * @retval None
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup IWDG_Exported_Functions  IWDG Exported Functions
  * @{
  */

/** @defgroup IWDG_Exported_Functions_Group1 Initialization and Start functions
  * @{
  */
/* Initialization/Start functions  ********************************************/
HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg);
/**
  * @}
  */

/** @defgroup IWDG_Exported_Functions_Group2 IO operation functions
  * @{
  */
/* I/O operation functions ****************************************************/
HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg);
/**
  * @}
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup IWDG_Private_Constants IWDG Private Constants
  * @{
  */

/**
  * @brief  IWDG Key Register BitMask
  */





/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup IWDG_Private_Macros IWDG Private Macros
  * @{
  */

/**
  * @brief  Enable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers.
  * @param  __HANDLE__  IWDG handle
  * @retval None
  */


/**
  * @brief  Disable write access to IWDG_PR, IWDG_RLR and IWDG_WINR registers.
  * @param  __HANDLE__  IWDG handle
  * @retval None
  */


/**
  * @brief  Check IWDG prescaler value.
  * @param  __PRESCALER__  IWDG prescaler value
  * @retval None
  */
# 205 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_iwdg.h"
/**
  * @brief  Check IWDG reload value.
  * @param  __RELOAD__  IWDG reload value
  * @retval None
  */


/**
  * @brief  Check IWDG window value.
  * @param  __WINDOW__  IWDG window value
  * @retval None
  */



/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 379 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_jpeg.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_jpeg.h
  * @author  MCD Application Team
  * @brief   Header file of JPEG HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_jpeg.h" 2



/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup JPEG
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup JPEG_Exported_Types JPEG Exported Types
  * @{
  */

/** @defgroup JPEG_Configuration_Structure_definition JPEG Configuration for encoding Structure definition
  * @brief  JPEG encoding configuration Structure definition
  * @{
  */
typedef struct
{
  uint32_t ColorSpace; /*!< Image Color space : gray-scale, YCBCR, RGB or CMYK
                                           This parameter can be a value of @ref JPEG_ColorSpace */

  uint32_t ChromaSubsampling; /*!< Chroma Subsampling in case of YCBCR or CMYK color space, 0-> 4:4:4 , 1-> 4:2:2, 2 -> 4:1:1, 3 -> 4:2:0
                                           This parameter can be a value of @ref JPEG_ChromaSubsampling */

  uint32_t ImageHeight;

  uint32_t ImageWidth;

  uint32_t ImageQuality;

} JPEG_ConfTypeDef;
/**
  * @}
  */

/** @defgroup HAL_JPEG_state_structure_definition HAL JPEG state structure definition
  * @brief  HAL JPEG State structure definition
  * @{
  */
typedef enum
{
  HAL_JPEG_STATE_RESET = 0x00U,
  HAL_JPEG_STATE_READY = 0x01U,
  HAL_JPEG_STATE_BUSY = 0x02U,
  HAL_JPEG_STATE_BUSY_ENCODING = 0x03U,
  HAL_JPEG_STATE_BUSY_DECODING = 0x04U,
  HAL_JPEG_STATE_TIMEOUT = 0x05U,
  HAL_JPEG_STATE_ERROR = 0x06U
} HAL_JPEG_STATETypeDef;

/**
  * @}
  */


/** @defgroup JPEG_handle_Structure_definition JPEG handle Structure definition
  * @brief  JPEG handle Structure definition
  * @{
  */



typedef struct

{
  JPEG_TypeDef *Instance;

  JPEG_ConfTypeDef Conf;

  uint8_t *pJpegInBuffPtr;

  uint8_t *pJpegOutBuffPtr;

  volatile uint32_t JpegInCount;

  volatile uint32_t JpegOutCount;

  uint32_t InDataLength;

  uint32_t OutDataLength;

  MDMA_HandleTypeDef *hdmain;

  MDMA_HandleTypeDef *hdmaout;

  uint8_t CustomQuanTable;

  uint8_t *QuantTable0;

  uint8_t *QuantTable1;

  uint8_t *QuantTable2;

  uint8_t *QuantTable3;

  HAL_LockTypeDef Lock;

  volatile HAL_JPEG_STATETypeDef State;

  volatile uint32_t ErrorCode;

  volatile uint32_t Context;
# 158 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_jpeg.h"
} JPEG_HandleTypeDef;
/**
  * @}
  */
# 200 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_jpeg.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup JPEG_Exported_Constants JPEG Exported Constants
  * @{
  */

/** @defgroup JPEG_Error_Code_definition JPEG Error Code definition
  * @brief  JPEG Error Code definition
  * @{
  */
# 223 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_jpeg.h"
/**
  * @}
  */

/** @defgroup JPEG_Quantization_Table_Size JPEG Quantization Table Size
  * @brief  JPEG Quantization Table Size
  * @{
  */

/**
  * @}
  */


/** @defgroup JPEG_ColorSpace JPEG ColorSpace
  * @brief  JPEG Color Space
  * @{
  */





/**
  * @}
  */


/** @defgroup JPEG_ChromaSubsampling JPEG Chrominance Sampling
  * @brief  JPEG Chrominance Sampling
  * @{
  */




/**
  * @}
  */

/** @defgroup JPEG_ImageQuality JPEG Image Quality
  * @brief  JPEG Min and Max Image Quality
  * @{
  */



/**
  * @}
  */

/** @defgroup JPEG_Interrupt_configuration_definition JPEG Interrupt configuration definition
  * @brief JPEG Interrupt definition
  * @{
  */






/**
  * @}
  */

/** @defgroup JPEG_Flag_definition JPEG Flag definition
  * @brief JPEG Flags definition
  * @{
  */
# 301 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_jpeg.h"
/**
  * @}
  */

/** @defgroup JPEG_PROCESS_PAUSE_RESUME_definition JPEG Process Pause Resume definition
  * @brief JPEG process pause, resume definition
  * @{
  */



/**
  * @}
  */

/**
  * @}
  */
/* Exported macro ------------------------------------------------------------*/

/** @defgroup JPEG_Exported_Macros JPEG Exported Macros
  * @{
  */

/** @brief Reset JPEG handle state
  * @param  __HANDLE__ specifies the JPEG handle.
  * @retval None
  */
# 340 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_jpeg.h"
/**
  * @brief  Enable the JPEG peripheral.
  * @param  __HANDLE__ specifies the JPEG handle.
  * @retval None
  */


/**
  * @brief Disable the JPEG peripheral.
  * @param  __HANDLE__ specifies the JPEG handle.
  * @retval None
  */



/**
  * @brief  Check the specified JPEG status flag.
  * @param  __HANDLE__ specifies the JPEG handle.
  * @param  __FLAG__  specifies the flag to check
  *         This parameter can be one of the following values:
  *         @arg JPEG_FLAG_IFTF  : The input FIFO is not full and is below its threshold flag
  *         @arg JPEG_FLAG_IFNFF : The input FIFO Not Full Flag, a data can be written
  *         @arg JPEG_FLAG_OFTF  : The output FIFO is not empty and has reach its threshold
  *         @arg JPEG_FLAG_OFNEF : The output FIFO is not empty, a data is available
  *         @arg JPEG_FLAG_EOCF  : JPEG Codec core has finished the encoding or the decoding process
  *                                and than last data has been sent to the output FIFO
  *         @arg JPEG_FLAG_HPDF  : JPEG Codec has finished the parsing of the headers
  *                                and the internal registers have been updated
  *         @arg JPEG_FLAG_COF   : JPEG Codec operation on going  flag
  *
  * @retval __HAL_JPEG_GET_FLAG : returns The new state of __FLAG__ (TRUE or FALSE)
  */



/**
  * @brief  Clear the specified JPEG status flag.
  * @param  __HANDLE__ specifies the JPEG handle.
  * @param  __FLAG__  specifies the flag to clear
  *         This parameter can be one of the following values:
  *         @arg JPEG_FLAG_EOCF  : JPEG Codec core has finished the encoding or the decoding process
  *                                and than last data has been sent to the output FIFO
  *         @arg JPEG_FLAG_HPDF  : JPEG Codec has finished the parsing of the headers
  * @retval None
  */




/**
  * @brief  Enable Interrupt.
  * @param   __HANDLE__ specifies the JPEG handle.
  * @param  __INTERRUPT__  specifies the interrupt to enable
  *         This parameter can be one of the following values:
  *         @arg JPEG_IT_IFT   : Input FIFO Threshold Interrupt
  *         @arg JPEG_IT_IFNF  : Input FIFO Not Full Interrupt
  *         @arg JPEG_IT_OFT   : Output FIFO Threshold Interrupt
  *         @arg JPEG_IT_OFNE  : Output FIFO Not empty Interrupt
  *         @arg JPEG_IT_EOC   : End of Conversion Interrupt
  *         @arg JPEG_IT_HPD   : Header Parsing Done Interrupt
  *
  * @retval No return
  */


/**
  * @brief  Disable Interrupt.
  * @param   __HANDLE__ specifies the JPEG handle.
  * @param  __INTERRUPT__ specifies the interrupt to disable
  *         This parameter can be one of the following values:
  *         @arg JPEG_IT_IFT   : Input FIFO Threshold Interrupt
  *         @arg JPEG_IT_IFNF  : Input FIFO Not Full Interrupt
  *         @arg JPEG_IT_OFT   : Output FIFO Threshold Interrupt
  *         @arg JPEG_IT_OFNE  : Output FIFO Not empty Interrupt
  *         @arg JPEG_IT_EOC   : End of Conversion Interrupt
  *         @arg JPEG_IT_HPD   : Header Parsing Done Interrupt
  *
  * @note    To disable an IT we must use MODIFY_REG macro to avoid writing "1" to the FIFO flush bits
  *          located in the same IT enable register (CR register).
  * @retval  No return
  */



/**
  * @brief  Get Interrupt state.
  * @param   __HANDLE__ specifies the JPEG handle.
  * @param  __INTERRUPT__  specifies the interrupt to check
  *         This parameter can be one of the following values:
  *         @arg JPEG_IT_IFT   : Input FIFO Threshold Interrupt
  *         @arg JPEG_IT_IFNF  : Input FIFO Not Full Interrupt
  *         @arg JPEG_IT_OFT   : Output FIFO Threshold Interrupt
  *         @arg JPEG_IT_OFNE  : Output FIFO Not empty Interrupt
  *         @arg JPEG_IT_EOC   : End of Conversion Interrupt
  *         @arg JPEG_IT_HPD   : Header Parsing Done Interrupt
  *
  * @retval returns The new state of __INTERRUPT__ (Enabled or disabled)
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup JPEG_Exported_Functions
  * @{
  */

/** @addtogroup JPEG_Exported_Functions_Group1
  * @{
  */
/* Initialization/de-initialization functions  ********************************/
HAL_StatusTypeDef HAL_JPEG_Init(JPEG_HandleTypeDef *hjpeg);
HAL_StatusTypeDef HAL_JPEG_DeInit(JPEG_HandleTypeDef *hjpeg);
void HAL_JPEG_MspInit(JPEG_HandleTypeDef *hjpeg);
void HAL_JPEG_MspDeInit(JPEG_HandleTypeDef *hjpeg);
# 476 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_jpeg.h"
/**
  * @}
  */

/** @addtogroup JPEG_Exported_Functions_Group2
  * @{
  */
/* Encoding/Decoding Configuration functions  ********************************/
HAL_StatusTypeDef HAL_JPEG_ConfigEncoding(JPEG_HandleTypeDef *hjpeg, JPEG_ConfTypeDef *pConf);
HAL_StatusTypeDef HAL_JPEG_GetInfo(JPEG_HandleTypeDef *hjpeg, JPEG_ConfTypeDef *pInfo);
HAL_StatusTypeDef HAL_JPEG_EnableHeaderParsing(JPEG_HandleTypeDef *hjpeg);
HAL_StatusTypeDef HAL_JPEG_DisableHeaderParsing(JPEG_HandleTypeDef *hjpeg);
HAL_StatusTypeDef HAL_JPEG_SetUserQuantTables(JPEG_HandleTypeDef *hjpeg, uint8_t *QTable0, uint8_t *QTable1,
                                              uint8_t *QTable2, uint8_t *QTable3);

/**
  * @}
  */

/** @addtogroup JPEG_Exported_Functions_Group3
  * @{
  */
/* JPEG processing functions  **************************************/
HAL_StatusTypeDef HAL_JPEG_Encode(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataInMCU, uint32_t InDataLength,
                                   uint8_t *pDataOut, uint32_t OutDataLength, uint32_t Timeout);
HAL_StatusTypeDef HAL_JPEG_Decode(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataIn, uint32_t InDataLength,
                                   uint8_t *pDataOutMCU, uint32_t OutDataLength, uint32_t Timeout);
HAL_StatusTypeDef HAL_JPEG_Encode_IT(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataInMCU, uint32_t InDataLength,
                                      uint8_t *pDataOut, uint32_t OutDataLength);
HAL_StatusTypeDef HAL_JPEG_Decode_IT(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataIn, uint32_t InDataLength,
                                      uint8_t *pDataOutMCU, uint32_t OutDataLength);
HAL_StatusTypeDef HAL_JPEG_Encode_DMA(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataInMCU, uint32_t InDataLength,
                                       uint8_t *pDataOut, uint32_t OutDataLength);
HAL_StatusTypeDef HAL_JPEG_Decode_DMA(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataIn, uint32_t InDataLength,
                                       uint8_t *pDataOutMCU, uint32_t OutDataLength);
HAL_StatusTypeDef HAL_JPEG_Pause(JPEG_HandleTypeDef *hjpeg, uint32_t XferSelection);
HAL_StatusTypeDef HAL_JPEG_Resume(JPEG_HandleTypeDef *hjpeg, uint32_t XferSelection);
void HAL_JPEG_ConfigInputBuffer(JPEG_HandleTypeDef *hjpeg, uint8_t *pNewInputBuffer, uint32_t InDataLength);
void HAL_JPEG_ConfigOutputBuffer(JPEG_HandleTypeDef *hjpeg, uint8_t *pNewOutputBuffer, uint32_t OutDataLength);
HAL_StatusTypeDef HAL_JPEG_Abort(JPEG_HandleTypeDef *hjpeg);

/**
  * @}
  */

/** @addtogroup JPEG_Exported_Functions_Group4
  * @{
  */
/* JPEG Decode/Encode callback functions  ********************************************************/
void HAL_JPEG_InfoReadyCallback(JPEG_HandleTypeDef *hjpeg, JPEG_ConfTypeDef *pInfo);
void HAL_JPEG_EncodeCpltCallback(JPEG_HandleTypeDef *hjpeg);
void HAL_JPEG_DecodeCpltCallback(JPEG_HandleTypeDef *hjpeg);
void HAL_JPEG_ErrorCallback(JPEG_HandleTypeDef *hjpeg);
void HAL_JPEG_GetDataCallback(JPEG_HandleTypeDef *hjpeg, uint32_t NbDecodedData);
void HAL_JPEG_DataReadyCallback(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataOut, uint32_t OutDataLength);

/**
  * @}
  */

/** @addtogroup JPEG_Exported_Functions_Group5
  * @{
  */
/* JPEG IRQ handler management  ******************************************************/
void HAL_JPEG_IRQHandler(JPEG_HandleTypeDef *hjpeg);

/**
  * @}
  */

/** @addtogroup JPEG_Exported_Functions_Group6
  * @{
  */
/* Peripheral State and Error functions  ************************************************/
HAL_JPEG_STATETypeDef HAL_JPEG_GetState(JPEG_HandleTypeDef *hjpeg);
uint32_t HAL_JPEG_GetError(JPEG_HandleTypeDef *hjpeg);

/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup JPEG_Private_Types JPEG Private Types
  * @{
  */

/**
  * @}
  */

/* Private defines -----------------------------------------------------------*/
/** @defgroup JPEG_Private_Defines JPEG Private Defines
  * @{
  */

/**
  * @}
  */

/* Private variables ---------------------------------------------------------*/
/** @defgroup JPEG_Private_Variables JPEG Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup JPEG_Private_Constants JPEG Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup JPEG_Private_Macros JPEG Private Macros
  * @{
  */
# 616 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_jpeg.h"
/**
  * @}
  */

/* Private functions prototypes ----------------------------------------------*/
/** @defgroup JPEG_Private_Functions_Prototypes JPEG Private Functions Prototypes
  * @{
  */

/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup JPEG_Private_Functions JPEG Private Functions
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */




}
# 383 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdios.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_mdios.h
  * @author  MCD Application Team
  * @brief   Header file of MDIOS HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {



/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdios.h" 2



/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup MDIOS
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup MDIOS_Exported_Types MDIOS Exported Types
  * @{
  */

/** @defgroup MDIOS_Exported_Types_Group1 MDIOS State structures definition
  * @{
  */

typedef enum
{
  HAL_MDIOS_STATE_RESET = 0x00U,
  HAL_MDIOS_STATE_READY = 0x01U,
  HAL_MDIOS_STATE_BUSY = 0x02U,
  HAL_MDIOS_STATE_ERROR = 0x04U
}HAL_MDIOS_StateTypeDef;

/**
  * @}
  */

/** @defgroup MDIOS_Exported_Types_Group2 MDIOS Init Structure definition
  * @{
  */

typedef struct
{
  uint32_t PortAddress; /*!< Specifies the MDIOS port address.
                                       This parameter can be a value from 0 to 31 */
  uint32_t PreambleCheck; /*!< Specifies whether the preamble check is enabled or disabled.
                                       This parameter can be a value of @ref MDIOS_Preamble_Check */
}MDIOS_InitTypeDef;

/**
  * @}
  */

/** @defgroup MDIOS_Exported_Types_Group4 MDIOS handle Structure definition
  * @{
  */




typedef struct

{
  MDIOS_TypeDef *Instance;

  MDIOS_InitTypeDef Init;

  volatile HAL_MDIOS_StateTypeDef State; /*!< MDIOS communication state
                                                   This parameter can be a value of of @ref HAL_MDIOS_StateTypeDef */

  volatile uint32_t ErrorCode; /*!< Holds the global Error code of the MDIOS HAL status machine
                                                   This parameter can be a value of of @ref MDIOS_Error_Code */

  HAL_LockTypeDef Lock;
# 111 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdios.h"
}MDIOS_HandleTypeDef;

/**
  * @}
  */
# 139 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdios.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup MDIOS_Exported_Constants MDIOS Exported Constants
  * @{
  */

/** @defgroup MDIOS_Preamble_Check  MDIOS Preamble Check
  * @{
  */


/**
  * @}
  */

/** @defgroup MDIOS_Input_Output_Registers_Definitions MDIOS Input Output Registers Definitions
  * @{
  */
# 192 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdios.h"
/**
  * @}
  */

/** @defgroup MDIOS_Registers_Flags  MDIOS Registers Flags
  * @{
  */
# 232 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdios.h"
/**
  * @}
  */

/** @defgroup MDIOS_Interrupt_sources Interrupt Sources
  * @{
  */



/**
  * @}
  */

/** @defgroup MDIOS_Interrupt_Flags  MDIOS Interrupt Flags
  * @{
  */



/**
  * @}
  */

/** @defgroup MDIOS_Error_Code MDIOS Error Code
  * @{
  */
# 267 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdios.h"
/**
  * @}
  */

 /** @defgroup MDIOS_Wakeup_Line  MDIOS Wakeup Line
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */
/* Exported macros -----------------------------------------------------------*/
/** @defgroup MDIOS_Exported_Macros MDIOS Exported Macros
  * @{
  */

/** @brief Reset MDIOS handle state
  * @param  __HANDLE__: MDIOS handle.
  * @retval None
  */
# 301 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdios.h"
/**
  * @brief  Enable/Disable the MDIOS peripheral.
  * @param  __HANDLE__: specifies the MDIOS handle.
  * @retval None
  */




/**
  * @brief  Enable the MDIOS device interrupt.
  * @param  __HANDLE__: specifies the MDIOS handle.
  * @param  __INTERRUPT__ : specifies the MDIOS interrupt sources to be enabled.
  *         This parameter can be one or a combination of the following values:
  *            @arg MDIOS_IT_WRITE: Register write interrupt
  *            @arg MDIOS_IT_READ: Register read interrupt
  *            @arg MDIOS_IT_ERROR: Error interrupt
  * @retval None
  */


/**
  * @brief  Disable the MDIOS device interrupt.
  * @param  __HANDLE__: specifies the MDIOS handle.
  * @param  __INTERRUPT__ : specifies the MDIOS interrupt sources to be disabled.
  *         This parameter can be one or a combination of the following values:
  *            @arg MDIOS_IT_WRITE: Register write interrupt
  *            @arg MDIOS_IT_READ: Register read interrupt
  *            @arg MDIOS_IT_ERROR: Error interrupt
  * @retval None
  */


/** @brief Set MDIOS slave get write register flag
  * @param  __HANDLE__: specifies the MDIOS handle.
  * @param  __FLAG__: specifies the write register flag
  * @retval The state of write flag
  */


/** @brief MDIOS slave get read register flag
  * @param  __HANDLE__: specifies the MDIOS handle.
  * @param  __FLAG__: specifies the read register flag
  * @retval The state of read flag
  */


/** @brief MDIOS slave get interrupt
  * @param  __HANDLE__: specifies the MDIOS handle.
  * @param  __FLAG__ : specifies the Error flag.
  *         This parameter can be one or a combination of the following values:
  *            @arg MDIOS_TURNARROUND_ERROR_FLAG: Register write interrupt
  *            @arg MDIOS_START_ERROR_FLAG: Register read interrupt
  *            @arg MDIOS_PREAMBLE_ERROR_FLAG: Error interrupt
  * @retval The state of the error flag
  */


/** @brief  MDIOS slave clear interrupt
  * @param  __HANDLE__: specifies the MDIOS handle.
  * @param  __FLAG__ : specifies the Error flag.
  *         This parameter can be one or a combination of the following values:
  *            @arg MDIOS_TURNARROUND_ERROR_FLAG: Register write interrupt
  *            @arg MDIOS_START_ERROR_FLAG: Register read interrupt
  *            @arg MDIOS_PREAMBLE_ERROR_FLAG: Error interrupt
  * @retval none
  */


/**
  * @brief  Checks whether the specified MDIOS interrupt is set or not.
  * @param  __HANDLE__: specifies the MDIOS handle.
  * @param  __INTERRUPT__ : specifies the MDIOS interrupt sources
  *            This parameter can be one or a combination of the following values:
  *            @arg MDIOS_IT_WRITE: Register write interrupt
  *            @arg MDIOS_IT_READ: Register read interrupt
  *            @arg MDIOS_IT_ERROR: Error interrupt
  * @retval The state of the interrupt source
  */


/**
  * @brief Enable the MDIOS WAKEUP Exti Line.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be enabled.
  * This parameter can be:
  *   @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval None.
  */



/**
  * @brief Enable the MDIOS WAKEUP Exti Line by Domain2.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be enabled.
  * This parameter can be:
  *   @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval None.
  */



/**
  * @brief checks whether the specified MDIOS WAKEUP Exti interrupt flag is set or not.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared.
  * This parameter can be:
  *   @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval EXTI MDIOS WAKEUP Line Status.
  */



/**
  * @brief checks whether the specified MDIOS WAKEUP Exti interrupt flag is set or not.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared.
  * This parameter can be:
  *   @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval EXTI MDIOS WAKEUP Line Status.
  */


/**
  * @brief Clear the MDIOS WAKEUP Exti flag.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared.
  * This parameter can be:
  *   @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval None.
  */



/**
  * @brief Clear the MDIOS WAKEUP Exti flag.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared.
  * This parameter can be:
  *   @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval None.
  */



/**
  * @brief  enable rising edge interrupt on selected EXTI line.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled.
  * This parameter can be:
  *  @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval None
  */



/**
  * @brief  enable falling edge interrupt on selected EXTI line.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled.
  * This parameter can be:
  *  @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval None
  */



/**
  * @brief  enable falling edge interrupt on selected EXTI line.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled.
  * This parameter can be:
  *  @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval None
  */



/**
  * @brief  Generates a Software interrupt on selected EXTI line.
  * @param  __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled.
  * This parameter can be:
  *  @arg MDIOS_WAKEUP_EXTI_LINE
  * @retval None
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup MDIOS_Exported_Functions MDIOS Exported Functions
  * @{
  */

/** @addtogroup MDIOS_Exported_Functions_Group1
  * @{
  */
HAL_StatusTypeDef HAL_MDIOS_Init(MDIOS_HandleTypeDef *hmdios);
HAL_StatusTypeDef HAL_MDIOS_DeInit(MDIOS_HandleTypeDef *hmdios);
void HAL_MDIOS_MspInit(MDIOS_HandleTypeDef *hmdios);
void HAL_MDIOS_MspDeInit(MDIOS_HandleTypeDef *hmdios);

/* Callbacks Register/UnRegister functions  ***********************************/




/**
  * @}
  */

/** @addtogroup MDIOS_Exported_Functions_Group2
  * @{
  */
HAL_StatusTypeDef HAL_MDIOS_WriteReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t Data);
HAL_StatusTypeDef HAL_MDIOS_ReadReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t *pData);

uint32_t HAL_MDIOS_GetWrittenRegAddress(const MDIOS_HandleTypeDef *hmdios);
uint32_t HAL_MDIOS_GetReadRegAddress(const MDIOS_HandleTypeDef *hmdios);
HAL_StatusTypeDef HAL_MDIOS_ClearWriteRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum);
HAL_StatusTypeDef HAL_MDIOS_ClearReadRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum);

HAL_StatusTypeDef HAL_MDIOS_EnableEvents(MDIOS_HandleTypeDef *hmdios);
void HAL_MDIOS_IRQHandler(MDIOS_HandleTypeDef *hmdios);
void HAL_MDIOS_WriteCpltCallback(MDIOS_HandleTypeDef *hmdios);
void HAL_MDIOS_ReadCpltCallback(MDIOS_HandleTypeDef *hmdios);
void HAL_MDIOS_ErrorCallback(MDIOS_HandleTypeDef *hmdios);
void HAL_MDIOS_WakeUpCallback(MDIOS_HandleTypeDef *hmdios);
/**
  * @}
  */

/** @addtogroup MDIOS_Exported_Functions_Group3
  * @{
  */
uint32_t HAL_MDIOS_GetError(const MDIOS_HandleTypeDef *hmdios);
HAL_MDIOS_StateTypeDef HAL_MDIOS_GetState(const MDIOS_HandleTypeDef *hmdios);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup MDIOS_Private_Types MDIOS Private Types
  * @{
  */

/**
  * @}
  */

/* Private variables ---------------------------------------------------------*/
/** @defgroup MDIOS_Private_Variables MDIOS Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup MDIOS_Private_Constants MDIOS Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup MDIOS_Private_Macros MDIOS Private Macros
  * @{
  */
# 579 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mdios.h"
 /**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup MDIOS_Private_Functions MDIOS Private Functions
  * @{
  */

/**
  * @}
  */


/**
  * @}
  */

/**
  * @}
  */




}
# 387 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_mmc.h
  * @author  MCD Application Team
  * @brief   Header file of MMC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_sdmmc.h
  * @author  MCD Application Team
  * @brief   Header file of SDMMC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h" 2

/** @addtogroup STM32H7xx_Driver
  * @{
  */

/** @addtogroup SDMMC_LL
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SDMMC_LL_Exported_Types SDMMC_LL Exported Types
  * @{
  */

/**
  * @brief  SDMMC Configuration Structure definition
  */
typedef struct
{
  uint32_t ClockEdge; /*!< Specifies the SDMMC_CCK clock transition on which Data and Command change.
                                      This parameter can be a value of @ref SDMMC_LL_Clock_Edge                 */

  uint32_t ClockPowerSave; /*!< Specifies whether SDMMC Clock output is enabled or
                                      disabled when the bus is idle.
                                      This parameter can be a value of @ref SDMMC_LL_Clock_Power_Save           */

  uint32_t BusWide; /*!< Specifies the SDMMC bus width.
                                      This parameter can be a value of @ref SDMMC_LL_Bus_Wide                   */

  uint32_t HardwareFlowControl; /*!< Specifies whether the SDMMC hardware flow control is enabled or disabled.
                                      This parameter can be a value of @ref SDMMC_LL_Hardware_Flow_Control      */

  uint32_t ClockDiv; /*!< Specifies the clock frequency of the SDMMC controller.
                                      This parameter can be a value between Min_Data = 0 and Max_Data = 1023   */





} SDMMC_InitTypeDef;


/**
  * @brief  SDMMC Command Control structure
  */
typedef struct
{
  uint32_t Argument; /*!< Specifies the SDMMC command argument which is sent
                                     to a card as part of a command message. If a command
                                     contains an argument, it must be loaded into this register
                                     before writing the command to the command register.              */

  uint32_t CmdIndex; /*!< Specifies the SDMMC command index. It must be Min_Data = 0 and
                                     Max_Data = 64                                                    */

  uint32_t Response; /*!< Specifies the SDMMC response type.
                                     This parameter can be a value of @ref SDMMC_LL_Response_Type         */

  uint32_t WaitForInterrupt; /*!< Specifies whether SDMMC wait for interrupt request is
                                     enabled or disabled.
                                     This parameter can be a value of @ref SDMMC_LL_Wait_Interrupt_State  */

  uint32_t CPSM; /*!< Specifies whether SDMMC Command path state machine (CPSM)
                                     is enabled or disabled.
                                     This parameter can be a value of @ref SDMMC_LL_CPSM_State            */
} SDMMC_CmdInitTypeDef;


/**
  * @brief  SDMMC Data Control structure
  */
typedef struct
{
  uint32_t DataTimeOut;

  uint32_t DataLength;

  uint32_t DataBlockSize; /*!< Specifies the data block size for block transfer.
                                     This parameter can be a value of @ref SDMMC_LL_Data_Block_Size    */

  uint32_t TransferDir; /*!< Specifies the data transfer direction, whether the transfer
                                     is a read or write.
                                     This parameter can be a value of @ref SDMMC_LL_Transfer_Direction */

  uint32_t TransferMode; /*!< Specifies whether data transfer is in stream or block mode.
                                     This parameter can be a value of @ref SDMMC_LL_Transfer_Type      */

  uint32_t DPSM; /*!< Specifies whether SDMMC Data path state machine (DPSM)
                                     is enabled or disabled.
                                     This parameter can be a value of @ref SDMMC_LL_DPSM_State         */
} SDMMC_DataInitTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup SDMMC_LL_Exported_Constants SDMMC_LL Exported Constants
  * @{
  */
# 163 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/**
  * @brief  Masks for R5 Response
  */
/** this is the reserved for future use in spec RFU */

/** Out of range error */

/** Invalid function number */

/** General or an unknown error */

/** SDIO Card current state
  * 00=DIS (card not selected)
  * 01=CMD (data line free)
  * 10=TRN (transfer on data lines) */

/** Illegal command error */

/** CRC check of previous cmd failed */







/**
  * @brief SDIO_CMD53_MODE
  */



/**
  * @brief SDIO_CMD53_OP_CODE
  */



/**
  * @brief SDIO_CMD53_RAW
  */



/**
  * @brief SDMMC Commands Index
  */
# 227 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/*!< for SDHS and SDXC.                                                                       */
# 252 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/**
  * @brief Following commands are SD Card Specific commands.
  *        SDMMC_APP_CMD should be sent before sending these commands.
  */
# 265 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/**
  * @brief Following commands are MMC Specific commands.
  */


/**
  * @brief Following commands are SD Card Specific security commands.
  *        SDMMC_CMD_APP_CMD should be sent before sending these commands.
  */
# 286 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/**
  * @brief  Masks for errors Card Status R1 (OCR Register)
  */
# 310 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/**
  * @brief  Masks for R6 Response
  */
# 355 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/* SDMMC FIFO Size */

/**
  * @brief  Command Class supported
  */






/** @defgroup SDMMC_LL_Clock_Edge Clock Edge
  * @{
  */





/**
  * @}
  */

/** @defgroup SDMMC_LL_Clock_Power_Save Clock Power Saving
  * @{
  */





/**
  * @}
  */

/** @defgroup SDMMC_LL_Bus_Wide Bus Width
  * @{
  */







/**
  * @}
  */

/** @defgroup SDMMC_LL_Speed_Mode
  * @{
  */
# 422 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/**
  * @}
  */

/** @defgroup SDMMC_LL_Hardware_Flow_Control Hardware Flow Control
  * @{
  */





/**
  * @}
  */

/** @defgroup SDMMC_LL_Clock_Division Clock Division
  * @{
  */
/* SDMMC_CK frequency = SDMMCCLK / [2 * CLKDIV] */

/**
  * @}
  */

/** @defgroup SDMMC_LL_TRANSCEIVER_PRESENT Transceiver Present
  * @{
  */




/**
  * @}
  */

/** @defgroup SDMMC_LL_Command_Index Command Index
  * @{
  */

/**
  * @}
  */

/** @defgroup SDMMC_LL_Response_Type Response Type
  * @{
  */







/**
  * @}
  */

/** @defgroup SDMMC_LL_Wait_Interrupt_State Wait Interrupt
  * @{
  */







/**
  * @}
  */

/** @defgroup SDMMC_LL_CPSM_State CPSM State
  * @{
  */





/**
  * @}
  */

/** @defgroup SDMMC_LL_Response_Registers Response Register
  * @{
  */
# 519 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/** @defgroup SDMMC_Internal_DMA_Mode  SDMMC Internal DMA Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup SDMMC_LL_Data_Length Data Length
  * @{
  */

/**
  * @}
  */

/** @defgroup SDMMC_LL_Data_Block_Size  Data Block Size
  * @{
  */
# 577 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/**
  * @}
  */

/** @defgroup SDMMC_LL_Transfer_Direction Transfer Direction
  * @{
  */





/**
  * @}
  */

/** @defgroup SDMMC_LL_Transfer_Type Transfer Type
  * @{
  */







/**
  * @}
  */

/** @defgroup SDMMC_LL_DPSM_State DPSM State
  * @{
  */





/**
  * @}
  */

/** @defgroup SDMMC_LL_Read_Wait_Mode Read Wait Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup SDMMC_LL_Interrupt_sources Interrupt Sources
  * @{
  */
# 657 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/**
  * @}
  */

/** @defgroup SDMMC_LL_Flags Flags
  * @{
  */
# 709 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h"
/**
  * @}
  */

/** @defgroup SDMMC_SDIO_CCCR_Registers
  * @{
  */
/*-------------------------------- CCCR0 ----------------------------------*/






/*-------------------------------- CCCR4 ----------------------------------*/






/*-------------------------------- CCCR8 ----------------------------------*/






/*-------------------------------- CCCR12 ---------------------------------*/






/*-------------------------------- CCCR16 ---------------------------------*/






/*-------------------------------- CCCR20 ---------------------------------*/






/*-------------------------------- F1BR0 ----------------------------------*/






/*-------------------------------- F1BR8 ----------------------------------*/






/*-------------------------------- F1BR12 ---------------------------------*/






/*-------------------------------- F1BR16 ---------------------------------*/





/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup SDMMC_LL_Exported_macros SDMMC_LL Exported Macros
  * @{
  */

/** @defgroup SDMMC_LL_Register Bits And Addresses Definitions
  * @brief SDMMC_LL registers bit address in the alias region
  * @{
  */
/* ---------------------- SDMMC registers bit mask --------------------------- */
/* --- CLKCR Register ---*/
/* CLKCR register clear mask */






/* --- DCTRL Register ---*/
/* SDMMC DCTRL Clear Mask */



/* --- CMD Register ---*/
/* CMD Register clear mask */




/* SDMMC Initialization Frequency (400KHz max) for Peripheral CLK 200MHz*/


/* SDMMC Default Speed Frequency (25Mhz max) for Peripheral CLK 200MHz*/


/* SDMMC High Speed Frequency (50Mhz max) for Peripheral CLK 200MHz*/

/**
  * @}
  */

/** @defgroup SDMMC_LL_Interrupt_Clock Interrupt And Clock Configuration
  *  @brief macros to handle interrupts and specific clock configurations
  * @{
  */

/**
  * @brief  Enable the SDMMC device interrupt.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @param  __INTERRUPT__ specifies the SDMMC interrupt sources to be enabled.
  *         This parameter can be one or a combination of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SDIO interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval None
  */


/**
  * @brief  Disable the SDMMC device interrupt.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @param  __INTERRUPT__ specifies the SDMMC interrupt sources to be disabled.
  *          This parameter can be one or a combination of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SDIO interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval None
  */


/**
  * @brief  Checks whether the specified SDMMC flag is set or not.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be one of the following values:
  *            @arg SDMMC_FLAG_CCRCFAIL:   Command response received (CRC check failed)
  *            @arg SDMMC_FLAG_DCRCFAIL:   Data block sent/received (CRC check failed)
  *            @arg SDMMC_FLAG_CTIMEOUT:   Command response timeout
  *            @arg SDMMC_FLAG_DTIMEOUT:   Data timeout
  *            @arg SDMMC_FLAG_TXUNDERR:   Transmit FIFO underrun error
  *            @arg SDMMC_FLAG_RXOVERR:    Received FIFO overrun error
  *            @arg SDMMC_FLAG_CMDREND:    Command response received (CRC check passed)
  *            @arg SDMMC_FLAG_CMDSENT:    Command sent (no response required)
  *            @arg SDMMC_FLAG_DATAEND:    Data end (data counter, DATACOUNT, is zero)
  *            @arg SDMMC_FLAG_DHOLD:      Data transfer Hold
  *            @arg SDMMC_FLAG_DBCKEND:    Data block sent/received (CRC check passed)
  *            @arg SDMMC_FLAG_DABORT:     Data transfer aborted by CMD12
  *            @arg SDMMC_FLAG_DPSMACT:    Data path state machine active
  *            @arg SDMMC_FLAG_CPSMACT:    Command path state machine active
  *            @arg SDMMC_FLAG_TXFIFOHE:   Transmit FIFO Half Empty
  *            @arg SDMMC_FLAG_RXFIFOHF:   Receive FIFO Half Full
  *            @arg SDMMC_FLAG_TXFIFOF:    Transmit FIFO full
  *            @arg SDMMC_FLAG_RXFIFOF:    Receive FIFO full
  *            @arg SDMMC_FLAG_TXFIFOE:    Transmit FIFO empty
  *            @arg SDMMC_FLAG_RXFIFOE:    Receive FIFO empty
  *            @arg SDMMC_FLAG_BUSYD0:     Inverted value of SDMMC_D0 line (Busy)
  *            @arg SDMMC_FLAG_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected
  *            @arg SDMMC_FLAG_SDIOIT:     SDIO interrupt received
  *            @arg SDMMC_FLAG_ACKFAIL:    Boot Acknowledgment received
  *            @arg SDMMC_FLAG_ACKTIMEOUT: Boot Acknowledgment timeout
  *            @arg SDMMC_FLAG_VSWEND:     Voltage switch critical timing section completion
  *            @arg SDMMC_FLAG_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure
  *            @arg SDMMC_FLAG_IDMATE:     IDMA transfer error
  *            @arg SDMMC_FLAG_IDMABTC:    IDMA buffer transfer complete
  * @retval The new state of SDMMC_FLAG (SET or RESET).
  */



/**
  * @brief  Clears the SDMMC pending flags.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @param  __FLAG__ specifies the flag to clear.
  *          This parameter can be one or a combination of the following values:
  *            @arg SDMMC_FLAG_CCRCFAIL:   Command response received (CRC check failed)
  *            @arg SDMMC_FLAG_DCRCFAIL:   Data block sent/received (CRC check failed)
  *            @arg SDMMC_FLAG_CTIMEOUT:   Command response timeout
  *            @arg SDMMC_FLAG_DTIMEOUT:   Data timeout
  *            @arg SDMMC_FLAG_TXUNDERR:   Transmit FIFO underrun error
  *            @arg SDMMC_FLAG_RXOVERR:    Received FIFO overrun error
  *            @arg SDMMC_FLAG_CMDREND:    Command response received (CRC check passed)
  *            @arg SDMMC_FLAG_CMDSENT:    Command sent (no response required)
  *            @arg SDMMC_FLAG_DATAEND:    Data end (data counter, DATACOUNT, is zero)
  *            @arg SDMMC_FLAG_DHOLD:      Data transfer Hold
  *            @arg SDMMC_FLAG_DBCKEND:    Data block sent/received (CRC check passed)
  *            @arg SDMMC_FLAG_DABORT:     Data transfer aborted by CMD12
  *            @arg SDMMC_FLAG_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected
  *            @arg SDMMC_FLAG_SDIOIT:     SDIO interrupt received
  *            @arg SDMMC_FLAG_ACKFAIL:    Boot Acknowledgment received
  *            @arg SDMMC_FLAG_ACKTIMEOUT: Boot Acknowledgment timeout
  *            @arg SDMMC_FLAG_VSWEND:     Voltage switch critical timing section completion
  *            @arg SDMMC_FLAG_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure
  *            @arg SDMMC_FLAG_IDMATE:     IDMA transfer error
  *            @arg SDMMC_FLAG_IDMABTC:    IDMA buffer transfer complete
  * @retval None
  */


/**
  * @brief  Checks whether the specified SDMMC interrupt has occurred or not.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @param  __INTERRUPT__ specifies the SDMMC interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SDIO interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval The new state of SDMMC_IT (SET or RESET).
  */


/**
  * @brief  Checks the source of specified interrupt.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @param  __INTERRUPT__ specifies the SDMMC interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SDIO interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval The new state of SDMMC_IT (SET or RESET).
  */


/**
  * @brief  Clears the SDMMC's interrupt pending bits.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
  *          This parameter can be one or a combination of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SDIO interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval None
  */


/**
  * @brief  Enable Start the SD I/O Read Wait operation.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Disable Start the SD I/O Read Wait operations.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Enable Start the SD I/O Read Wait operation.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Disable Stop the SD I/O Read Wait operations.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Enable the SD I/O Mode Operation.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Disable the SD I/O Mode Operation.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Enable the SD I/O Suspend command sending.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Disable the SD I/O Suspend command sending.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Enable the CMDTRANS mode.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Disable the CMDTRANS mode.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Enable the CMDSTOP mode.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @brief  Disable the CMDSTOP mode.
  * @param  __INSTANCE__ Pointer to SDMMC register base
  * @retval None
  */


/**
  * @}
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SDMMC_LL_Exported_Functions
  * @{
  */

/* Initialization/de-initialization functions  **********************************/
/** @addtogroup HAL_SDMMC_LL_Group1
  * @{
  */
HAL_StatusTypeDef SDMMC_Init(SDMMC_TypeDef *SDMMCx, SDMMC_InitTypeDef Init);
/**
  * @}
  */

/* I/O operation functions  *****************************************************/
/** @addtogroup HAL_SDMMC_LL_Group2
  * @{
  */
uint32_t SDMMC_ReadFIFO(const SDMMC_TypeDef *SDMMCx);
HAL_StatusTypeDef SDMMC_WriteFIFO(SDMMC_TypeDef *SDMMCx, uint32_t *pWriteData);
/**
  * @}
  */

/* Peripheral Control functions  ************************************************/
/** @addtogroup HAL_SDMMC_LL_Group3
  * @{
  */
HAL_StatusTypeDef SDMMC_PowerState_ON(SDMMC_TypeDef *SDMMCx);
HAL_StatusTypeDef SDMMC_PowerState_Cycle(SDMMC_TypeDef *SDMMCx);
HAL_StatusTypeDef SDMMC_PowerState_OFF(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_GetPowerState(const SDMMC_TypeDef *SDMMCx);

/* Command path state machine (CPSM) management functions */
HAL_StatusTypeDef SDMMC_SendCommand(SDMMC_TypeDef *SDMMCx, const SDMMC_CmdInitTypeDef *Command);
uint8_t SDMMC_GetCommandResponse(const SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_GetResponse(const SDMMC_TypeDef *SDMMCx, uint32_t Response);

/* Data path state machine (DPSM) management functions */
HAL_StatusTypeDef SDMMC_ConfigData(SDMMC_TypeDef *SDMMCx, const SDMMC_DataInitTypeDef *Data);
uint32_t SDMMC_GetDataCounter(const SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_GetFIFOCount(const SDMMC_TypeDef *SDMMCx);

/* SDMMC Cards mode management functions */
HAL_StatusTypeDef SDMMC_SetSDMMCReadWaitMode(SDMMC_TypeDef *SDMMCx, uint32_t SDMMC_ReadWaitMode);
/**
  * @}
  */

/* SDMMC Commands management functions ******************************************/
/** @addtogroup HAL_SDMMC_LL_Group4
  * @{
  */
uint32_t SDMMC_CmdBlockLength(SDMMC_TypeDef *SDMMCx, uint32_t BlockSize);
uint32_t SDMMC_CmdReadSingleBlock(SDMMC_TypeDef *SDMMCx, uint32_t ReadAdd);
uint32_t SDMMC_CmdReadMultiBlock(SDMMC_TypeDef *SDMMCx, uint32_t ReadAdd);
uint32_t SDMMC_CmdWriteSingleBlock(SDMMC_TypeDef *SDMMCx, uint32_t WriteAdd);
uint32_t SDMMC_CmdWriteMultiBlock(SDMMC_TypeDef *SDMMCx, uint32_t WriteAdd);
uint32_t SDMMC_CmdEraseStartAdd(SDMMC_TypeDef *SDMMCx, uint32_t StartAdd);
uint32_t SDMMC_CmdSDEraseStartAdd(SDMMC_TypeDef *SDMMCx, uint32_t StartAdd);
uint32_t SDMMC_CmdEraseEndAdd(SDMMC_TypeDef *SDMMCx, uint32_t EndAdd);
uint32_t SDMMC_CmdSDEraseEndAdd(SDMMC_TypeDef *SDMMCx, uint32_t EndAdd);
uint32_t SDMMC_CmdErase(SDMMC_TypeDef *SDMMCx, uint32_t EraseType);
uint32_t SDMMC_CmdStopTransfer(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_CmdSelDesel(SDMMC_TypeDef *SDMMCx, uint32_t Addr);
uint32_t SDMMC_CmdGoIdleState(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_CmdOperCond(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_CmdAppCommand(SDMMC_TypeDef *SDMMCx, uint32_t Argument);
uint32_t SDMMC_CmdAppOperCommand(SDMMC_TypeDef *SDMMCx, uint32_t Argument);
uint32_t SDMMC_CmdBusWidth(SDMMC_TypeDef *SDMMCx, uint32_t BusWidth);
uint32_t SDMMC_CmdSendSCR(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_CmdSendCID(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_CmdSendCSD(SDMMC_TypeDef *SDMMCx, uint32_t Argument);
uint32_t SDMMC_CmdSetRelAdd(SDMMC_TypeDef *SDMMCx, uint16_t *pRCA);
uint32_t SDMMC_CmdSetRelAddMmc(SDMMC_TypeDef *SDMMCx, uint16_t RCA);
uint32_t SDMMC_CmdSleepMmc(SDMMC_TypeDef *SDMMCx, uint32_t Argument);
uint32_t SDMMC_CmdSendStatus(SDMMC_TypeDef *SDMMCx, uint32_t Argument);
uint32_t SDMMC_CmdStatusRegister(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_CmdVoltageSwitch(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_CmdOpCondition(SDMMC_TypeDef *SDMMCx, uint32_t Argument);
uint32_t SDMMC_CmdSwitch(SDMMC_TypeDef *SDMMCx, uint32_t Argument);
uint32_t SDMMC_CmdSendEXTCSD(SDMMC_TypeDef *SDMMCx, uint32_t Argument);
uint32_t SDMMC_CmdBlockCount(SDMMC_TypeDef *SDMMCx, uint32_t BlockCount);
uint32_t SDMMC_SDIO_CmdReadWriteDirect(SDMMC_TypeDef *SDMMCx, uint32_t Argument, uint8_t *pResponse);
uint32_t SDMMC_SDIO_CmdReadWriteExtended(SDMMC_TypeDef *SDMMCx, uint32_t Argument);
uint32_t SDMMC_CmdSendOperationcondition(SDMMC_TypeDef *SDMMCx, uint32_t Argument, uint32_t *pResp);
/**
  * @}
  */

/* SDMMC Responses management functions *****************************************/
/** @addtogroup HAL_SDMMC_LL_Group5
  * @{
  */
uint32_t SDMMC_GetCmdResp1(SDMMC_TypeDef *SDMMCx, uint8_t SD_CMD, uint32_t Timeout);
uint32_t SDMMC_GetCmdResp2(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_GetCmdResp3(SDMMC_TypeDef *SDMMCx);
uint32_t SDMMC_GetCmdResp4(SDMMC_TypeDef *SDMMCx, uint32_t *pResp);
uint32_t SDMMC_GetCmdResp5(SDMMC_TypeDef *SDMMCx, uint8_t SDIO_CMD, uint8_t *pData);
uint32_t SDMMC_GetCmdResp6(SDMMC_TypeDef *SDMMCx, uint8_t SD_CMD, uint16_t *pRCA);
uint32_t SDMMC_GetCmdResp7(SDMMC_TypeDef *SDMMCx);
/**
  * @}
  */


/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

}
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */


/** @addtogroup MMC
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup MMC_Exported_Types MMC Exported Types
  * @{
  */

/** @defgroup MMC_Exported_Types_Group1 MMC State enumeration structure
  * @{
  */
typedef enum
{
  HAL_MMC_STATE_RESET = ((uint32_t)0x00000000U),
  HAL_MMC_STATE_READY = ((uint32_t)0x00000001U),
  HAL_MMC_STATE_TIMEOUT = ((uint32_t)0x00000002U),
  HAL_MMC_STATE_BUSY = ((uint32_t)0x00000003U),
  HAL_MMC_STATE_PROGRAMMING = ((uint32_t)0x00000004U),
  HAL_MMC_STATE_RECEIVING = ((uint32_t)0x00000005U),
  HAL_MMC_STATE_TRANSFER = ((uint32_t)0x00000006U),
  HAL_MMC_STATE_ERROR = ((uint32_t)0x0000000FU)
} HAL_MMC_StateTypeDef;
/**
  * @}
  */

/** @defgroup MMC_Exported_Types_Group2 MMC Card State enumeration structure
  * @{
  */
typedef uint32_t HAL_MMC_CardStateTypeDef;
# 79 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/**
  * @}
  */

/** @defgroup MMC_Exported_Types_Group3 MMC Handle Structure definition
  * @{
  */



/**
  * @brief  MMC Card Information Structure definition
  */
typedef struct
{
  uint32_t CardType;

  uint32_t Class;

  uint32_t RelCardAdd;

  uint32_t BlockNbr;

  uint32_t BlockSize;

  uint32_t LogBlockNbr;

  uint32_t LogBlockSize;

} HAL_MMC_CardInfoTypeDef;

/**
  * @brief  MMC handle Structure definition
  */



typedef struct

{
  SDMMC_TypeDef *Instance;

  SDMMC_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  const uint8_t *pTxBuffPtr;

  uint32_t TxXferSize;

  uint8_t *pRxBuffPtr;

  uint32_t RxXferSize;

  volatile uint32_t Context;

  volatile HAL_MMC_StateTypeDef State;

  volatile uint32_t ErrorCode;

  volatile uint16_t RPMBErrorCode;

  HAL_MMC_CardInfoTypeDef MmcCard;

  uint32_t CSD[4U];

  uint32_t CID[4U];

  uint32_t Ext_CSD[128];
# 162 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
} MMC_HandleTypeDef;


/**
  * @}
  */

/** @defgroup MMC_Exported_Types_Group4 Card Specific Data: CSD Register
  * @{
  */
typedef struct
{
  volatile uint8_t CSDStruct;
  volatile uint8_t SysSpecVersion;
  volatile uint8_t Reserved1;
  volatile uint8_t TAAC;
  volatile uint8_t NSAC;
  volatile uint8_t MaxBusClkFrec;
  volatile uint16_t CardComdClasses;
  volatile uint8_t RdBlockLen;
  volatile uint8_t PartBlockRead;
  volatile uint8_t WrBlockMisalign;
  volatile uint8_t RdBlockMisalign;
  volatile uint8_t DSRImpl;
  volatile uint8_t Reserved2;
  volatile uint32_t DeviceSize;
  volatile uint8_t MaxRdCurrentVDDMin;
  volatile uint8_t MaxRdCurrentVDDMax;
  volatile uint8_t MaxWrCurrentVDDMin;
  volatile uint8_t MaxWrCurrentVDDMax;
  volatile uint8_t DeviceSizeMul;
  volatile uint8_t EraseGrSize;
  volatile uint8_t EraseGrMul;
  volatile uint8_t WrProtectGrSize;
  volatile uint8_t WrProtectGrEnable;
  volatile uint8_t ManDeflECC;
  volatile uint8_t WrSpeedFact;
  volatile uint8_t MaxWrBlockLen;
  volatile uint8_t WriteBlockPaPartial;
  volatile uint8_t Reserved3;
  volatile uint8_t ContentProtectAppli;
  volatile uint8_t FileFormatGroup;
  volatile uint8_t CopyFlag;
  volatile uint8_t PermWrProtect;
  volatile uint8_t TempWrProtect;
  volatile uint8_t FileFormat;
  volatile uint8_t ECC;
  volatile uint8_t CSD_CRC;
  volatile uint8_t Reserved4;

} HAL_MMC_CardCSDTypeDef;
/**
  * @}
  */

/** @defgroup MMC_Exported_Types_Group5 Card Identification Data: CID Register
  * @{
  */
typedef struct
{
  volatile uint8_t ManufacturerID;
  volatile uint16_t OEM_AppliID;
  volatile uint32_t ProdName1;
  volatile uint8_t ProdName2;
  volatile uint8_t ProdRev;
  volatile uint32_t ProdSN;
  volatile uint8_t Reserved1;
  volatile uint16_t ManufactDate;
  volatile uint8_t CID_CRC;
  volatile uint8_t Reserved2;

} HAL_MMC_CardCIDTypeDef;
/**
  * @}
  */
# 268 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup MMC_Exported_Constants Exported Constants
  * @{
  */



/** @defgroup MMC_Exported_Constansts_Group1 MMC Error status enumeration Structure definition
  * @{
  */
# 291 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/*!< number of transferred bytes does not match the block length   */




/*!< command or if there was an attempt to access a locked card    */
# 308 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/*!< of erase sequence command was received                        */
# 318 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/*!< response results after operating with RPMB partition          */
# 332 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/**
  * @}
  */

/** @defgroup MMC_Exported_Constansts_Group2 MMC context enumeration
  * @{
  */
# 347 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/**
  * @}
  */

/** @defgroup MMC_Exported_Constansts_Group3 MMC Voltage mode
  * @{
  */
/**
  * @brief
  */







/**
  * @}
  */

/** @defgroup MMC_Exported_Constansts_Group4 MMC Memory Cards
  * @{
  */



/**
  * @}
  */

/** @defgroup MMC_Exported_Constansts_Group5 MMC Erase Type
  * @{
  */
# 394 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/**
  * @}
  */

/** @defgroup MMC_Exported_Constansts_Group6 MMC Secure Removal Type
  * @{
  */
# 411 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/**
  * @}
  */

/** @defgroup MMC_Exported_Constansts_Group7 MMC Partitions types
  * @{
  */
typedef uint32_t HAL_MMC_PartitionTypeDef;





/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup MMC_Exported_macros MMC Exported Macros
  *  @brief macros to handle interrupts and specific clock configurations
  * @{
  */
/** @brief Reset MMC handle state.
  * @param  __HANDLE__ MMC Handle.
  * @retval None
  */
# 451 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h"
/**
  * @brief  Enable the MMC device interrupt.
  * @param  __HANDLE__ MMC Handle.
  * @param  __INTERRUPT__ specifies the SDMMC interrupt sources to be enabled.
  *         This parameter can be one or a combination of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SD I/O interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval None
  */


/**
  * @brief  Disable the MMC device interrupt.
  * @param  __HANDLE__ MMC Handle.
  * @param  __INTERRUPT__ specifies the SDMMC interrupt sources to be disabled.
  *          This parameter can be one or a combination of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SD I/O interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval None
  */


/**
  * @brief  Check whether the specified MMC flag is set or not.
  * @param  __HANDLE__ MMC Handle.
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be one of the following values:
  *            @arg SDMMC_FLAG_CCRCFAIL:   Command response received (CRC check failed)
  *            @arg SDMMC_FLAG_DCRCFAIL:   Data block sent/received (CRC check failed)
  *            @arg SDMMC_FLAG_CTIMEOUT:   Command response timeout
  *            @arg SDMMC_FLAG_DTIMEOUT:   Data timeout
  *            @arg SDMMC_FLAG_TXUNDERR:   Transmit FIFO underrun error
  *            @arg SDMMC_FLAG_RXOVERR:    Received FIFO overrun error
  *            @arg SDMMC_FLAG_CMDREND:    Command response received (CRC check passed)
  *            @arg SDMMC_FLAG_CMDSENT:    Command sent (no response required)
  *            @arg SDMMC_FLAG_DATAEND:    Data end (data counter, DATACOUNT, is zero)
  *            @arg SDMMC_FLAG_DHOLD:      Data transfer Hold
  *            @arg SDMMC_FLAG_DBCKEND:    Data block sent/received (CRC check passed)
  *            @arg SDMMC_FLAG_DABORT:     Data transfer aborted by CMD12
  *            @arg SDMMC_FLAG_DPSMACT:    Data path state machine active
  *            @arg SDMMC_FLAG_CPSMACT:    Command path state machine active
  *            @arg SDMMC_FLAG_TXFIFOHE:   Transmit FIFO Half Empty
  *            @arg SDMMC_FLAG_RXFIFOHF:   Receive FIFO Half Full
  *            @arg SDMMC_FLAG_TXFIFOF:    Transmit FIFO full
  *            @arg SDMMC_FLAG_RXFIFOF:    Receive FIFO full
  *            @arg SDMMC_FLAG_TXFIFOE:    Transmit FIFO empty
  *            @arg SDMMC_FLAG_RXFIFOE:    Receive FIFO empty
  *            @arg SDMMC_FLAG_BUSYD0:     Inverted value of SDMMC_D0 line (Busy)
  *            @arg SDMMC_FLAG_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected
  *            @arg SDMMC_FLAG_SDIOIT:     SD I/O interrupt received
  *            @arg SDMMC_FLAG_ACKFAIL:    Boot Acknowledgment received
  *            @arg SDMMC_FLAG_ACKTIMEOUT: Boot Acknowledgment timeout
  *            @arg SDMMC_FLAG_VSWEND:     Voltage switch critical timing section completion
  *            @arg SDMMC_FLAG_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure
  *            @arg SDMMC_FLAG_IDMATE:     IDMA transfer error
  *            @arg SDMMC_FLAG_IDMABTC:    IDMA buffer transfer complete
  * @retval The new state of MMC FLAG (SET or RESET).
  */


/**
  * @brief  Clear the MMC's pending flags.
  * @param  __HANDLE__ MMC Handle.
  * @param  __FLAG__ specifies the flag to clear.
  *          This parameter can be one or a combination of the following values:
  *            @arg SDMMC_FLAG_CCRCFAIL:   Command response received (CRC check failed)
  *            @arg SDMMC_FLAG_DCRCFAIL:   Data block sent/received (CRC check failed)
  *            @arg SDMMC_FLAG_CTIMEOUT:   Command response timeout
  *            @arg SDMMC_FLAG_DTIMEOUT:   Data timeout
  *            @arg SDMMC_FLAG_TXUNDERR:   Transmit FIFO underrun error
  *            @arg SDMMC_FLAG_RXOVERR:    Received FIFO overrun error
  *            @arg SDMMC_FLAG_CMDREND:    Command response received (CRC check passed)
  *            @arg SDMMC_FLAG_CMDSENT:    Command sent (no response required)
  *            @arg SDMMC_FLAG_DATAEND:    Data end (data counter, DATACOUNT, is zero)
  *            @arg SDMMC_FLAG_DHOLD:      Data transfer Hold
  *            @arg SDMMC_FLAG_DBCKEND:    Data block sent/received (CRC check passed)
  *            @arg SDMMC_FLAG_DABORT:     Data transfer aborted by CMD12
  *            @arg SDMMC_FLAG_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected
  *            @arg SDMMC_FLAG_SDIOIT:     SD I/O interrupt received
  *            @arg SDMMC_FLAG_ACKFAIL:    Boot Acknowledgment received
  *            @arg SDMMC_FLAG_ACKTIMEOUT: Boot Acknowledgment timeout
  *            @arg SDMMC_FLAG_VSWEND:     Voltage switch critical timing section completion
  *            @arg SDMMC_FLAG_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure
  *            @arg SDMMC_FLAG_IDMATE:     IDMA transfer error
  *            @arg SDMMC_FLAG_IDMABTC:    IDMA buffer transfer complete
  * @retval None
  */


/**
  * @brief  Check whether the specified MMC interrupt has occurred or not.
  * @param  __HANDLE__ MMC Handle.
  * @param  __INTERRUPT__ specifies the SDMMC interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SD I/O interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval The new state of MMC IT (SET or RESET).
  */


/**
  * @brief  Clear the MMC's interrupt pending bits.
  * @param  __HANDLE__ MMC Handle.
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
  *          This parameter can be one or a combination of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SD I/O interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval None
  */


/**
  * @}
  */

/* Include MMC HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_mmc_ex.h
  * @author  MCD Application Team
  * @brief   Header file of SD HAL extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup MMCEx
  * @brief SD HAL extended module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup MMCEx_Exported_Types MMCEx Exported Types
  * @{
  */

/** @defgroup MMCEx_Exported_Types_Group1 MMC Internal DMA Buffer structure
  * @{
  */
typedef enum
{
  MMC_DMA_BUFFER0 = 0x00U,
  MMC_DMA_BUFFER1 = 0x01U,

} HAL_MMCEx_DMABuffer_MemoryTypeDef;


/**
  * @}
  */

/**
  * @}
  */
/* Exported functions --------------------------------------------------------*/
/** @defgroup MMCEx_Exported_Functions MMCEx Exported Functions
  * @{
  */

/** @defgroup MMCEx_Exported_Functions_Group1 MultiBuffer functions
  * @{
  */
HAL_StatusTypeDef HAL_MMCEx_ConfigDMAMultiBuffer(MMC_HandleTypeDef *hmmc, uint32_t *pDataBuffer0,
                                                 uint32_t *pDataBuffer1, uint32_t BufferSize);
HAL_StatusTypeDef HAL_MMCEx_ReadBlocksDMAMultiBuffer(MMC_HandleTypeDef *hmmc, uint32_t BlockAdd,
                                                     uint32_t NumberOfBlocks);
HAL_StatusTypeDef HAL_MMCEx_WriteBlocksDMAMultiBuffer(MMC_HandleTypeDef *hmmc, uint32_t BlockAdd,
                                                      uint32_t NumberOfBlocks);
HAL_StatusTypeDef HAL_MMCEx_ChangeDMABuffer(MMC_HandleTypeDef *hmmc, HAL_MMCEx_DMABuffer_MemoryTypeDef Buffer,
                                            uint32_t *pDataBuffer);

void HAL_MMCEx_Read_DMADoubleBuf0CpltCallback(MMC_HandleTypeDef *hmmc);
void HAL_MMCEx_Read_DMADoubleBuf1CpltCallback(MMC_HandleTypeDef *hmmc);
void HAL_MMCEx_Write_DMADoubleBuf0CpltCallback(MMC_HandleTypeDef *hmmc);
void HAL_MMCEx_Write_DMADoubleBuf1CpltCallback(MMC_HandleTypeDef *hmmc);

/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private defines -----------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/* Private functions prototypes ----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/**
  * @}
  */


/**
  * @}
  */

}
# 652 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_mmc.h" 2

/* Exported functions --------------------------------------------------------*/
/** @defgroup MMC_Exported_Functions MMC Exported Functions
  * @{
  */

/** @defgroup MMC_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */
HAL_StatusTypeDef HAL_MMC_Init(MMC_HandleTypeDef *hmmc);
HAL_StatusTypeDef HAL_MMC_InitCard(MMC_HandleTypeDef *hmmc);
HAL_StatusTypeDef HAL_MMC_DeInit(MMC_HandleTypeDef *hmmc);
void HAL_MMC_MspInit(MMC_HandleTypeDef *hmmc);
void HAL_MMC_MspDeInit(MMC_HandleTypeDef *hmmc);

/**
  * @}
  */

/** @defgroup MMC_Exported_Functions_Group2 Input and Output operation functions
  * @{
  */
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_MMC_ReadBlocks(MMC_HandleTypeDef *hmmc, uint8_t *pData, uint32_t BlockAdd,
                                     uint32_t NumberOfBlocks,
                                     uint32_t Timeout);
HAL_StatusTypeDef HAL_MMC_WriteBlocks(MMC_HandleTypeDef *hmmc, const uint8_t *pData, uint32_t BlockAdd,
                                      uint32_t NumberOfBlocks, uint32_t Timeout);
HAL_StatusTypeDef HAL_MMC_Erase(MMC_HandleTypeDef *hmmc, uint32_t BlockStartAdd, uint32_t BlockEndAdd);
/* Non-Blocking mode: IT */
HAL_StatusTypeDef HAL_MMC_ReadBlocks_IT(MMC_HandleTypeDef *hmmc, uint8_t *pData, uint32_t BlockAdd,
                                        uint32_t NumberOfBlocks);
HAL_StatusTypeDef HAL_MMC_WriteBlocks_IT(MMC_HandleTypeDef *hmmc, const uint8_t *pData, uint32_t BlockAdd,
                                         uint32_t NumberOfBlocks);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_MMC_ReadBlocks_DMA(MMC_HandleTypeDef *hmmc, uint8_t *pData, uint32_t BlockAdd,
                                         uint32_t NumberOfBlocks);
HAL_StatusTypeDef HAL_MMC_WriteBlocks_DMA(MMC_HandleTypeDef *hmmc, const uint8_t *pData, uint32_t BlockAdd,
                                          uint32_t NumberOfBlocks);

void HAL_MMC_IRQHandler(MMC_HandleTypeDef *hmmc);

/* Callback in non blocking modes (DMA) */
void HAL_MMC_TxCpltCallback(MMC_HandleTypeDef *hmmc);
void HAL_MMC_RxCpltCallback(MMC_HandleTypeDef *hmmc);
void HAL_MMC_ErrorCallback(MMC_HandleTypeDef *hmmc);
void HAL_MMC_AbortCallback(MMC_HandleTypeDef *hmmc);







/**
  * @}
  */

/** @defgroup MMC_Exported_Functions_Group3 Peripheral Control functions
  * @{
  */
HAL_StatusTypeDef HAL_MMC_ConfigWideBusOperation(MMC_HandleTypeDef *hmmc, uint32_t WideMode);
HAL_StatusTypeDef HAL_MMC_ConfigSpeedBusOperation(MMC_HandleTypeDef *hmmc, uint32_t SpeedMode);
HAL_StatusTypeDef HAL_MMC_SwitchPartition(MMC_HandleTypeDef *hmmc, HAL_MMC_PartitionTypeDef Partition);
/**
  * @}
  */

/** @defgroup MMC_Exported_Functions_Group4 MMC card related functions
  * @{
  */
HAL_MMC_CardStateTypeDef HAL_MMC_GetCardState(MMC_HandleTypeDef *hmmc);
HAL_StatusTypeDef HAL_MMC_GetCardCID(const MMC_HandleTypeDef *hmmc, HAL_MMC_CardCIDTypeDef *pCID);
HAL_StatusTypeDef HAL_MMC_GetCardCSD(MMC_HandleTypeDef *hmmc, HAL_MMC_CardCSDTypeDef *pCSD);
HAL_StatusTypeDef HAL_MMC_GetCardInfo(const MMC_HandleTypeDef *hmmc, HAL_MMC_CardInfoTypeDef *pCardInfo);
HAL_StatusTypeDef HAL_MMC_GetCardExtCSD(MMC_HandleTypeDef *hmmc, uint32_t *pExtCSD, uint32_t Timeout);
/**
  * @}
  */

/** @defgroup MMC_Exported_Functions_Group5 Peripheral State and Errors functions
  * @{
  */
HAL_MMC_StateTypeDef HAL_MMC_GetState(const MMC_HandleTypeDef *hmmc);
uint32_t HAL_MMC_GetError(const MMC_HandleTypeDef *hmmc);
uint32_t HAL_MMC_GetRPMBError(const MMC_HandleTypeDef *hmmc);
/**
  * @}
  */

/** @defgroup MMC_Exported_Functions_Group6 Peripheral Abort management
  * @{
  */
HAL_StatusTypeDef HAL_MMC_Abort(MMC_HandleTypeDef *hmmc);
HAL_StatusTypeDef HAL_MMC_Abort_IT(MMC_HandleTypeDef *hmmc);
/**
  * @}
  */

/** @defgroup MMC_Exported_Functions_Group7 Peripheral Erase management
  * @{
  */
HAL_StatusTypeDef HAL_MMC_EraseSequence(MMC_HandleTypeDef *hmmc, uint32_t EraseType, uint32_t BlockStartAdd,
                                        uint32_t BlockEndAdd);
HAL_StatusTypeDef HAL_MMC_Sanitize(MMC_HandleTypeDef *hmmc);
HAL_StatusTypeDef HAL_MMC_ConfigSecRemovalType(MMC_HandleTypeDef *hmmc, uint32_t SRTMode);
HAL_StatusTypeDef HAL_MMC_GetSupportedSecRemovalType(MMC_HandleTypeDef *hmmc, uint32_t *SupportedSRT);
/**
  * @}
  */

/** @defgroup MMC_Exported_Functions_Group8 Peripheral Sleep management
  * @{
  */
HAL_StatusTypeDef HAL_MMC_SleepDevice(MMC_HandleTypeDef *hmmc);
HAL_StatusTypeDef HAL_MMC_AwakeDevice(MMC_HandleTypeDef *hmmc);
/**
  * @}
  */

/** @defgroup MMC_Exported_Functions_Group9 Replay Protected Memory Block management
  * @{
  */
HAL_StatusTypeDef HAL_MMC_RPMB_ProgramAuthenticationKey(MMC_HandleTypeDef *hmmc, const uint8_t *pKey, uint32_t Timeout);
HAL_StatusTypeDef HAL_MMC_RPMB_ProgramAuthenticationKey_IT(MMC_HandleTypeDef *hmmc, const uint8_t *pKey,
                                                           uint32_t Timeout);
uint32_t HAL_MMC_RPMB_GetWriteCounter(MMC_HandleTypeDef *hmmc, uint8_t *pNonce, uint32_t Timeout);
uint32_t HAL_MMC_RPMB_GetWriteCounter_IT(MMC_HandleTypeDef *hmmc, uint8_t *pNonce);
HAL_StatusTypeDef HAL_MMC_RPMB_WriteBlocks(MMC_HandleTypeDef *hmmc, const uint8_t *pData, uint16_t BlockAdd,
                                           uint16_t NumberOfBlocks, const uint8_t *pMAC, uint32_t Timeout);
HAL_StatusTypeDef HAL_MMC_RPMB_WriteBlocks_IT(MMC_HandleTypeDef *hmmc, const uint8_t *pData, uint16_t BlockAdd,
                                              uint16_t NumberOfBlocks, const uint8_t *pMAC);
HAL_StatusTypeDef HAL_MMC_RPMB_ReadBlocks(MMC_HandleTypeDef *hmmc, uint8_t *pData, uint16_t BlockAdd,
                                          uint16_t NumberOfBlocks, const uint8_t *pNonce, uint8_t *pMAC,
                                          uint32_t Timeout);
HAL_StatusTypeDef HAL_MMC_RPMB_ReadBlocks_IT(MMC_HandleTypeDef *hmmc, uint8_t *pData, uint16_t BlockAdd,
                                             uint16_t NumberOfBlocks, const uint8_t *pNonce, uint8_t *pMAC);

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup MMC_Private_Types MMC Private Types
  * @{
  */

/**
  * @}
  */

/* Private defines -----------------------------------------------------------*/
/** @defgroup MMC_Private_Defines MMC Private Defines
  * @{
  */


/**
  * @}
  */

/* Private variables ---------------------------------------------------------*/
/** @defgroup MMC_Private_Variables MMC Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup MMC_Private_Constants MMC Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup MMC_Private_Macros MMC Private Macros
  * @{
  */

/**
  * @}
  */

/* Private functions prototypes ----------------------------------------------*/
/** @defgroup MMC_Private_Functions_Prototypes MMC Private Functions Prototypes
  * @{
  */

/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup MMC_Private_Functions MMC Private Functions
  * @{
  */

/**
  * @}
  */


/**
  * @}
  */

/**
  * @}
  */


/**
  * @}
  */


}
# 391 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_lptim.h
  * @author  MCD Application Team
  * @brief   Header file of LPTIM HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */



/** @addtogroup LPTIM
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup LPTIM_Exported_Types LPTIM Exported Types
  * @{
  */

/**
  * @brief  LPTIM Clock configuration definition
  */
typedef struct
{
  uint32_t Source; /*!< Selects the clock source.
                           This parameter can be a value of @ref LPTIM_Clock_Source   */

  uint32_t Prescaler; /*!< Specifies the counter clock Prescaler.
                           This parameter can be a value of @ref LPTIM_Clock_Prescaler */

} LPTIM_ClockConfigTypeDef;

/**
  * @brief  LPTIM Clock configuration definition
  */
typedef struct
{
  uint32_t Polarity; /*!< Selects the polarity of the active edge for the counter unit
                           if the ULPTIM input is selected.
                           Note: This parameter is used only when Ultra low power clock source is used.
                           Note: If the polarity is configured on 'both edges', an auxiliary clock
                           (one of the Low power oscillator) must be active.
                           This parameter can be a value of @ref LPTIM_Clock_Polarity */

  uint32_t SampleTime; /*!< Selects the clock sampling time to configure the clock glitch filter.
                           Note: This parameter is used only when Ultra low power clock source is used.
                           This parameter can be a value of @ref LPTIM_Clock_Sample_Time */

} LPTIM_ULPClockConfigTypeDef;

/**
  * @brief  LPTIM Trigger configuration definition
  */
typedef struct
{
  uint32_t Source; /*!< Selects the Trigger source.
                          This parameter can be a value of @ref LPTIM_Trigger_Source */

  uint32_t ActiveEdge; /*!< Selects the Trigger active edge.
                          Note: This parameter is used only when an external trigger is used.
                          This parameter can be a value of @ref LPTIM_External_Trigger_Polarity */

  uint32_t SampleTime; /*!< Selects the trigger sampling time to configure the clock glitch filter.
                          Note: This parameter is used only when an external trigger is used.
                          This parameter can be a value of @ref LPTIM_Trigger_Sample_Time  */
} LPTIM_TriggerConfigTypeDef;

/**
  * @brief  LPTIM Initialization Structure definition
  */
typedef struct
{
  LPTIM_ClockConfigTypeDef Clock;

  LPTIM_ULPClockConfigTypeDef UltraLowPowerClock;

  LPTIM_TriggerConfigTypeDef Trigger;

  uint32_t OutputPolarity; /*!< Specifies the Output polarity.
                                                  This parameter can be a value of @ref LPTIM_Output_Polarity */

  uint32_t UpdateMode; /*!< Specifies whether the update of the autoreload and the compare
                                                  values is done immediately or after the end of current period.
                                                  This parameter can be a value of @ref LPTIM_Updating_Mode */

  uint32_t CounterSource; /*!< Specifies whether the counter is incremented each internal event
                                                  or each external event.
                                                  This parameter can be a value of @ref LPTIM_Counter_Source */

  uint32_t Input1Source; /*!< Specifies source selected for input1 (GPIO or comparator output).
                                                  This parameter can be a value of @ref LPTIM_Input1_Source */

  uint32_t Input2Source; /*!< Specifies source selected for input2 (GPIO or comparator output).
                                                  Note: This parameter is used only for encoder feature so is used only
                                                  for LPTIM1 instance.
                                                  This parameter can be a value of @ref LPTIM_Input2_Source */
} LPTIM_InitTypeDef;

/**
  * @brief  HAL LPTIM State structure definition
  */
typedef enum
{
  HAL_LPTIM_STATE_RESET = 0x00U,
  HAL_LPTIM_STATE_READY = 0x01U,
  HAL_LPTIM_STATE_BUSY = 0x02U,
  HAL_LPTIM_STATE_TIMEOUT = 0x03U,
  HAL_LPTIM_STATE_ERROR = 0x04U
} HAL_LPTIM_StateTypeDef;

/**
  * @brief  LPTIM handle Structure definition
  */



typedef struct

{
  LPTIM_TypeDef *Instance;

  LPTIM_InitTypeDef Init;

  HAL_StatusTypeDef Status;

  HAL_LockTypeDef Lock;

  volatile HAL_LPTIM_StateTypeDef State;
# 166 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h"
} LPTIM_HandleTypeDef;
# 191 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup LPTIM_Exported_Constants LPTIM Exported Constants
  * @{
  */

/** @defgroup LPTIM_Clock_Source LPTIM Clock Source
  * @{
  */


/**
  * @}
  */

/** @defgroup LPTIM_Clock_Prescaler LPTIM Clock Prescaler
  * @{
  */
# 220 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h"
/**
  * @}
  */

/** @defgroup LPTIM_Output_Polarity LPTIM Output Polarity
  * @{
  */



/**
  * @}
  */

/** @defgroup LPTIM_Clock_Sample_Time LPTIM Clock Sample Time
  * @{
  */




/**
  * @}
  */

/** @defgroup LPTIM_Clock_Polarity LPTIM Clock Polarity
  * @{
  */



/**
  * @}
  */

/** @defgroup LPTIM_Trigger_Source LPTIM Trigger Source
  * @{
  */
# 267 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h"
/**
  * @}
  */

/** @defgroup LPTIM_External_Trigger_Polarity LPTIM External Trigger Polarity
  * @{
  */



/**
  * @}
  */

/** @defgroup LPTIM_Trigger_Sample_Time LPTIM Trigger Sample Time
  * @{
  */




/**
  * @}
  */

/** @defgroup LPTIM_Updating_Mode LPTIM Updating Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup LPTIM_Counter_Source LPTIM Counter Source
  * @{
  */



/**
  * @}
  */

/** @defgroup LPTIM_Input1_Source LPTIM Input1 Source
  * @{
  */
# 323 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h"
/**
  * @}
  */

/** @defgroup LPTIM_Input2_Source LPTIM Input2 Source
  * @{
  */



/**
  * @}
  */

/** @defgroup LPTIM_Flag_Definition LPTIM Flags Definition
  * @{
  */
# 348 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h"
/**
  * @}
  */

/** @defgroup LPTIM_Interrupts_Definition LPTIM Interrupts Definition
  * @{
  */







/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup LPTIM_Exported_Macros LPTIM Exported Macros
  * @{
  */

/** @brief Reset LPTIM handle state.
  * @param  __HANDLE__ LPTIM handle
  * @retval None
  */
# 389 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h"
/**
  * @brief  Enable the LPTIM peripheral.
  * @param  __HANDLE__ LPTIM handle
  * @retval None
  */


/**
  * @brief  Disable the LPTIM peripheral.
  * @param  __HANDLE__ LPTIM handle
  * @note   The following sequence is required to solve LPTIM disable HW limitation.
  *         Please check Errata Sheet ES0335 for more details under "MCU may remain
  *         stuck in LPTIM interrupt when entering Stop mode" section.
  * @note   Please call @ref HAL_LPTIM_GetState() after a call to __HAL_LPTIM_DISABLE to
  *         check for TIMEOUT.
  * @retval None
  */


/**
  * @brief  Start the LPTIM peripheral in Continuous mode.
  * @param  __HANDLE__ LPTIM handle
  * @retval None
  */

/**
  * @brief  Start the LPTIM peripheral in single mode.
  * @param  __HANDLE__ LPTIM handle
  * @retval None
  */


/**
  * @brief  Reset the LPTIM Counter register in synchronous mode.
  * @param  __HANDLE__ LPTIM handle
  * @retval None
  */


/**
  * @brief  Reset after read of the LPTIM Counter register in asynchronous mode.
  * @param  __HANDLE__ LPTIM handle
  * @retval None
  */


/**
  * @brief  Write the passed parameter in the Autoreload register.
  * @param  __HANDLE__ LPTIM handle
  * @param  __VALUE__ Autoreload value
  *         This parameter must be a value between Min_Data = 0x0001 and Max_Data = 0xFFFF.
  * @retval None
  * @note   The ARR register can only be modified when the LPTIM instance is enabled.
  */


/**
  * @brief  Write the passed parameter in the Compare register.
  * @param  __HANDLE__ LPTIM handle
  * @param  __VALUE__ Compare value
  * @retval None
  * @note   The CMP register can only be modified when the LPTIM instance is enabled.
  */


/**
  * @brief  Check whether the specified LPTIM flag is set or not.
  * @param  __HANDLE__ LPTIM handle
  * @param  __FLAG__ LPTIM flag to check
  *            This parameter can be a value of:
  *            @arg LPTIM_FLAG_DOWN    : Counter direction change up Flag.
  *            @arg LPTIM_FLAG_UP      : Counter direction change down to up Flag.
  *            @arg LPTIM_FLAG_ARROK   : Autoreload register update OK Flag.
  *            @arg LPTIM_FLAG_CMPOK   : Compare register update OK Flag.
  *            @arg LPTIM_FLAG_EXTTRIG : External trigger edge event Flag.
  *            @arg LPTIM_FLAG_ARRM    : Autoreload match Flag.
  *            @arg LPTIM_FLAG_CMPM    : Compare match Flag.
  * @retval The state of the specified flag (SET or RESET).
  */


/**
  * @brief  Clear the specified LPTIM flag.
  * @param  __HANDLE__ LPTIM handle.
  * @param  __FLAG__ LPTIM flag to clear.
  *            This parameter can be a value of:
  *            @arg LPTIM_FLAG_DOWN    : Counter direction change up Flag.
  *            @arg LPTIM_FLAG_UP      : Counter direction change down to up Flag.
  *            @arg LPTIM_FLAG_ARROK   : Autoreload register update OK Flag.
  *            @arg LPTIM_FLAG_CMPOK   : Compare register update OK Flag.
  *            @arg LPTIM_FLAG_EXTTRIG : External trigger edge event Flag.
  *            @arg LPTIM_FLAG_ARRM    : Autoreload match Flag.
  *            @arg LPTIM_FLAG_CMPM    : Compare match Flag.
  * @retval None.
  */


/**
  * @brief  Enable the specified LPTIM interrupt.
  * @param  __HANDLE__ LPTIM handle.
  * @param  __INTERRUPT__ LPTIM interrupt to set.
  *            This parameter can be a value of:
  *            @arg LPTIM_IT_DOWN    : Counter direction change up Interrupt.
  *            @arg LPTIM_IT_UP      : Counter direction change down to up Interrupt.
  *            @arg LPTIM_IT_ARROK   : Autoreload register update OK Interrupt.
  *            @arg LPTIM_IT_CMPOK   : Compare register update OK Interrupt.
  *            @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt.
  *            @arg LPTIM_IT_ARRM    : Autoreload match Interrupt.
  *            @arg LPTIM_IT_CMPM    : Compare match Interrupt.
  * @retval None.
  * @note   The LPTIM interrupts can only be enabled when the LPTIM instance is disabled.
  */


/**
  * @brief  Disable the specified LPTIM interrupt.
  * @param  __HANDLE__ LPTIM handle.
  * @param  __INTERRUPT__ LPTIM interrupt to set.
  *            This parameter can be a value of:
  *            @arg LPTIM_IT_DOWN    : Counter direction change up Interrupt.
  *            @arg LPTIM_IT_UP      : Counter direction change down to up Interrupt.
  *            @arg LPTIM_IT_ARROK   : Autoreload register update OK Interrupt.
  *            @arg LPTIM_IT_CMPOK   : Compare register update OK Interrupt.
  *            @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt.
  *            @arg LPTIM_IT_ARRM    : Autoreload match Interrupt.
  *            @arg LPTIM_IT_CMPM    : Compare match Interrupt.
  * @retval None.
  * @note   The LPTIM interrupts can only be disabled when the LPTIM instance is disabled.
  */


/**
  * @brief  Check whether the specified LPTIM interrupt source is enabled or not.
  * @param  __HANDLE__ LPTIM handle.
  * @param  __INTERRUPT__ LPTIM interrupt to check.
  *            This parameter can be a value of:
  *            @arg LPTIM_IT_DOWN    : Counter direction change up Interrupt.
  *            @arg LPTIM_IT_UP      : Counter direction change down to up Interrupt.
  *            @arg LPTIM_IT_ARROK   : Autoreload register update OK Interrupt.
  *            @arg LPTIM_IT_CMPOK   : Compare register update OK Interrupt.
  *            @arg LPTIM_IT_EXTTRIG : External trigger edge event Interrupt.
  *            @arg LPTIM_IT_ARRM    : Autoreload match Interrupt.
  *            @arg LPTIM_IT_CMPM    : Compare match Interrupt.
  * @retval Interrupt status.
  */




/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup LPTIM_Exported_Functions LPTIM Exported Functions
  * @{
  */

/** @addtogroup LPTIM_Exported_Functions_Group1
  *  @brief    Initialization and Configuration functions.
  * @{
  */
/* Initialization/de-initialization functions  ********************************/
HAL_StatusTypeDef HAL_LPTIM_Init(LPTIM_HandleTypeDef *hlptim);
HAL_StatusTypeDef HAL_LPTIM_DeInit(LPTIM_HandleTypeDef *hlptim);

/* MSP functions  *************************************************************/
void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef *hlptim);
/**
  * @}
  */

/** @addtogroup LPTIM_Exported_Functions_Group2
  *  @brief   Start-Stop operation functions.
  * @{
  */
/* Start/Stop operation functions  *********************************************/
/* ################################# PWM Mode ################################*/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_LPTIM_PWM_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
HAL_StatusTypeDef HAL_LPTIM_PWM_Stop(LPTIM_HandleTypeDef *hlptim);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_LPTIM_PWM_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
HAL_StatusTypeDef HAL_LPTIM_PWM_Stop_IT(LPTIM_HandleTypeDef *hlptim);

/* ############################# One Pulse Mode ##############################*/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop(LPTIM_HandleTypeDef *hlptim);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_LPTIM_OnePulse_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
HAL_StatusTypeDef HAL_LPTIM_OnePulse_Stop_IT(LPTIM_HandleTypeDef *hlptim);

/* ############################## Set once Mode ##############################*/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop(LPTIM_HandleTypeDef *hlptim);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_LPTIM_SetOnce_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Pulse);
HAL_StatusTypeDef HAL_LPTIM_SetOnce_Stop_IT(LPTIM_HandleTypeDef *hlptim);

/* ############################### Encoder Mode ##############################*/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_LPTIM_Encoder_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop(LPTIM_HandleTypeDef *hlptim);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_LPTIM_Encoder_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
HAL_StatusTypeDef HAL_LPTIM_Encoder_Stop_IT(LPTIM_HandleTypeDef *hlptim);

/* ############################# Time out  Mode ##############################*/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout);
HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop(LPTIM_HandleTypeDef *hlptim);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period, uint32_t Timeout);
HAL_StatusTypeDef HAL_LPTIM_TimeOut_Stop_IT(LPTIM_HandleTypeDef *hlptim);

/* ############################## Counter Mode ###############################*/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_LPTIM_Counter_Start(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
HAL_StatusTypeDef HAL_LPTIM_Counter_Stop(LPTIM_HandleTypeDef *hlptim);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_LPTIM_Counter_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period);
HAL_StatusTypeDef HAL_LPTIM_Counter_Stop_IT(LPTIM_HandleTypeDef *hlptim);
/**
  * @}
  */

/** @addtogroup LPTIM_Exported_Functions_Group3
  *  @brief  Read operation functions.
  * @{
  */
/* Reading operation functions ************************************************/
uint32_t HAL_LPTIM_ReadCounter(const LPTIM_HandleTypeDef *hlptim);
uint32_t HAL_LPTIM_ReadAutoReload(const LPTIM_HandleTypeDef *hlptim);
uint32_t HAL_LPTIM_ReadCapturedValue(const LPTIM_HandleTypeDef *hlptim);
/**
  * @}
  */

/** @addtogroup LPTIM_Exported_Functions_Group4
  *  @brief  LPTIM IRQ handler and callback functions.
  * @{
  */
/* LPTIM IRQ functions  *******************************************************/
void HAL_LPTIM_IRQHandler(LPTIM_HandleTypeDef *hlptim);

/* CallBack functions  ********************************************************/
void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_TriggerCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_CompareWriteCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_AutoReloadWriteCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_DirectionUpCallback(LPTIM_HandleTypeDef *hlptim);
void HAL_LPTIM_DirectionDownCallback(LPTIM_HandleTypeDef *hlptim);

/* Callbacks Register/UnRegister functions  ***********************************/





/**
  * @}
  */

/** @addtogroup LPTIM_Group5
  *  @brief   Peripheral State functions.
  * @{
  */
/* Peripheral State functions  ************************************************/
HAL_LPTIM_StateTypeDef HAL_LPTIM_GetState(const LPTIM_HandleTypeDef *hlptim);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup LPTIM_Private_Types LPTIM Private Types
  * @{
  */

/**
  * @}
  */

/* Private variables ---------------------------------------------------------*/
/** @defgroup LPTIM_Private_Variables LPTIM Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup LPTIM_Private_Constants LPTIM Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup LPTIM_Private_Macros LPTIM Private Macros
  * @{
  */
# 783 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_lptim.h"
/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup LPTIM_Private_Functions LPTIM Private Functions
  * @{
  */
void LPTIM_Disable(LPTIM_HandleTypeDef *hlptim);
/**
  * @}
  */

/**
  * @}
  */


/**
  * @}
  */


}
# 395 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_ltdc.h
  * @author  MCD Application Team
  * @brief   Header file of LTDC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc.h" 2



/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @defgroup LTDC LTDC
  * @brief LTDC HAL module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup LTDC_Exported_Types LTDC Exported Types
  * @{
  */


/**
  * @brief  LTDC color structure definition
  */
typedef struct
{
  uint8_t Blue; /*!< Configures the blue value.
                                        This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */

  uint8_t Green; /*!< Configures the green value.
                                        This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */

  uint8_t Red; /*!< Configures the red value.
                                        This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */

  uint8_t Reserved;
} LTDC_ColorTypeDef;

/**
  * @brief  LTDC Init structure definition
  */
typedef struct
{
  uint32_t HSPolarity; /*!< configures the horizontal synchronization polarity.
                                                      This parameter can be one value of @ref LTDC_HS_POLARITY */

  uint32_t VSPolarity; /*!< configures the vertical synchronization polarity.
                                                      This parameter can be one value of @ref LTDC_VS_POLARITY */

  uint32_t DEPolarity; /*!< configures the data enable polarity.
                                                      This parameter can be one of value of @ref LTDC_DE_POLARITY */

  uint32_t PCPolarity; /*!< configures the pixel clock polarity.
                                                      This parameter can be one of value of @ref LTDC_PC_POLARITY */

  uint32_t HorizontalSync; /*!< configures the number of Horizontal synchronization width.
                                                      This parameter must be a number between
                                                      Min_Data = 0x000 and Max_Data = 0xFFF. */

  uint32_t VerticalSync; /*!< configures the number of Vertical synchronization height.
                                                      This parameter must be a number between
                                                      Min_Data = 0x000 and Max_Data = 0x7FF. */

  uint32_t AccumulatedHBP; /*!< configures the accumulated horizontal back porch width.
                                                      This parameter must be a number between
                                                      Min_Data = LTDC_HorizontalSync and Max_Data = 0xFFF. */

  uint32_t AccumulatedVBP; /*!< configures the accumulated vertical back porch height.
                                                      This parameter must be a number between
                                                      Min_Data = LTDC_VerticalSync and Max_Data = 0x7FF. */

  uint32_t AccumulatedActiveW; /*!< configures the accumulated active width.
                                                      This parameter must be a number between
                                                      Min_Data = LTDC_AccumulatedHBP and Max_Data = 0xFFF. */

  uint32_t AccumulatedActiveH; /*!< configures the accumulated active height.
                                                      This parameter must be a number between
                                                      Min_Data = LTDC_AccumulatedVBP and Max_Data = 0x7FF. */

  uint32_t TotalWidth; /*!< configures the total width.
                                                      This parameter must be a number between
                                                      Min_Data = LTDC_AccumulatedActiveW and Max_Data = 0xFFF. */

  uint32_t TotalHeigh; /*!< configures the total height.
                                                      This parameter must be a number between
                                                      Min_Data = LTDC_AccumulatedActiveH and Max_Data = 0x7FF. */

  LTDC_ColorTypeDef Backcolor;
} LTDC_InitTypeDef;

/**
  * @brief  LTDC Layer structure definition
  */
typedef struct
{
  uint32_t WindowX0; /*!< Configures the Window Horizontal Start Position.
                                            This parameter must be a number between
                                            Min_Data = 0x000 and Max_Data = 0xFFF. */

  uint32_t WindowX1; /*!< Configures the Window Horizontal Stop Position.
                                            This parameter must be a number between
                                            Min_Data = 0x000 and Max_Data = 0xFFF. */

  uint32_t WindowY0; /*!< Configures the Window vertical Start Position.
                                            This parameter must be a number between
                                            Min_Data = 0x000 and Max_Data = 0x7FF. */

  uint32_t WindowY1; /*!< Configures the Window vertical Stop Position.
                                            This parameter must be a number between
                                            Min_Data = 0x0000 and Max_Data = 0x7FF. */

  uint32_t PixelFormat; /*!< Specifies the pixel format.
                                            This parameter can be one of value of @ref LTDC_Pixelformat */

  uint32_t Alpha; /*!< Specifies the constant alpha used for blending.
                                            This parameter must be a number between
                                            Min_Data = 0x00 and Max_Data = 0xFF. */

  uint32_t Alpha0; /*!< Configures the default alpha value.
                                            This parameter must be a number between
                                            Min_Data = 0x00 and Max_Data = 0xFF. */

  uint32_t BlendingFactor1; /*!< Select the blending factor 1.
                                            This parameter can be one of value of @ref LTDC_BlendingFactor1 */

  uint32_t BlendingFactor2; /*!< Select the blending factor 2.
                                            This parameter can be one of value of @ref LTDC_BlendingFactor2 */

  uint32_t FBStartAdress;

  uint32_t ImageWidth; /*!< Configures the color frame buffer line length.
                                            This parameter must be a number between
                                            Min_Data = 0x0000 and Max_Data = 0x1FFF. */

  uint32_t ImageHeight; /*!< Specifies the number of line in frame buffer.
                                            This parameter must be a number between
                                            Min_Data = 0x000 and Max_Data = 0x7FF. */

  LTDC_ColorTypeDef Backcolor;
} LTDC_LayerCfgTypeDef;

/**
  * @brief  HAL LTDC State structures definition
  */
typedef enum
{
  HAL_LTDC_STATE_RESET = 0x00U,
  HAL_LTDC_STATE_READY = 0x01U,
  HAL_LTDC_STATE_BUSY = 0x02U,
  HAL_LTDC_STATE_TIMEOUT = 0x03U,
  HAL_LTDC_STATE_ERROR = 0x04U
} HAL_LTDC_StateTypeDef;

/**
  * @brief  LTDC handle Structure definition
  */



typedef struct

{
  LTDC_TypeDef *Instance;

  LTDC_InitTypeDef Init;

  LTDC_LayerCfgTypeDef LayerCfg[2U];

  HAL_LockTypeDef Lock;

  volatile HAL_LTDC_StateTypeDef State;

  volatile uint32_t ErrorCode;
# 211 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc.h"
} LTDC_HandleTypeDef;
# 235 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup LTDC_Exported_Constants LTDC Exported Constants
  * @{
  */

/** @defgroup LTDC_Error_Code LTDC Error Code
  * @{
  */







/**
  * @}
  */

/** @defgroup LTDC_Layer LTDC Layer
  * @{
  */


/**
  * @}
  */

/** @defgroup LTDC_HS_POLARITY LTDC HS POLARITY
  * @{
  */


/**
  * @}
  */

/** @defgroup LTDC_VS_POLARITY LTDC VS POLARITY
  * @{
  */


/**
  * @}
  */

/** @defgroup LTDC_DE_POLARITY LTDC DE POLARITY
  * @{
  */


/**
  * @}
  */

/** @defgroup LTDC_PC_POLARITY LTDC PC POLARITY
  * @{
  */


/**
  * @}
  */

/** @defgroup LTDC_SYNC LTDC SYNC
  * @{
  */


/**
  * @}
  */

/** @defgroup LTDC_BACK_COLOR LTDC BACK COLOR
  * @{
  */

/**
  * @}
  */

/** @defgroup LTDC_BlendingFactor1 LTDC Blending Factor1
  * @{
  */


/**
  * @}
  */

/** @defgroup LTDC_BlendingFactor2 LTDC Blending Factor2
  * @{
  */


/**
  * @}
  */

/** @defgroup LTDC_Pixelformat LTDC Pixel format
  * @{
  */
# 349 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc.h"
/**
  * @}
  */

/** @defgroup LTDC_Alpha LTDC Alpha
  * @{
  */

/**
  * @}
  */

/** @defgroup LTDC_LAYER_Config LTDC LAYER Config
  * @{
  */





/**
  * @}
  */

/** @defgroup LTDC_Interrupts LTDC Interrupts
  * @{
  */




/**
  * @}
  */

/** @defgroup LTDC_Flags LTDC Flags
  * @{
  */




/**
  * @}
  */

/** @defgroup LTDC_Reload_Type LTDC Reload Type
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup LTDC_Exported_Macros LTDC Exported Macros
  * @{
  */

/** @brief Reset LTDC handle state.
  * @param  __HANDLE__  LTDC handle
  * @retval None
  */
# 427 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc.h"
/**
  * @brief  Enable the LTDC.
  * @param  __HANDLE__  LTDC handle
  * @retval None.
  */


/**
  * @brief  Disable the LTDC.
  * @param  __HANDLE__  LTDC handle
  * @retval None.
  */


/**
  * @brief  Enable the LTDC Layer.
  * @param  __HANDLE__  LTDC handle
  * @param  __LAYER__   Specify the layer to be enabled.
  *                     This parameter can be LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1).
  * @retval None.
  */



/**
  * @brief  Disable the LTDC Layer.
  * @param  __HANDLE__  LTDC handle
  * @param  __LAYER__   Specify the layer to be disabled.
  *                     This parameter can be LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1).
  * @retval None.
  */



/**
  * @brief  Reload immediately all LTDC Layers.
  * @param  __HANDLE__  LTDC handle
  * @retval None.
  */


/**
  * @brief  Reload during vertical blanking period all LTDC Layers.
  * @param  __HANDLE__  LTDC handle
  * @retval None.
  */


/* Interrupt & Flag management */
/**
  * @brief  Get the LTDC pending flags.
  * @param  __HANDLE__  LTDC handle
  * @param  __FLAG__    Get the specified flag.
  *          This parameter can be any combination of the following values:
  *            @arg LTDC_FLAG_LI: Line Interrupt flag
  *            @arg LTDC_FLAG_FU: FIFO Underrun Interrupt flag
  *            @arg LTDC_FLAG_TE: Transfer Error interrupt flag
  *            @arg LTDC_FLAG_RR: Register Reload Interrupt Flag
  * @retval The state of FLAG (SET or RESET).
  */


/**
  * @brief  Clears the LTDC pending flags.
  * @param  __HANDLE__  LTDC handle
  * @param  __FLAG__    Specify the flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg LTDC_FLAG_LI: Line Interrupt flag
  *            @arg LTDC_FLAG_FU: FIFO Underrun Interrupt flag
  *            @arg LTDC_FLAG_TE: Transfer Error interrupt flag
  *            @arg LTDC_FLAG_RR: Register Reload Interrupt Flag
  * @retval None
  */


/**
  * @brief  Enables the specified LTDC interrupts.
  * @param  __HANDLE__  LTDC handle
  * @param __INTERRUPT__ Specify the LTDC interrupt sources to be enabled.
  *          This parameter can be any combination of the following values:
  *            @arg LTDC_IT_LI: Line Interrupt flag
  *            @arg LTDC_IT_FU: FIFO Underrun Interrupt flag
  *            @arg LTDC_IT_TE: Transfer Error interrupt flag
  *            @arg LTDC_IT_RR: Register Reload Interrupt Flag
  * @retval None
  */


/**
  * @brief  Disables the specified LTDC interrupts.
  * @param  __HANDLE__  LTDC handle
  * @param __INTERRUPT__ Specify the LTDC interrupt sources to be disabled.
  *          This parameter can be any combination of the following values:
  *            @arg LTDC_IT_LI: Line Interrupt flag
  *            @arg LTDC_IT_FU: FIFO Underrun Interrupt flag
  *            @arg LTDC_IT_TE: Transfer Error interrupt flag
  *            @arg LTDC_IT_RR: Register Reload Interrupt Flag
  * @retval None
  */


/**
  * @brief  Check whether the specified LTDC interrupt has occurred or not.
  * @param  __HANDLE__  LTDC handle
  * @param __INTERRUPT__ Specify the LTDC interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg LTDC_IT_LI: Line Interrupt flag
  *            @arg LTDC_IT_FU: FIFO Underrun Interrupt flag
  *            @arg LTDC_IT_TE: Transfer Error interrupt flag
  *            @arg LTDC_IT_RR: Register Reload Interrupt Flag
  * @retval The state of INTERRUPT (SET or RESET).
  */

/**
  * @}
  */

/* Include LTDC HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_ltdc_ex.h
  * @author  MCD Application Team
  * @brief   Header file of LTDC HAL Extension module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc_ex.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_dsi.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_dsi.h
  * @author  MCD Application Team
  * @brief   Header file of DSI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup LTDCEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
/** @addtogroup LTDCEx_Exported_Functions
  * @{
  */

/** @addtogroup LTDCEx_Exported_Functions_Group1
  * @{
  */
HAL_StatusTypeDef HAL_LTDCEx_StructInitFromVideoConfig(LTDC_HandleTypeDef *hltdc, DSI_VidCfgTypeDef *VidCfg);
HAL_StatusTypeDef HAL_LTDCEx_StructInitFromAdaptedCommandConfig(LTDC_HandleTypeDef *hltdc, DSI_CmdCfgTypeDef *CmdCfg);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/**
  * @}
  */

/**
  * @}
  */




}
# 546 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup LTDC_Exported_Functions
  * @{
  */
/** @addtogroup LTDC_Exported_Functions_Group1
  * @{
  */
/* Initialization and de-initialization functions *****************************/
HAL_StatusTypeDef HAL_LTDC_Init(LTDC_HandleTypeDef *hltdc);
HAL_StatusTypeDef HAL_LTDC_DeInit(LTDC_HandleTypeDef *hltdc);
void HAL_LTDC_MspInit(LTDC_HandleTypeDef *hltdc);
void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef *hltdc);
void HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc);
void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc);
void HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc);

/* Callbacks Register/UnRegister functions  ***********************************/






/**
  * @}
  */

/** @addtogroup LTDC_Exported_Functions_Group2
  * @{
  */
/* IO operation functions *****************************************************/
void HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc);
/**
  * @}
  */

/** @addtogroup LTDC_Exported_Functions_Group3
  * @{
  */
/* Peripheral Control functions ***********************************************/
HAL_StatusTypeDef HAL_LTDC_ConfigLayer(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetWindowSize(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetWindowPosition(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetPixelFormat(LTDC_HandleTypeDef *hltdc, uint32_t Pixelformat, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetAlpha(LTDC_HandleTypeDef *hltdc, uint32_t Alpha, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetAddress(LTDC_HandleTypeDef *hltdc, uint32_t Address, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetPitch(LTDC_HandleTypeDef *hltdc, uint32_t LinePitchInPixels, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_ConfigColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t RGBValue, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_ConfigCLUT(LTDC_HandleTypeDef *hltdc, const uint32_t *pCLUT, uint32_t CLUTSize,
                                      uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_EnableColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_DisableColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_EnableCLUT(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_DisableCLUT(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_ProgramLineEvent(LTDC_HandleTypeDef *hltdc, uint32_t Line);
HAL_StatusTypeDef HAL_LTDC_EnableDither(LTDC_HandleTypeDef *hltdc);
HAL_StatusTypeDef HAL_LTDC_DisableDither(LTDC_HandleTypeDef *hltdc);
HAL_StatusTypeDef HAL_LTDC_Reload(LTDC_HandleTypeDef *hltdc, uint32_t ReloadType);
HAL_StatusTypeDef HAL_LTDC_ConfigLayer_NoReload(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg,
                                                uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetWindowSize_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize,
                                                  uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetWindowPosition_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0,
                                                      uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetPixelFormat_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Pixelformat, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetAlpha_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Alpha, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetAddress_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Address, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_SetPitch_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LinePitchInPixels, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_ConfigColorKeying_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t RGBValue, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_EnableColorKeying_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_DisableColorKeying_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_EnableCLUT_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);
HAL_StatusTypeDef HAL_LTDC_DisableCLUT_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx);

/**
  * @}
  */

/** @addtogroup LTDC_Exported_Functions_Group4
  * @{
  */
/* Peripheral State functions *************************************************/
HAL_LTDC_StateTypeDef HAL_LTDC_GetState(const LTDC_HandleTypeDef *hltdc);
uint32_t HAL_LTDC_GetError(const LTDC_HandleTypeDef *hltdc);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/** @defgroup LTDC_Private_Macros LTDC Private Macros
  * @{
  */
# 692 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ltdc.h"
/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup LTDC_Private_Functions LTDC Private Functions
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */




}
# 399 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_opamp.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_opamp.h
  * @author  MCD Application Team
  * @brief   Header file of OPAMP HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_opamp.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup OPAMP
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup OPAMP_Exported_Types OPAMP Exported Types
  * @{
  */

/**
  * @brief  OPAMP Init structure definition
  */

typedef struct
{

  uint32_t PowerMode; /*!< Specifies the power mode Normal or High Speed.
                                             This parameter must be a value of @ref OPAMP_PowerMode */

  uint32_t Mode; /*!< Specifies the OPAMP mode
                                             This parameter must be a value of @ref OPAMP_Mode
                                             mode is either Standalone, - Follower or PGA */

  uint32_t InvertingInput; /*!< Specifies the inverting input in Standalone & PGA modes
                                             - In Standalone mode i.e when mode is OPAMP_STANDALONE_MODE
                                                 This parameter must be a value of @ref OPAMP_InvertingInput
                                             - In Follower mode i.e when mode is OPAMP_FOLLOWER_MODE
                                           & In PGA mode i.e when mode is OPAMP_PGA_MODE
                                                 This parameter is Not Applicable */

  uint32_t NonInvertingInput; /*!< Specifies the non inverting input of the opamp:
                                             This parameter must be a value of @ref OPAMP_NonInvertingInput */

  uint32_t PgaGain; /*!< Specifies the gain in PGA mode
                                             i.e. when mode is OPAMP_PGA_MODE.
                                             This parameter must be a value of @ref OPAMP_PgaGain */

  uint32_t PgaConnect; /*!< Specifies the inverting pin in PGA mode
                                             i.e. when mode is OPAMP_PGA_MODE
                                             This parameter must be a value of @ref OPAMP_PgaConnect
                                             Either: not connected, connected to VINM0, connected to VINM1
                                             (VINM0 or VINM1 are typically used for external filtering) */

  uint32_t UserTrimming; /*!< Specifies the trimming mode
                                             This parameter must be a value of @ref OPAMP_UserTrimming
                                             UserTrimming is either factory or user trimming.*/

  uint32_t TrimmingValueP; /*!< Specifies the offset trimming value (PMOS) in Normal Mode
                                             i.e. when UserTrimming is OPAMP_TRIMMING_USER.
                                             This parameter must be a number between Min_Data = 0 and Max_Data = 31.
                                             16 is typical default value */

  uint32_t TrimmingValueN; /*!< Specifies the offset trimming value (NMOS) in Normal Mode
                                             i.e. when UserTrimming is OPAMP_TRIMMING_USER.
                                             This parameter must be a number between Min_Data = 0 and Max_Data = 31.
                                             16 is typical default value */

  uint32_t TrimmingValuePHighSpeed; /*!< Specifies the offset trimming value (PMOS) in High Speed Mode
                                             i.e. when UserTrimming is OPAMP_TRIMMING_USER.
                                             This parameter must be a number between Min_Data = 0 and Max_Data = 31.
                                             16 is typical default value */

  uint32_t TrimmingValueNHighSpeed; /*!< Specifies the offset trimming value (NMOS) in High Speed Mode
                                             i.e. when UserTrimming is OPAMP_TRIMMING_USER.
                                             This parameter must be a number between Min_Data = 0 and Max_Data = 31.
                                             16 is typical default value */

}OPAMP_InitTypeDef;

/**
  * @brief  HAL State structures definition
  */

typedef enum
{
  HAL_OPAMP_STATE_RESET = 0x00000000U,

  HAL_OPAMP_STATE_READY = 0x00000001U,
  HAL_OPAMP_STATE_CALIBBUSY = 0x00000002U,

  HAL_OPAMP_STATE_BUSY = 0x00000004U,
  HAL_OPAMP_STATE_BUSYLOCKED = 0x00000005U /*!< OPAMP is locked
                                                         only system reset allows reconfiguring the opamp. */

}HAL_OPAMP_StateTypeDef;

/**
  * @brief OPAMP Handle Structure definition
  */



typedef struct

{
  OPAMP_TypeDef *Instance;
  OPAMP_InitTypeDef Init;
  HAL_StatusTypeDef Status;
  HAL_LockTypeDef Lock;
  volatile HAL_OPAMP_StateTypeDef State;





} OPAMP_HandleTypeDef;

/**
  * @brief HAl_OPAMP_TrimmingValueTypeDef definition
  */

typedef uint32_t HAL_OPAMP_TrimmingValueTypeDef;
# 164 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_opamp.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup OPAMP_Exported_Constants OPAMP Exported Constants
  * @{
  */

/** @defgroup OPAMP_Mode OPAMP Mode
  * @{
  */




/**
  * @}
  */

/** @defgroup OPAMP_NonInvertingInput OPAMP Non Inverting Input
  * @{
  */







/**
  * @}
  */

/** @defgroup OPAMP_InvertingInput OPAMP Inverting Input
  * @{
  */




/**
  * @}
  */

/** @defgroup OPAMP_PgaConnect OPAMP Pga Connect
  * @{
  */







/**
  * @}
  */

/** @defgroup OPAMP_PgaGain OPAMP Pga Gain
  * @{
  */






/**
  * @}
  */

/** @defgroup OPAMP_PowerMode OPAMP PowerMode
  * @{
  */



/**
  * @}
  */


/** @defgroup OPAMP_VREF OPAMP VREF
  * @{
  */






/**
  * @}
  */

/** @defgroup OPAMP_UserTrimming OPAMP User Trimming
  * @{
  */




/**
  * @}
  */

/** @defgroup OPAMP_FactoryTrimming OPAMP Factory Trimming
  * @{
  */





/**
  * @}
  */

 /**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup OPAMP_Private_Constants OPAMP Private Constants
  * @brief   OPAMP Private constants and defines
  * @{
  */

/* NONINVERTING bit position in OTR & HSOTR */


/* Offset trimming time: during calibration, minimum time needed between two  */
/* steps to have 1 mV accuracy.                                               */
/* Refer to datasheet, electrical characteristics: parameter tOFFTRIM Typ=2ms.*/
/* Unit: ms.                                                                  */


/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup OPAMP_Exported_Macros OPAMP Exported Macros
  * @{
  */

/** @brief Reset OPAMP handle state.
  * @param  __HANDLE__: OPAMP handle.
  * @retval None
  */


/**
  * @}
  */

/* Private macro -------------------------------------------------------------*/

/** @defgroup OPAMP_Private_Macros OPAMP Private Macros
  * @{
  */
# 372 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_opamp.h"
/**
  * @}
  */

/* Include OPAMP HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_opamp_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_opamp_ex.h
  * @author  MCD Application Team
  * @brief   Header file of OPAMP HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_opamp_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup OPAMPEx
  * @{
  */
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
/** @addtogroup OPAMPEx_Exported_Functions OPAMPEx Exported Functions
  * @{
  */

/* Extended IO operation functions  *****************************************************/
/** @addtogroup OPAMPEx_Exported_Functions_Group1
  * @{
  */
HAL_StatusTypeDef HAL_OPAMPEx_SelfCalibrateAll(OPAMP_HandleTypeDef *hopamp1, OPAMP_HandleTypeDef *hopamp2);

/**
  * @}
  */
/* Peripheral Control functions  ************************************************/
/** @addtogroup OPAMPEx_Exported_Functions_Group2
  * @{
  */
HAL_StatusTypeDef HAL_OPAMPEx_Unlock(OPAMP_HandleTypeDef *hopamp);
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 378 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_opamp.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup OPAMP_Exported_Functions
  * @{
  */

/** @addtogroup OPAMP_Exported_Functions_Group1
  * @{
  */
/* Initialization/de-initialization functions  **********************************/
HAL_StatusTypeDef HAL_OPAMP_Init(OPAMP_HandleTypeDef *hopamp);
HAL_StatusTypeDef HAL_OPAMP_DeInit (OPAMP_HandleTypeDef *hopamp);
void HAL_OPAMP_MspInit(OPAMP_HandleTypeDef *hopamp);
void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef *hopamp);
/**
  * @}
  */

/** @addtogroup OPAMP_Exported_Functions_Group2
  * @{
  */

/* I/O operation functions  *****************************************************/
HAL_StatusTypeDef HAL_OPAMP_Start(OPAMP_HandleTypeDef *hopamp);
HAL_StatusTypeDef HAL_OPAMP_Stop(OPAMP_HandleTypeDef *hopamp);
HAL_StatusTypeDef HAL_OPAMP_SelfCalibrate(OPAMP_HandleTypeDef *hopamp);

/**
  * @}
  */

/** @addtogroup OPAMP_Exported_Functions_Group3
  * @{
  */

/* Peripheral Control functions  ************************************************/





HAL_StatusTypeDef HAL_OPAMP_Lock(OPAMP_HandleTypeDef *hopamp);
HAL_OPAMP_TrimmingValueTypeDef HAL_OPAMP_GetTrimOffset (const OPAMP_HandleTypeDef *hopamp, uint32_t trimmingoffset);

/**
  * @}
  */

/** @addtogroup OPAMP_Exported_Functions_Group4
  * @{
  */

/* Peripheral State functions  **************************************************/
HAL_OPAMP_StateTypeDef HAL_OPAMP_GetState(const OPAMP_HandleTypeDef *hopamp);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 403 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ospi.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_ospi.h
  * @author  MCD Application Team
  * @brief   Header file of OSPI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ospi.h" 2
# 1072 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ospi.h"
}
# 407 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_otfdec.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_otfdec.h
  * @author  MCD Application Team
  * @brief   Header file of OTFDEC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2018 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_otfdec.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */
# 468 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_otfdec.h"
/**
  * @}
  */


}
# 411 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pssi.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_pssi.h
  * @author  MCD Application Team
  * @brief   Header file of PSSI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2019 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pssi.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */
# 531 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pssi.h"
/**
  * @}
  */



}
# 415 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_pwr.h
  * @author  MCD Application Team
  * @brief   Header file of PWR HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup PWR
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup PWR_Exported_Types PWR Exported Types
  * @{
  */

/**
  * @brief  PWR PVD configuration structure definition
  */
typedef struct
{
  uint32_t PVDLevel; /*!< PVDLevel: Specifies the PVD detection level. This
                                    parameter can be a value of @ref
                                    PWR_PVD_detection_level.
                     */

  uint32_t Mode; /*!< Mode: Specifies the EXTI operating mode for the PVD
                                event. This parameter can be a value of @ref
                                PWR_PVD_Mode.
                     */
}PWR_PVDTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup PWR_Exported_Constants PWR Exported Constants
  * @{
  */

/** @defgroup PWR_PVD_detection_level PWR PVD detection level
  * @{
  */
# 88 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h"
/**
  * @}
  */

/** @defgroup PWR_PVD_Mode PWR PVD Mode
  * @{
  */







/**
  * @}
  */

/** @defgroup PWR_Regulator_state_in_STOP_mode PWR Regulator state in SLEEP/STOP mode
  * @{
  */


/**
  * @}
  */

/** @defgroup PWR_SLEEP_mode_entry PWR SLEEP mode entry
  * @{
  */


/**
  * @}
  */

/** @defgroup PWR_STOP_mode_entry PWR STOP mode entry
  * @{
  */


/**
  * @}
  */

/** @defgroup PWR_Regulator_Voltage_Scale PWR Regulator Voltage Scale
  * @{
  */
# 147 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h"
/**
  * @}
  */

/** @defgroup PWR_Flag PWR Flag
  * @{
  */
/* PWR CPU flag */
# 189 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h"
/* PWR Wake up flag */






/**
  * @}
  */

/** @defgroup PWR_ENABLE_WUP_Mask PWR Enable WUP Mask
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */
/* Exported macro ------------------------------------------------------------*/
/** @defgroup PWR_Exported_Macro PWR Exported Macro
  * @{
  */

/** @brief  Configure the main internal regulator output voltage.
  * @param  __REGULATOR__ : Specifies the regulator output voltage to achieve a
  *                         trade-off between performance and power consumption
  *                         when the device does not operate at the maximum
  *                         frequency (refer to the datasheet for more details).
  *          This parameter can be one of the following values:
  *            @arg PWR_REGULATOR_VOLTAGE_SCALE0 : Regulator voltage output
  *                                                Scale 0 mode.
  *            @arg PWR_REGULATOR_VOLTAGE_SCALE1 : Regulator voltage output
  *                                                Scale 1 mode.
  *            @arg PWR_REGULATOR_VOLTAGE_SCALE2 : Regulator voltage output
  *                                                Scale 2 mode.
  *            @arg PWR_REGULATOR_VOLTAGE_SCALE3 : Regulator voltage output
  *                                                Scale 3 mode.
  * @note   For STM32H74x and STM32H75x lines, configuring Voltage Scale 0 is
  *         only possible when Vcore is supplied from LDO (Low DropOut). The
  *         SYSCFG Clock must be enabled through __HAL_RCC_SYSCFG_CLK_ENABLE()
  *         macro before configuring Voltage Scale 0 using
  *         __HAL_PWR_VOLTAGESCALING_CONFIG().
  *         Transition to Voltage Scale 0 is only possible when the system is
  *         already in Voltage Scale 1.
  *         Transition from Voltage Scale 0 is only possible to Voltage Scale 1
  *         then once in Voltage Scale 1 it is possible to switch to another
  *         voltage scale.
  *         After each regulator voltage setting, wait on VOSRDY flag to be set
  *         using macro __HAL_PWR_GET_FLAG().
  *         To enter low power mode , and if current regulator voltage is
  *         Voltage Scale 0 then first switch to Voltage Scale 1 before entering
  *         low power mode.
  * @retval None.
  */
# 300 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h"
/** @brief  Check PWR flags are set or not.
  * @param  __FLAG__ : Specifies the flag to check.
  *           This parameter can be one of the following values:
  *            @arg PWR_FLAG_PVDO : PVD Output. This flag is valid only if PVD
  *                                 is enabled by the HAL_PWR_EnablePVD()
  *                                 function.
  *                                 The PVD is stopped by STANDBY mode. For this
  *                                 reason, this bit is equal to 0 after STANDBY
  *                                 or reset until the PVDE bit is set.
  *            @arg PWR_FLAG_AVDO : AVD Output. This flag is valid only if AVD
  *                                 is enabled by the HAL_PWREx_EnableAVD()
  *                                 function. The AVD is stopped by STANDBY mode.
  *                                 For this reason, this bit is equal to 0
  *                                 after STANDBY or reset until the AVDE bit
  *                                 is set.
  *            @arg PWR_FLAG_ACTVOSRDY : This flag indicates that the Regulator
  *                                      voltage scaling output selection is
  *                                      ready.
  *            @arg PWR_FLAG_BRR : Backup regulator ready flag. This bit is not
  *                                reset when the device wakes up from STANDBY
  *                                mode or by a system reset or power-on reset.
  *            @arg PWR_FLAG_VOSRDY : This flag indicates that the Regulator
  *                                   voltage scaling output selection is ready.
  *                                mode or by a system reset or power-on reset.
  *            @arg PWR_FLAG_USB33RDY : This flag indicates that the USB supply
  *                                     from regulator is ready.
  *            @arg PWR_FLAG_TEMPH : This flag indicates that the temperature
  *                                  equal or above high threshold level.
  *            @arg PWR_FLAG_TEMPL : This flag indicates that the temperature
  *                                  equal or below low threshold level.
  *            @arg PWR_FLAG_VBATH : This flag indicates that VBAT level equal
  *                                  or above high threshold level.
  *            @arg PWR_FLAG_VBATL : This flag indicates that VBAT level equal
  *                                  or below low threshold level.
  *            @arg PWR_FLAG_STOP : This flag indicates that the system entered
  *                                 in STOP mode.
  *            @arg PWR_FLAG_SB : This flag indicates that the system entered in
  *                               STANDBY mode.
  *            @arg PWR_FLAG_SB_D1 : This flag indicates that the D1 domain
  *                                  entered in STANDBY mode.
  *            @arg PWR_FLAG_SB_D2 : This flag indicates that the D2 domain
  *                                  entered in STANDBY mode.
  *            @arg PWR_FLAG2_STOP : This flag indicates that the system entered
  *                                 in STOP mode.
  *            @arg PWR_FLAG2_SB : This flag indicates that the system entered
  *                                in STANDBY mode.
  *            @arg PWR_FLAG2_SB_D1 : This flag indicates that the D1 domain
  *                                   entered in STANDBY mode.
  *            @arg PWR_FLAG2_SB_D2 : This flag indicates that the D2 domain
  *                                   entered in STANDBY mode.
  *            @arg PWR_FLAG_CPU_HOLD : This flag indicates that the CPU1 wakes
  *                                     up with hold.
  *            @arg PWR_FLAG_CPU2_HOLD : This flag indicates that the CPU2 wakes
  *                                      up with hold.
  *            @arg PWR_FLAG_SMPSEXTRDY : This flag indicates that the SMPS
  *                                       External supply is sready.
  *            @arg PWR_FLAG_SCUEN : This flag indicates that the supply
  *                                  configuration update is enabled.
  *            @arg PWR_FLAG_MMCVDO : This flag indicates that the VDDMMC is
  *                                   above or equal to 1.2 V.
  * @note   The PWR_FLAG_PVDO, PWR_FLAG_AVDO, PWR_FLAG_ACTVOSRDY, PWR_FLAG_BRR,
  *         PWR_FLAG_VOSRDY, PWR_FLAG_USB33RDY, PWR_FLAG_TEMPH, PWR_FLAG_TEMPL,
  *         PWR_FLAG_VBATH, PWR_FLAG_VBATL, PWR_FLAG_STOP and PWR_FLAG_SB flags
  *         are used for all H7 family lines.
  *         The PWR_FLAG2_STOP, PWR_FLAG2_SB, PWR_FLAG2_SB_D1, PWR_FLAG2_SB_D2,
  *         PWR_FLAG_CPU_HOLD and PWR_FLAG_CPU2_HOLD flags are used only for H7
  *         dual core lines.
  *         The PWR_FLAG_SB_D1 and PWR_FLAG_SB_D2 flags are used for all H7
  *         family except STM32H7Axxx and STM32H7Bxxx lines.
  *         The PWR_FLAG_MMCVDO flag is used only for STM32H7Axxx and
  *         STM32H7Bxxx lines.
  *         The PWR_FLAG_SCUEN flag is used for devices that support only LDO
  *         regulator.
  *         The PWR_FLAG_SMPSEXTRDY flag is used for devices that support LDO
  *         and SMPS regulators.
  * @retval The (__FLAG__) state (TRUE or FALSE).
  */
# 474 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h"
/** @brief  Check PWR wake up flags are set or not.
  * @param  __FLAG__: specifies the wake up flag to check.
  *           This parameter can be one of the following values:
  *            @arg PWR_FLAG_WKUP1 : This parameter clear Wake up line 1 flag.
  *            @arg PWR_FLAG_WKUP2 : This parameter clear Wake up line 2 flag.
  *            @arg PWR_FLAG_WKUP3 : This parameter clear Wake up line 3 flag.
  *            @arg PWR_FLAG_WKUP4 : This parameter clear Wake up line 4 flag.
  *            @arg PWR_FLAG_WKUP5 : This parameter clear Wake up line 5 flag.
  *            @arg PWR_FLAG_WKUP6 : This parameter clear Wake up line 6 flag.
  * @note   The PWR_FLAG_WKUP3 and PWR_FLAG_WKUP5 are available only for devices
  *         that support GPIOI port.
  * @retval The (__FLAG__) state (TRUE or FALSE).
  */



/** @brief  Clear CPU PWR flags.
  * @param  __FLAG__ : Specifies the flag to clear.
  * @note   This parameter is not used for the STM32H7 family and is kept as
  *         parameter just to maintain compatibility with other families.
  * @note   This macro clear all CPU flags STOPF, SBF, SBF_D1, and SBF_D2.
  *           This parameter can be one of the following values :
  *            @arg PWR_CPU_FLAGS : Clear HOLD2F, STOPF, SBF, SBF_D1, and SBF_D2
  *                                 CPU flags.
  * @retval None.
  */
# 519 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h"
/** @brief  Clear PWR wake up flags.
  * @param  __FLAG__ : Specifies the wake up flag to be cleared.
  *           This parameter can be one of the following values :
  *            @arg PWR_FLAG_WKUP1 : This parameter clear Wake up line 1 flag.
  *            @arg PWR_FLAG_WKUP2 : This parameter clear Wake up line 2 flag.
  *            @arg PWR_FLAG_WKUP3 : This parameter clear Wake up line 3 flag.
  *            @arg PWR_FLAG_WKUP4 : This parameter clear Wake up line 4 flag.
  *            @arg PWR_FLAG_WKUP5 : This parameter clear Wake up line 5 flag.
  *            @arg PWR_FLAG_WKUP6 : This parameter clear Wake up line 6 flag.
  * @note   The PWR_FLAG_WKUP3 and PWR_FLAG_WKUP5 are available only for devices
  *         that support GPIOI port.
  * @retval None.
  */


/**
  * @brief Enable the PVD EXTI Line 16.
  * @retval None.
  */



/**
  * @brief Enable the PVD EXTI D2 Line 16.
  * @retval None.
  */



/**
  * @brief Disable the PVD EXTI Line 16.
  * @retval None.
  */



/**
  * @brief Disable the PVD EXTI D2 Line 16.
  * @retval None.
  */



/**
  * @brief   Enable event on PVD EXTI Line 16.
  * @retval None.
  */



/**
  * @brief Enable event on PVD EXTI D2 Line.
  * @retval None.
  */



/**
  * @brief   Disable event on PVD EXTI Line 16.
  * @retval None.
  */



/**
  * @brief Disable event on PVD EXTI D2 Line.
  * @retval None.
  */



/**
  * @brief Enable the PVD Rising Interrupt Trigger.
  * @retval None.
  */


/**
  * @brief Disable the PVD Rising Interrupt Trigger.
  * @retval None.
  */


/**
  * @brief Enable the PVD Falling Interrupt Trigger.
  * @retval None.
  */


/**
  * @brief Disable the PVD Falling Interrupt Trigger.
  * @retval None.
  */


/**
  * @brief Enable the PVD Rising & Falling Interrupt Trigger.
  * @retval None.
  */






/**
  * @brief Disable the PVD Rising & Falling Interrupt Trigger.
  * @retval None.
  */






/**
  * @brief Check whether the specified PVD EXTI interrupt flag is set or not.
  * @retval EXTI PVD Line Status.
  */



/**
  * @brief Checks whether the specified PVD EXTI interrupt flag is set or not.
  * @retval EXTI D2 PVD Line Status.
  */



/**
  * @brief Clear the PVD EXTI flag.
  * @retval None.
  */



/**
  * @brief Clear the PVD EXTI D2 flag.
  * @retval None.
  */



/**
  * @brief  Generates a Software interrupt on PVD EXTI line.
  * @retval None.
  */

/**
  * @}
  */

/* Include PWR HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_pwr_ex.h
  * @author  MCD Application Team
  * @brief   Header file of PWR HAL Extension module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup PWREx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup PWREx_Exported_Types PWREx Exported Types
  * @{
  */
/**
  * @brief  PWREx AVD configuration structure definition
  */
typedef struct
{
  uint32_t AVDLevel; /*!< AVDLevel : Specifies the AVD detection level. This
                                     parameter can be a value of @ref
                                     PWREx_AVD_detection_level
                     */

  uint32_t Mode; /*!< Mode : Specifies the EXTI operating mode for the AVD
                                 event. This parameter can be a value of @ref
                                 PWREx_AVD_Mode.
                     */
}PWREx_AVDTypeDef;

/**
  * @brief  PWREx Wakeup pin configuration structure definition
  */
typedef struct
{
  uint32_t WakeUpPin; /*!< WakeUpPin: Specifies the Wake-Up pin to be enabled.
                                        This parameter can be a value of @ref
                                        PWREx_WakeUp_Pins
                        */

  uint32_t PinPolarity; /*!< PinPolarity: Specifies the Wake-Up pin polarity.
                                          This parameter can be a value of @ref
                                          PWREx_PIN_Polarity
                        */

  uint32_t PinPull; /*!< PinPull: Specifies the Wake-Up pin pull. This
                                      parameter can be a value of @ref
                                      PWREx_PIN_Pull
                        */
}PWREx_WakeupPinTypeDef;
# 90 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup PWREx_Exported_Constants PWREx Exported Constants
  * @{
  */
/** @defgroup PWREx_WakeUp_Pins PWREx Wake-Up Pins
  * @{
  */
/* High level and No pull (default configuration) */
# 114 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/* High level and No pull */
# 126 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/* Low level and No pull */
# 137 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/**
  * @}
  */

/** @defgroup PWREx_PIN_Polarity PWREx Pin Polarity configuration
  * @{
  */


/**
  * @}
  */

/** @defgroup PWREx_PIN_Pull PWREx Pin Pull configuration
  * @{
  */



/**
  * @}
  */

/** @defgroup PWREx_Wakeup_Pins_Flags PWREx Wakeup Pins Flags.
  * @{
  */
# 181 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/**
  * @}
  */


/** @defgroup PWREx_Core_Select PWREx Core definition
  * @{
  */


/**
  * @}
  */


/** @defgroup PWREx_Domains PWREx Domains definition
  * @{
  */





/**
  * @}
  */

/** @defgroup PWREx_Domain_Flags PWREx Domain Flags definition
  * @{
  */







/**
  * @}
  */

/** @defgroup PWREx_D3_State PWREx D3 Domain State
  * @{
  */



/**
  * @}
  */

/** @defgroup PWREx_Supply_configuration PWREx Supply configuration
  * @{
  */
# 253 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/**
  * @}
  */


/** @defgroup PWREx_AVD_detection_level PWREx AVD detection level
  * @{
  */
# 269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/**
  * @}
  */

/** @defgroup PWREx_AVD_Mode PWREx AVD Mode
  * @{
  */







/**
  * @}
  */

/** @defgroup PWREx_Regulator_Voltage_Scale PWREx Regulator Voltage Scale
  * @{
  */



/**
  * @}
  */

/** @defgroup PWREx_VBAT_Battery_Charging_Resistor PWR battery charging resistor selection
  * @{
  */


/**
  * @}
  */

/** @defgroup PWREx_VBAT_Thresholds PWREx VBAT Thresholds
  * @{
  */



/**
  * @}
  */

/** @defgroup PWREx_TEMP_Thresholds PWREx Temperature Thresholds
  * @{
  */



/**
  * @}
  */
/** @defgroup PWREx_AVD_EXTI_Line PWREx AVD EXTI Line 16
  * @{
  */


/**
  * @}
  */
# 353 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/

/** @defgroup PWREx_Exported_Macro PWREx Exported Macro
  *  @{
  */

/**
  * @brief Enable the AVD EXTI Line 16.
  * @retval None.
  */



/**
  * @brief Enable the AVD EXTI D2 Line 16.
  * @retval None.
  */



/**
  * @brief Disable the AVD EXTI Line 16
  * @retval None.
  */



/**
  * @brief Disable the AVD EXTI D2 Line 16.
  * @retval None.
  */



/**
  * @brief Enable event on AVD EXTI Line 16.
  * @retval None.
  */



/**
  * @brief Enable event on AVD EXTI D2 Line 16.
  * @retval None.
  */



/**
  * @brief Disable event on AVD EXTI Line 16.
  * @retval None.
  */



/**
  * @brief Disable event on AVD EXTI D2 Line 16.
  * @retval None.
  */



/**
  * @brief Enable the AVD Extended Interrupt Rising Trigger.
  * @retval None.
  */


/**
  * @brief Disable the AVD Extended Interrupt Rising Trigger.
  * @retval None.
  */


/**
  * @brief Enable the AVD Extended Interrupt Falling Trigger.
  * @retval None.
  */


/**
  * @brief Disable the AVD Extended Interrupt Falling Trigger.
  * @retval None.
  */


/**
  * @brief Enable the AVD Extended Interrupt Rising and Falling Trigger.
  * @retval None.
  */






/**
  * @brief Disable the AVD Extended Interrupt Rising & Falling Trigger.
  * @retval None.
  */






/**
  * @brief Check whether the specified AVD EXTI interrupt flag is set or not.
  * @retval EXTI AVD Line Status.
  */



/**
  * @brief Check whether the specified AVD EXTI D2 interrupt flag is set or not.
  * @retval EXTI D2 AVD Line Status.
  */



/**
  * @brief  Clear the AVD EXTI flag.
  * @retval None.
  */



/**
  * @brief  Clear the AVD EXTI D2 flag.
  * @retval None.
  */



/**
  * @brief  Generates a Software interrupt on AVD EXTI line.
  * @retval None.
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/

/** @addtogroup PWREx_Exported_Functions PWREx Exported Functions
  * @{
  */

/** @addtogroup PWREx_Exported_Functions_Group1 Power Supply Control Functions
  * @{
  */
HAL_StatusTypeDef HAL_PWREx_ConfigSupply (uint32_t SupplySource);
uint32_t HAL_PWREx_GetSupplyConfig (void);
HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling (uint32_t VoltageScaling);
uint32_t HAL_PWREx_GetVoltageRange (void);
HAL_StatusTypeDef HAL_PWREx_ControlStopModeVoltageScaling (uint32_t VoltageScaling);
uint32_t HAL_PWREx_GetStopModeVoltageRange (void);
/**
  * @}
  */

/** @addtogroup PWREx_Exported_Functions_Group2 Low Power Control Functions
  * @{
  */
/* System low power control functions */



void HAL_PWREx_EnterSTOPMode (uint32_t Regulator, uint8_t STOPEntry, uint32_t Domain);
void HAL_PWREx_EnterSTANDBYMode (uint32_t Domain);
void HAL_PWREx_ConfigD3Domain (uint32_t D3State);
/* Clear Cortex-Mx pending flag */
void HAL_PWREx_ClearPendingEvent (void);

/* Clear domain flags */
void HAL_PWREx_ClearDomainFlags (uint32_t DomainFlags);
/* Core Hold/Release functions */
HAL_StatusTypeDef HAL_PWREx_HoldCore (uint32_t CPU);
void HAL_PWREx_ReleaseCore (uint32_t CPU);

/* Flash low power control functions */
void HAL_PWREx_EnableFlashPowerDown (void);
void HAL_PWREx_DisableFlashPowerDown (void);





/* Wakeup Pins control functions */
void HAL_PWREx_EnableWakeUpPin (const PWREx_WakeupPinTypeDef *sPinParams);
void HAL_PWREx_DisableWakeUpPin (uint32_t WakeUpPin);
uint32_t HAL_PWREx_GetWakeupFlag (uint32_t WakeUpFlag);
HAL_StatusTypeDef HAL_PWREx_ClearWakeupFlag (uint32_t WakeUpFlag);
/* Power Wakeup PIN IRQ Handler */
void HAL_PWREx_WAKEUP_PIN_IRQHandler (void);
void HAL_PWREx_WKUP1_Callback (void);
void HAL_PWREx_WKUP2_Callback (void);

void HAL_PWREx_WKUP3_Callback (void);

void HAL_PWREx_WKUP4_Callback (void);

void HAL_PWREx_WKUP5_Callback (void);

void HAL_PWREx_WKUP6_Callback (void);
/**
  * @}
  */

/** @addtogroup PWREx_Exported_Functions_Group3 Peripherals control functions
  * @{
  */
/* Backup regulator control functions */
HAL_StatusTypeDef HAL_PWREx_EnableBkUpReg (void);
HAL_StatusTypeDef HAL_PWREx_DisableBkUpReg (void);
/* USB regulator control functions */
HAL_StatusTypeDef HAL_PWREx_EnableUSBReg (void);
HAL_StatusTypeDef HAL_PWREx_DisableUSBReg (void);
void HAL_PWREx_EnableUSBVoltageDetector (void);
void HAL_PWREx_DisableUSBVoltageDetector (void);
/* Battery control functions */
void HAL_PWREx_EnableBatteryCharging (uint32_t ResistorValue);
void HAL_PWREx_DisableBatteryCharging (void);





/**
  * @}
  */

/** @addtogroup PWREx_Exported_Functions_Group4 Power Monitoring functions
  * @{
  */
/* Power VBAT/Temperature monitoring functions */
void HAL_PWREx_EnableMonitoring (void);
void HAL_PWREx_DisableMonitoring (void);
uint32_t HAL_PWREx_GetTemperatureLevel (void);
uint32_t HAL_PWREx_GetVBATLevel (void);



/* Power AVD configuration functions */
void HAL_PWREx_ConfigAVD (const PWREx_AVDTypeDef *sConfigAVD);
void HAL_PWREx_EnableAVD (void);
void HAL_PWREx_DisableAVD (void);
/* Power PVD/AVD IRQ Handler */
void HAL_PWREx_PVD_AVD_IRQHandler (void);
void HAL_PWREx_AVDCallback (void);
/**
  * @}
  */

/**
  * @}
  */
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/** @defgroup PWREx_Private_Macros PWREx Private Macros
  * @{
  */

/** @defgroup PWREx_IS_PWR_Definitions PWREx Private macros to check input parameters
  * @{
  */
/* Check PWR regulator configuration parameter */
# 643 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/* Check PWR regulator configuration in STOP mode parameter */




/* Check PWR domain parameter */
# 658 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/* Check D3/SRD domain state parameter */



/* Check wake up pin parameter */
# 697 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/* Check wake up pin polarity parameter */



/* Check wake up pin pull configuration parameter */




/* Check wake up flag parameter */
# 723 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/* Check wake up flag parameter */





/* Check AVD mode parameter */
# 738 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/* Check resistor battery parameter */


/* Check D1/CD CPU ID parameter */



/* Check CPU parameter */


/* Check D2 CPU ID parameter */


/* Check PWR domain flag parameter */
# 769 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr_ex.h"
/**
  * @}
  */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

}
# 673 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup PWR_Exported_Functions PWR Exported Functions
  * @{
  */

/** @addtogroup PWR_Exported_Functions_Group1 Initialization and De-Initialization Functions
  * @{
  */
/* Initialization and de-initialization functions *****************************/
void HAL_PWR_DeInit (void);
void HAL_PWR_EnableBkUpAccess (void);
void HAL_PWR_DisableBkUpAccess (void);
/**
  * @}
  */

/** @addtogroup PWR_Exported_Functions_Group2 Peripheral Control Functions
  * @{
  */
/* Peripheral Control functions  **********************************************/
/* PVD configuration */
void HAL_PWR_ConfigPVD (const PWR_PVDTypeDef *sConfigPVD);
void HAL_PWR_EnablePVD (void);
void HAL_PWR_DisablePVD (void);

/* WakeUp pins configuration */
void HAL_PWR_EnableWakeUpPin (uint32_t WakeUpPinPolarity);
void HAL_PWR_DisableWakeUpPin (uint32_t WakeUpPinx);

/* Low Power modes entry */
void HAL_PWR_EnterSTOPMode (uint32_t Regulator, uint8_t STOPEntry);
void HAL_PWR_EnterSLEEPMode (uint32_t Regulator, uint8_t SLEEPEntry);
void HAL_PWR_EnterSTANDBYMode (void);

/* Power PVD IRQ Handler */
void HAL_PWR_PVD_IRQHandler (void);
void HAL_PWR_PVDCallback (void);

/* Cortex System Control functions  *******************************************/
void HAL_PWR_EnableSleepOnExit (void);
void HAL_PWR_DisableSleepOnExit (void);
void HAL_PWR_EnableSEVOnPend (void);
void HAL_PWR_DisableSEVOnPend (void);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup PWR_Private_Constants PWR Private Constants
  * @{
  */

/** @defgroup PWR_PVD_EXTI_Line PWR PVD EXTI Line
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */
/* Private macros ------------------------------------------------------------*/
/** @defgroup PWR_Private_Macros PWR Private Macros
  * @{
  */

/** @defgroup PWR_IS_PWR_Definitions PWR Private macros to check input parameters
  * @{
  */
/* Check PVD level parameter */
# 762 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h"
/* Check PVD mode parameter */
# 771 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pwr.h"
/* Check low power regulator parameter */



/* Check low power mode entry parameter */



/* Check low power mode entry parameter */



/* Check voltage scale level parameter */




/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 419 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_qspi.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_qspi.h
  * @author  MCD Application Team
  * @brief   Header file of QSPI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_qspi.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_delayblock.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_delayblock.h
  * @author  MCD Application Team
  * @brief   Header file of Delay Block module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_delayblock.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup DELAYBLOCK_LL
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup DELAYBLOCK_LL_Exported_Types DELAYBLOCK_LL Exported Types
  * @{
  */


/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup DLYB_Exported_Constants Delay Block Exported Constants
  * @{
  */





/**
  * @}
  */

/** @addtogroup DelayBlock_LL_Exported_Functions
  * @{
  */

/* Peripheral Control functions  ************************************************/
/** @addtogroup HAL_DELAY_LL_Group1
  * @{
  */
HAL_StatusTypeDef DelayBlock_Enable(DLYB_TypeDef *DLYBx);
HAL_StatusTypeDef DelayBlock_Disable(DLYB_TypeDef *DLYBx);
HAL_StatusTypeDef DelayBlock_Configure(DLYB_TypeDef *DLYBx, uint32_t PhaseSel, uint32_t Units);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

  /**
  * @}
  */

}
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_qspi.h" 2




/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup QSPI
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup QSPI_Exported_Types QSPI Exported Types
  * @{
  */

/**
  * @brief  QSPI Init structure definition
  */
typedef struct
{
  uint32_t ClockPrescaler; /* Specifies the prescaler factor for generating clock based on the AHB clock.
                                  This parameter can be a number between 0 and 255 */
  uint32_t FifoThreshold; /* Specifies the threshold number of bytes in the FIFO (used only in indirect mode)
                                  This parameter can be a value between 1 and 32 */
  uint32_t SampleShifting; /* Specifies the Sample Shift. The data is sampled 1/2 clock cycle delay later to
                                  take in account external signal delays. (It should be QSPI_SAMPLE_SHIFTING_NONE in DDR mode)
                                  This parameter can be a value of @ref QSPI_SampleShifting */
  uint32_t FlashSize; /* Specifies the Flash Size. FlashSize+1 is effectively the number of address bits
                                  required to address the flash memory. The flash capacity can be up to 4GB
                                  (addressed using 32 bits) in indirect mode, but the addressable space in
                                  memory-mapped mode is limited to 256MB
                                  This parameter can be a number between 0 and 31 */
  uint32_t ChipSelectHighTime; /* Specifies the Chip Select High Time. ChipSelectHighTime+1 defines the minimum number
                                  of clock cycles which the chip select must remain high between commands.
                                  This parameter can be a value of @ref QSPI_ChipSelectHighTime */
  uint32_t ClockMode; /* Specifies the Clock Mode. It indicates the level that clock takes between commands.
                                  This parameter can be a value of @ref QSPI_ClockMode */
  uint32_t FlashID; /* Specifies the Flash which will be used,
                                  This parameter can be a value of @ref QSPI_Flash_Select */
  uint32_t DualFlash; /* Specifies the Dual Flash Mode State
                                  This parameter can be a value of @ref QSPI_DualFlash_Mode */
}QSPI_InitTypeDef;

/**
  * @brief HAL QSPI State structures definition
  */
typedef enum
{
  HAL_QSPI_STATE_RESET = 0x00U,
  HAL_QSPI_STATE_READY = 0x01U,
  HAL_QSPI_STATE_BUSY = 0x02U,
  HAL_QSPI_STATE_BUSY_INDIRECT_TX = 0x12U,
  HAL_QSPI_STATE_BUSY_INDIRECT_RX = 0x22U,
  HAL_QSPI_STATE_BUSY_AUTO_POLLING = 0x42U,
  HAL_QSPI_STATE_BUSY_MEM_MAPPED = 0x82U,
  HAL_QSPI_STATE_ABORT = 0x08U,
  HAL_QSPI_STATE_ERROR = 0x04U
}HAL_QSPI_StateTypeDef;

/**
  * @brief  QSPI Handle Structure definition
  */



typedef struct

{
  QUADSPI_TypeDef *Instance;
  QSPI_InitTypeDef Init;
  uint8_t *pTxBuffPtr;
  volatile uint32_t TxXferSize;
  volatile uint32_t TxXferCount;
  uint8_t *pRxBuffPtr;
  volatile uint32_t RxXferSize;
  volatile uint32_t RxXferCount;
  MDMA_HandleTypeDef *hmdma;
  volatile HAL_LockTypeDef Lock;
  volatile HAL_QSPI_StateTypeDef State;
  volatile uint32_t ErrorCode;
  uint32_t Timeout;
# 127 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_qspi.h"
}QSPI_HandleTypeDef;

/**
  * @brief  QSPI Command structure definition
  */
typedef struct
{
  uint32_t Instruction; /* Specifies the Instruction to be sent
                                  This parameter can be a value (8-bit) between 0x00 and 0xFF */
  uint32_t Address; /* Specifies the Address to be sent (Size from 1 to 4 bytes according AddressSize)
                                  This parameter can be a value (32-bits) between 0x0 and 0xFFFFFFFF */
  uint32_t AlternateBytes; /* Specifies the Alternate Bytes to be sent (Size from 1 to 4 bytes according AlternateBytesSize)
                                  This parameter can be a value (32-bits) between 0x0 and 0xFFFFFFFF */
  uint32_t AddressSize; /* Specifies the Address Size
                                  This parameter can be a value of @ref QSPI_AddressSize */
  uint32_t AlternateBytesSize; /* Specifies the Alternate Bytes Size
                                  This parameter can be a value of @ref QSPI_AlternateBytesSize */
  uint32_t DummyCycles; /* Specifies the Number of Dummy Cycles.
                                  This parameter can be a number between 0 and 31 */
  uint32_t InstructionMode; /* Specifies the Instruction Mode
                                  This parameter can be a value of @ref QSPI_InstructionMode */
  uint32_t AddressMode; /* Specifies the Address Mode
                                  This parameter can be a value of @ref QSPI_AddressMode */
  uint32_t AlternateByteMode; /* Specifies the Alternate Bytes Mode
                                  This parameter can be a value of @ref QSPI_AlternateBytesMode */
  uint32_t DataMode; /* Specifies the Data Mode (used for dummy cycles and data phases)
                                  This parameter can be a value of @ref QSPI_DataMode */
  uint32_t NbData; /* Specifies the number of data to transfer. (This is the number of bytes)
                                  This parameter can be any value between 0 and 0xFFFFFFFF (0 means undefined length
                                  until end of memory)*/
  uint32_t DdrMode; /* Specifies the double data rate mode for address, alternate byte and data phase
                                  This parameter can be a value of @ref QSPI_DdrMode */
  uint32_t DdrHoldHalfCycle; /* Specifies if the DDR hold is enabled. When enabled it delays the data
                                  output by one half of system clock in DDR mode.
                                  This parameter can be a value of @ref QSPI_DdrHoldHalfCycle */
  uint32_t SIOOMode; /* Specifies the send instruction only once mode
                                  This parameter can be a value of @ref QSPI_SIOOMode */
}QSPI_CommandTypeDef;

/**
  * @brief  QSPI Auto Polling mode configuration structure definition
  */
typedef struct
{
  uint32_t Match; /* Specifies the value to be compared with the masked status register to get a match.
                                  This parameter can be any value between 0 and 0xFFFFFFFF */
  uint32_t Mask; /* Specifies the mask to be applied to the status bytes received.
                                  This parameter can be any value between 0 and 0xFFFFFFFF */
  uint32_t Interval; /* Specifies the number of clock cycles between two read during automatic polling phases.
                                  This parameter can be any value between 0 and 0xFFFF */
  uint32_t StatusBytesSize; /* Specifies the size of the status bytes received.
                                  This parameter can be any value between 1 and 4 */
  uint32_t MatchMode; /* Specifies the method used for determining a match.
                                  This parameter can be a value of @ref QSPI_MatchMode */
  uint32_t AutomaticStop; /* Specifies if automatic polling is stopped after a match.
                                  This parameter can be a value of @ref QSPI_AutomaticStop */
}QSPI_AutoPollingTypeDef;

/**
  * @brief  QSPI Memory Mapped mode configuration structure definition
  */
typedef struct
{
  uint32_t TimeOutPeriod; /* Specifies the number of clock to wait when the FIFO is full before to release the chip select.
                                  This parameter can be any value between 0 and 0xFFFF */
  uint32_t TimeOutActivation; /* Specifies if the timeout counter is enabled to release the chip select.
                                  This parameter can be a value of @ref QSPI_TimeOutActivation */
}QSPI_MemoryMappedTypeDef;
# 220 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_qspi.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup QSPI_Exported_Constants QSPI Exported Constants
  * @{
  */

/** @defgroup QSPI_ErrorCode QSPI Error Code
  * @{
  */
# 240 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_qspi.h"
/**
  * @}
  */

/** @defgroup QSPI_SampleShifting QSPI Sample Shifting
  * @{
  */


/**
  * @}
  */

/** @defgroup QSPI_ChipSelectHighTime QSPI ChipSelect High Time
  * @{
  */
# 264 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_qspi.h"
/**
  * @}
  */

/** @defgroup QSPI_ClockMode QSPI Clock Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup QSPI_Flash_Select QSPI Flash Select
  * @{
  */


/**
  * @}
  */

  /** @defgroup QSPI_DualFlash_Mode QSPI Dual Flash Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup QSPI_AddressSize QSPI Address Size
  * @{
  */




/**
  * @}
  */

/** @defgroup QSPI_AlternateBytesSize QSPI Alternate Bytes Size
  * @{
  */




/**
  * @}
  */

/** @defgroup QSPI_InstructionMode QSPI Instruction Mode
* @{
*/




/**
  * @}
  */

/** @defgroup QSPI_AddressMode QSPI Address Mode
* @{
*/




/**
  * @}
  */

/** @defgroup QSPI_AlternateBytesMode QSPI Alternate Bytes Mode
* @{
*/




/**
  * @}
  */

/** @defgroup QSPI_DataMode QSPI Data Mode
  * @{
  */




/**
  * @}
  */

/** @defgroup QSPI_DdrMode QSPI DDR Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup QSPI_DdrHoldHalfCycle QSPI DDR Data Output Delay
  * @{
  */


/**
  * @}
  */

/** @defgroup QSPI_SIOOMode QSPI Send Instruction Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup QSPI_MatchMode QSPI Match Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup QSPI_AutomaticStop QSPI Automatic Stop
  * @{
  */


/**
  * @}
  */

/** @defgroup QSPI_TimeOutActivation QSPI Timeout Activation
  * @{
  */


/**
  * @}
  */

/** @defgroup QSPI_Flags QSPI Flags
  * @{
  */






/**
  * @}
  */

/** @defgroup QSPI_Interrupts QSPI Interrupts
  * @{
  */





/**
  * @}
  */

/** @defgroup QSPI_Timeout_definition QSPI Timeout definition
  * @brief QSPI Timeout definition
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup QSPI_Exported_Macros QSPI Exported Macros
  * @{
  */
/** @brief Reset QSPI handle state.
  * @param  __HANDLE__ QSPI handle.
  * @retval None
  */
# 471 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_qspi.h"
/** @brief  Enable the QSPI peripheral.
  * @param  __HANDLE__ specifies the QSPI Handle.
  * @retval None
  */


/** @brief  Disable the QSPI peripheral.
  * @param  __HANDLE__ specifies the QSPI Handle.
  * @retval None
  */


/** @brief  Enable the specified QSPI interrupt.
  * @param  __HANDLE__ specifies the QSPI Handle.
  * @param  __INTERRUPT__ specifies the QSPI interrupt source to enable.
  *          This parameter can be one of the following values:
  *            @arg QSPI_IT_TO: QSPI Timeout interrupt
  *            @arg QSPI_IT_SM: QSPI Status match interrupt
  *            @arg QSPI_IT_FT: QSPI FIFO threshold interrupt
  *            @arg QSPI_IT_TC: QSPI Transfer complete interrupt
  *            @arg QSPI_IT_TE: QSPI Transfer error interrupt
  * @retval None
  */



/** @brief  Disable the specified QSPI interrupt.
  * @param  __HANDLE__ specifies the QSPI Handle.
  * @param  __INTERRUPT__ specifies the QSPI interrupt source to disable.
  *          This parameter can be one of the following values:
  *            @arg QSPI_IT_TO: QSPI Timeout interrupt
  *            @arg QSPI_IT_SM: QSPI Status match interrupt
  *            @arg QSPI_IT_FT: QSPI FIFO threshold interrupt
  *            @arg QSPI_IT_TC: QSPI Transfer complete interrupt
  *            @arg QSPI_IT_TE: QSPI Transfer error interrupt
  * @retval None
  */


/** @brief  Check whether the specified QSPI interrupt source is enabled or not.
  * @param  __HANDLE__ specifies the QSPI Handle.
  * @param  __INTERRUPT__ specifies the QSPI interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg QSPI_IT_TO: QSPI Timeout interrupt
  *            @arg QSPI_IT_SM: QSPI Status match interrupt
  *            @arg QSPI_IT_FT: QSPI FIFO threshold interrupt
  *            @arg QSPI_IT_TC: QSPI Transfer complete interrupt
  *            @arg QSPI_IT_TE: QSPI Transfer error interrupt
  * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  */


/**
  * @brief  Check whether the selected QSPI flag is set or not.
  * @param  __HANDLE__ specifies the QSPI Handle.
  * @param  __FLAG__ specifies the QSPI flag to check.
  *          This parameter can be one of the following values:
  *            @arg QSPI_FLAG_BUSY: QSPI Busy flag
  *            @arg QSPI_FLAG_TO:   QSPI Timeout flag
  *            @arg QSPI_FLAG_SM:   QSPI Status match flag
  *            @arg QSPI_FLAG_FT:   QSPI FIFO threshold flag
  *            @arg QSPI_FLAG_TC:   QSPI Transfer complete flag
  *            @arg QSPI_FLAG_TE:   QSPI Transfer error flag
  * @retval None
  */


/** @brief  Clears the specified QSPI's flag status.
  * @param  __HANDLE__ specifies the QSPI Handle.
  * @param  __FLAG__ specifies the QSPI clear register flag that needs to be set
  *          This parameter can be one of the following values:
  *            @arg QSPI_FLAG_TO: QSPI Timeout flag
  *            @arg QSPI_FLAG_SM: QSPI Status match flag
  *            @arg QSPI_FLAG_TC: QSPI Transfer complete flag
  *            @arg QSPI_FLAG_TE: QSPI Transfer error flag
  * @retval None
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup QSPI_Exported_Functions
  * @{
  */

/** @addtogroup QSPI_Exported_Functions_Group1
  * @{
  */
/* Initialization/de-initialization functions  ********************************/
HAL_StatusTypeDef HAL_QSPI_Init (QSPI_HandleTypeDef *hqspi);
HAL_StatusTypeDef HAL_QSPI_DeInit (QSPI_HandleTypeDef *hqspi);
void HAL_QSPI_MspInit (QSPI_HandleTypeDef *hqspi);
void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef *hqspi);
/**
  * @}
  */

/** @addtogroup QSPI_Exported_Functions_Group2
  * @{
  */
/* IO operation functions *****************************************************/
/* QSPI IRQ handler method */
void HAL_QSPI_IRQHandler(QSPI_HandleTypeDef *hqspi);

/* QSPI indirect mode */
HAL_StatusTypeDef HAL_QSPI_Command (QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, uint32_t Timeout);
HAL_StatusTypeDef HAL_QSPI_Transmit (QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout);
HAL_StatusTypeDef HAL_QSPI_Receive (QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout);
HAL_StatusTypeDef HAL_QSPI_Command_IT (QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd);
HAL_StatusTypeDef HAL_QSPI_Transmit_IT (QSPI_HandleTypeDef *hqspi, uint8_t *pData);
HAL_StatusTypeDef HAL_QSPI_Receive_IT (QSPI_HandleTypeDef *hqspi, uint8_t *pData);
HAL_StatusTypeDef HAL_QSPI_Transmit_DMA (QSPI_HandleTypeDef *hqspi, uint8_t *pData);
HAL_StatusTypeDef HAL_QSPI_Receive_DMA (QSPI_HandleTypeDef *hqspi, uint8_t *pData);

/* QSPI status flag polling mode */
HAL_StatusTypeDef HAL_QSPI_AutoPolling (QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_AutoPollingTypeDef *cfg, uint32_t Timeout);
HAL_StatusTypeDef HAL_QSPI_AutoPolling_IT(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_AutoPollingTypeDef *cfg);

/* QSPI memory-mapped mode */
HAL_StatusTypeDef HAL_QSPI_MemoryMapped(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_MemoryMappedTypeDef *cfg);

/* Callback functions in non-blocking modes ***********************************/
void HAL_QSPI_ErrorCallback (QSPI_HandleTypeDef *hqspi);
void HAL_QSPI_AbortCpltCallback (QSPI_HandleTypeDef *hqspi);
void HAL_QSPI_FifoThresholdCallback(QSPI_HandleTypeDef *hqspi);

/* QSPI indirect mode */
void HAL_QSPI_CmdCpltCallback (QSPI_HandleTypeDef *hqspi);
void HAL_QSPI_RxCpltCallback (QSPI_HandleTypeDef *hqspi);
void HAL_QSPI_TxCpltCallback (QSPI_HandleTypeDef *hqspi);

/* QSPI status flag polling mode */
void HAL_QSPI_StatusMatchCallback (QSPI_HandleTypeDef *hqspi);

/* QSPI memory-mapped mode */
void HAL_QSPI_TimeOutCallback (QSPI_HandleTypeDef *hqspi);






/**
  * @}
  */

/** @addtogroup QSPI_Exported_Functions_Group3
  * @{
  */
/* Peripheral Control and State functions  ************************************/
HAL_QSPI_StateTypeDef HAL_QSPI_GetState (const QSPI_HandleTypeDef *hqspi);
uint32_t HAL_QSPI_GetError (const QSPI_HandleTypeDef *hqspi);
HAL_StatusTypeDef HAL_QSPI_Abort (QSPI_HandleTypeDef *hqspi);
HAL_StatusTypeDef HAL_QSPI_Abort_IT (QSPI_HandleTypeDef *hqspi);
void HAL_QSPI_SetTimeout (QSPI_HandleTypeDef *hqspi, uint32_t Timeout);
HAL_StatusTypeDef HAL_QSPI_SetFifoThreshold(QSPI_HandleTypeDef *hqspi, uint32_t Threshold);
uint32_t HAL_QSPI_GetFifoThreshold(const QSPI_HandleTypeDef *hqspi);
HAL_StatusTypeDef HAL_QSPI_SetFlashID (QSPI_HandleTypeDef *hqspi, uint32_t FlashID);
/**
  * @}
  */

/**
  * @}
  */
/* End of exported functions -------------------------------------------------*/

/* Private macros ------------------------------------------------------------*/
/** @defgroup QSPI_Private_Macros QSPI Private Macros
  * @{
  */
# 728 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_qspi.h"
/**
* @}
*/
/* End of private macros -----------------------------------------------------*/

/**
  * @}
  */

/**
  * @}
  */




}
# 423 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ramecc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_ramecc.h
  * @author  MCD Application Team
  * @brief   Header file of RAMECC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




 extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ramecc.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup RAMECC
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup RAMECC_Exported_Types RAMECC Exported Types
  * @brief    RAMECC Exported Types
  * @{
  */

/**
  * @brief  HAL RAMECC State structures definition
  */
typedef enum
{
  HAL_RAMECC_STATE_RESET = 0x00U,
  HAL_RAMECC_STATE_READY = 0x01U,
  HAL_RAMECC_STATE_BUSY = 0x02U,
  HAL_RAMECC_STATE_ERROR = 0x03U,
}HAL_RAMECC_StateTypeDef;


/**
  * @brief  RAMECC handle Structure definition
  */



typedef struct

{
  RAMECC_MonitorTypeDef *Instance;
  volatile HAL_RAMECC_StateTypeDef State;
  volatile uint32_t ErrorCode;
  volatile uint32_t RAMECCErrorCode;



}RAMECC_HandleTypeDef;

/**
  * @}
  */


/* Exported constants --------------------------------------------------------*/
/** @defgroup RAMECC_Exported_Constants RAMECC Exported Constants
  * @{
  */
/** @defgroup RAMECC_Error_Codes RAMECC Error Codes
  * @{
  */







/**
  * @}
  */

/** @defgroup RAMECC_Error_Codes RAMECC Error Detected Codes
  * @{
  */



/**
  * @}
  */

/** @defgroup RAMECC_Interrupt RAMECC interrupts
  * @{
  */
# 125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ramecc.h"
/**
  * @}
  */

/** @defgroup RAMECC_FLAG RAMECC Monitor flags
  * @{
  */





/**
  * @}
  */
/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup RAMECC_Exported_Macros RAMECC Exported Macros
  * @{
  */




/**
  * @brief  Enable the specified RAMECC interrupts.
  * @param  __HANDLE__   : RAMECC handle.
  * @param  __INTERRUPT__: specifies the RAMECC interrupt sources to be enabled or disabled.
  *        This parameter can be one of the following values:
  *           @arg RAMECC_IT_GLOBAL_ENABLE         : Global interrupt enable mask.
  *           @arg RAMECC_IT_GLOBAL_SINGLEERR_R    : Global ECC single error interrupt enable.
  *           @arg RAMECC_IT_GLOBAL_DOUBLEERR_R    : Global ECC double error interrupt enable.
  *           @arg RAMECC_IT_GLOBAL_DOUBLEERR_W    : Global ECC double error on byte write (BW) interrupt enable.
  *           @arg RAMECC_IT_GLOBAL_ALL            : All Global ECC interrupts enable mask.
  *           @arg RAMECC_IT_MONITOR_SINGLEERR_R   : Monitor ECC single error interrupt enable.
  *           @arg RAMECC_IT_MONITOR_DOUBLEERR_R   : Monitor ECC double error interrupt enable.
  *           @arg RAMECC_IT_MONITOR_DOUBLEERR_W   : Monitor ECC double error on byte write (BW) interrupt enable.
  *           @arg RAMECC_IT_MONITOR_ALL           : All Monitor ECC interrupts enable mask.
  * @retval None
  */
# 176 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ramecc.h"
/**
  * @brief  Disable the specified RAMECC interrupts.
  * @param  __HANDLE__   : RAMECC handle.
  * @param  __INTERRUPT__: specifies the RAMECC interrupt sources to be enabled or disabled.
  *        This parameter can be one of the following values:
  *           @arg RAMECC_IT_GLOBAL_ENABLE         : Global interrupt enable mask.
  *           @arg RAMECC_IT_GLOBAL_SINGLEERR_R    : Global ECC single error interrupt enable.
  *           @arg RAMECC_IT_GLOBAL_DOUBLEERR_R    : Global ECC double error interrupt enable.
  *           @arg RAMECC_IT_GLOBAL_DOUBLEERR_W    : Global ECC double error on byte write (BW) interrupt enable.
  *           @arg RAMECC_IT_GLOBAL_ALL            : All Global ECC interrupts enable mask.
  *           @arg RAMECC_IT_MONITOR_SINGLEERR_R   : Monitor ECC single error interrupt enable.
  *           @arg RAMECC_IT_MONITOR_DOUBLEERR_R   : Monitor ECC double error interrupt enable.
  *           @arg RAMECC_IT_MONITOR_DOUBLEERR_W   : Monitor ECC double error on byte write (BW) interrupt enable.
  *           @arg RAMECC_IT_MONITOR_ALL           : All Monitor ECC interrupts enable mask.
  * @retval None
  */
# 200 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ramecc.h"
/**
  * @brief  Check whether the specified RAMECC interrupt source is enabled or not.
  * @param  __HANDLE__    : Specifies the RAMECC Handle.
  * @param  __INTERRUPT__ : Specifies the RAMECC interrupt source to check.
  *          This parameter can be one of the following values:
  *           @arg RAMECC_IT_GLOBAL_ENABLE         : Global interrupt enable mask.
  *           @arg RAMECC_IT_GLOBAL_SINGLEERR_R    : Global ECC single error interrupt enable.
  *           @arg RAMECC_IT_GLOBAL_DOUBLEERR_R    : Global ECC double error interrupt enable.
  *           @arg RAMECC_IT_GLOBAL_DOUBLEERR_W    : Global ECC double error on byte write (BW) interrupt enable.
  *           @arg RAMECC_IT_GLOBAL_ALL            : All Global ECC interrupts enable mask.
  *           @arg RAMECC_IT_MONITOR_SINGLEERR_R   : Monitor ECC single error interrupt enable.
  *           @arg RAMECC_IT_MONITOR_DOUBLEERR_R   : Monitor ECC double error interrupt enable.
  *           @arg RAMECC_IT_MONITOR_DOUBLEERR_W   : Monitor ECC double error on byte write (BW) interrupt enable.
  *           @arg RAMECC_IT_MONITOR_ALL           : All Monitor ECC interrupts enable mask.
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */





/**
  * @brief  Get the RAMECC pending flags.
  * @param  __HANDLE__   : RAMECC handle.
  * @param  __FLAG__     : specifies the flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg RAMECC_FLAG_SINGLEERR_R  : RAMECC instance ECC single error detected and corrected flag.
  *            @arg RAMECC_FLAG_DOUBLEERR_R  : RAMECC instance ECC double error detected flag.
  *            @arg RAMECC_FLAG_DOUBLEERR_W  : RAMECC instance ECC double error on byte write (BW) detected flag.
  *            @arg RAMECC_FLAGS_ALL         : RAMECC instance all flag.
  * @retval The state of __FLAG__ (SET or RESET).
  */



/**
  * @brief  Clear the RAMECC pending flags.
  * @param  __HANDLE__   : RAMECC handle.
  * @param  __FLAG__     : specifies the flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg RAMECC_FLAG_SINGLEERR_R  : RAMECC instance ECC single error detected and corrected flag.
  *            @arg RAMECC_FLAG_DOUBLEERR_R  : RAMECC instance ECC double error detected flag.
  *            @arg RAMECC_FLAG_DOUBLEERR_W  : RAMECC instance ECC double error on byte write (BW) detected flag.
  *            @arg RAMECC_FLAGS_ALL         : RAMECC instance all flag.
  * @retval None.
  */


/**
  * @brief  Reset the RAMECC handle state.
  * @param  __HANDLE__    : Specifies the RAMECC Handle.
  * @retval None.
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/

/** @defgroup RAMECC_Exported_Functions RAMECC Exported Functions
  * @brief    RAMECC Exported functions
  * @{
  */

/** @defgroup RAMECC_Exported_Functions_Group1 Initialization and de-initialization functions
  * @brief    Initialization and de-initialization functions
  * @{
  */
HAL_StatusTypeDef HAL_RAMECC_Init(RAMECC_HandleTypeDef *hramecc);
HAL_StatusTypeDef HAL_RAMECC_DeInit(RAMECC_HandleTypeDef *hramecc);
/**
  * @}
  */

/** @defgroup RAMECC_Exported_Functions_Group2 monitoring operation functions
  * @brief    monitoring operation functions
  * @{
  */
HAL_StatusTypeDef HAL_RAMECC_StartMonitor(RAMECC_HandleTypeDef *hramecc);
HAL_StatusTypeDef HAL_RAMECC_StopMonitor(RAMECC_HandleTypeDef *hramecc);
HAL_StatusTypeDef HAL_RAMECC_EnableNotification(RAMECC_HandleTypeDef *hramecc, uint32_t Notifications);
HAL_StatusTypeDef HAL_RAMECC_DisableNotification(RAMECC_HandleTypeDef *hramecc, uint32_t Notifications);

/**
  * @}
  */

/** @defgroup RAMECC_Exported_Functions_Group3 handle Interrupt and Callbacks Functions
  * @brief    handle Interrupt and Callbacks Functions
  * @{
  */
void HAL_RAMECC_IRQHandler(RAMECC_HandleTypeDef *hramecc);
void HAL_RAMECC_DetectErrorCallback(RAMECC_HandleTypeDef *hramecc);




/**
  * @}
  */

/** @defgroup RAMECC_Exported_Functions_Group4 Error information functions
  * @brief    Error information functions
  * @{
  */
uint32_t HAL_RAMECC_GetFailingAddress(const RAMECC_HandleTypeDef *hramecc);
uint32_t HAL_RAMECC_GetFailingDataLow(const RAMECC_HandleTypeDef *hramecc);
uint32_t HAL_RAMECC_GetFailingDataHigh(const RAMECC_HandleTypeDef *hramecc);
uint32_t HAL_RAMECC_GetHammingErrorCode(const RAMECC_HandleTypeDef *hramecc);
uint32_t HAL_RAMECC_IsECCSingleErrorDetected(const RAMECC_HandleTypeDef *hramecc);
uint32_t HAL_RAMECC_IsECCDoubleErrorDetected(const RAMECC_HandleTypeDef *hramecc);
/**
  * @}
  */

/** @defgroup RAMECC_Exported_Functions_Group5 State and Error Functions
  * @brief    State and Error Functions
  * @{
  */
HAL_RAMECC_StateTypeDef HAL_RAMECC_GetState(const RAMECC_HandleTypeDef *hramecc);
uint32_t HAL_RAMECC_GetError(const RAMECC_HandleTypeDef *hramecc);
uint32_t HAL_RAMECC_GetRAMECCError(const RAMECC_HandleTypeDef *hramecc);
/**
  * @}
  */

/**
  * @}
  */
/* Private Constants -------------------------------------------------------------*/
/** @defgroup RAMECC_Private_Constants RAMECC Private Constants
  * @brief    RAMECC private defines and constants
  * @{
  */
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup RAMECC_Private_Macros RAMECC Private Macros
  * @brief    RAMECC private macros
  * @{
  */
# 360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_ramecc.h"
/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup RAMECC_Private_Functions RAMECC Private Functions
  * @brief    RAMECC private  functions
  * @{
  */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

}
# 427 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rng.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_rng.h
  * @author  MCD Application Team
  * @brief   Header file of RNG HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rng.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */



/** @defgroup RNG RNG
  * @brief RNG HAL module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup RNG_Exported_Types RNG Exported Types
  * @{
  */

/** @defgroup RNG_Exported_Types_Group1 RNG Init Structure definition
  * @{
  */
typedef struct
{
  uint32_t ClockErrorDetection;
} RNG_InitTypeDef;

/**
  * @}
  */

/** @defgroup RNG_Exported_Types_Group2 RNG State Structure definition
  * @{
  */
typedef enum
{
  HAL_RNG_STATE_RESET = 0x00U,
  HAL_RNG_STATE_READY = 0x01U,
  HAL_RNG_STATE_BUSY = 0x02U,
  HAL_RNG_STATE_TIMEOUT = 0x03U,
  HAL_RNG_STATE_ERROR = 0x04U

} HAL_RNG_StateTypeDef;

/**
  * @}
  */

/** @defgroup RNG_Exported_Types_Group3 RNG Handle Structure definition
  * @{
  */



typedef struct

{
  RNG_TypeDef *Instance;

  RNG_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  volatile HAL_RNG_StateTypeDef State;

  volatile uint32_t ErrorCode;

  uint32_t RandomNumber;
# 105 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rng.h"
} RNG_HandleTypeDef;
# 128 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rng.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup RNG_Exported_Constants RNG Exported Constants
  * @{
  */

/** @defgroup RNG_Exported_Constants_Group1 RNG Interrupt definition
  * @{
  */



/**
  * @}
  */

/** @defgroup RNG_Exported_Constants_Group2 RNG Flag definition
  * @{
  */



/**
  * @}
  */

/** @defgroup RNG_Exported_Constants_Group3 RNG Clock Error Detection
  * @{
  */


/**
  * @}
  */

/** @defgroup RNG_Error_Definition   RNG Error Definition
  * @{
  */
# 184 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rng.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup RNG_Exported_Macros RNG Exported Macros
  * @{
  */

/** @brief Reset RNG handle state
  * @param  __HANDLE__ RNG Handle
  * @retval None
  */
# 211 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rng.h"
/**
  * @brief  Enables the RNG peripheral.
  * @param  __HANDLE__ RNG Handle
  * @retval None
  */


/**
  * @brief  Disables the RNG peripheral.
  * @param  __HANDLE__ RNG Handle
  * @retval None
  */


/**
  * @brief  Check the selected RNG flag status.
  * @param  __HANDLE__ RNG Handle
  * @param  __FLAG__ RNG flag
  *          This parameter can be one of the following values:
  *            @arg RNG_FLAG_DRDY:  Data ready
  *            @arg RNG_FLAG_CECS:  Clock error current status
  *            @arg RNG_FLAG_SECS:  Seed error current status
  * @retval The new state of __FLAG__ (SET or RESET).
  */


/**
  * @brief  Clears the selected RNG flag status.
  * @param  __HANDLE__ RNG handle
  * @param  __FLAG__ RNG flag to clear
  * @note   WARNING: This is a dummy macro for HAL code alignment,
  *         flags RNG_FLAG_DRDY, RNG_FLAG_CECS and RNG_FLAG_SECS are read-only.
  * @retval None
  */


/**
  * @brief  Enables the RNG interrupts.
  * @param  __HANDLE__ RNG Handle
  * @retval None
  */


/**
  * @brief  Disables the RNG interrupts.
  * @param  __HANDLE__ RNG Handle
  * @retval None
  */


/**
  * @brief  Checks whether the specified RNG interrupt has occurred or not.
  * @param  __HANDLE__ RNG Handle
  * @param  __INTERRUPT__ specifies the RNG interrupt status flag to check.
  *         This parameter can be one of the following values:
  *            @arg RNG_IT_DRDY: Data ready interrupt
  *            @arg RNG_IT_CEI: Clock error interrupt
  *            @arg RNG_IT_SEI: Seed error interrupt
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */


/**
  * @brief  Clear the RNG interrupt status flags.
  * @param  __HANDLE__ RNG Handle
  * @param  __INTERRUPT__ specifies the RNG interrupt status flag to clear.
  *          This parameter can be one of the following values:
  *            @arg RNG_IT_CEI: Clock error interrupt
  *            @arg RNG_IT_SEI: Seed error interrupt
  * @note   RNG_IT_DRDY flag is read-only, reading RNG_DR register automatically clears RNG_IT_DRDY.
  * @retval None
  */


/**
  * @}
  */





/* Exported functions --------------------------------------------------------*/
/** @defgroup RNG_Exported_Functions RNG Exported Functions
  * @{
  */

/** @defgroup RNG_Exported_Functions_Group1 Initialization and configuration functions
  * @{
  */
HAL_StatusTypeDef HAL_RNG_Init(RNG_HandleTypeDef *hrng);
HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng);
void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng);
void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng);

/* Callbacks Register/UnRegister functions  ***********************************/
# 316 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rng.h"
/**
  * @}
  */

/** @defgroup RNG_Exported_Functions_Group2 Peripheral Control functions
  * @{
  */
HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit);
HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT(RNG_HandleTypeDef *hrng);
uint32_t HAL_RNG_ReadLastRandomNumber(const RNG_HandleTypeDef *hrng);

void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng);
void HAL_RNG_ErrorCallback(RNG_HandleTypeDef *hrng);
void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit);

/**
  * @}
  */

/** @defgroup RNG_Exported_Functions_Group3 Peripheral State functions
  * @{
  */
HAL_RNG_StateTypeDef HAL_RNG_GetState(const RNG_HandleTypeDef *hrng);
uint32_t HAL_RNG_GetError(const RNG_HandleTypeDef *hrng);
/**
  * @}
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup RNG_Private_Macros RNG Private Macros
  * @{
  */







/**
  * @brief Verify the RNG Clock Error Detection mode.
  * @param __MODE__ RNG Clock Error Detection mode
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */


/**
  * @}
  */
# 380 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rng.h"
/**
  * @}
  */



/**
  * @}
  */


}
# 431 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_rtc.h
  * @author  MCD Application Team
  * @brief   Header file of RTC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @defgroup RTC RTC
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup RTC_Exported_Types RTC Exported Types
  * @{
  */

/**
  * @brief  HAL State structures definition
  */
typedef enum
{
  HAL_RTC_STATE_RESET = 0x00U,
  HAL_RTC_STATE_READY = 0x01U,
  HAL_RTC_STATE_BUSY = 0x02U,
  HAL_RTC_STATE_TIMEOUT = 0x03U,
  HAL_RTC_STATE_ERROR = 0x04U

} HAL_RTCStateTypeDef;

/**
  * @brief  RTC Configuration Structure definition
  */
typedef struct
{
  uint32_t HourFormat; /*!< Specifies the RTC Hour Format.
                                 This parameter can be a value of @ref RTC_Hour_Formats_Definitions */

  uint32_t AsynchPrediv; /*!< Specifies the RTC Asynchronous Predivider value.
                                 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7F */

  uint32_t SynchPrediv; /*!< Specifies the RTC Synchronous Predivider value.
                                 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7FFF */

  uint32_t OutPut; /*!< Specifies which signal will be routed to the RTC output.
                                 This parameter can be a value of @ref RTC_Output_selection_Definitions */

  uint32_t OutPutRemap; /*!< Specifies the remap for RTC output.
                                 This parameter can be a value of @ref  RTC_Output_ALARM_OUT_Remap */

  uint32_t OutPutPolarity; /*!< Specifies the polarity of the output signal.
                                 This parameter can be a value of @ref RTC_Output_Polarity_Definitions */

  uint32_t OutPutType; /*!< Specifies the RTC Output Pin mode.
                                 This parameter can be a value of @ref RTC_Output_Type_ALARM_OUT */




} RTC_InitTypeDef;

/**
  * @brief  RTC Time structure definition
  */
typedef struct
{
  uint8_t Hours; /*!< Specifies the RTC Time Hour.
                                 This parameter must be a number between Min_Data = 0 and Max_Data = 12 if the RTC_HourFormat_12 is selected.
                                 This parameter must be a number between Min_Data = 0 and Max_Data = 23 if the RTC_HourFormat_24 is selected */

  uint8_t Minutes; /*!< Specifies the RTC Time Minutes.
                                 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */

  uint8_t Seconds; /*!< Specifies the RTC Time Seconds.
                                 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */

  uint8_t TimeFormat; /*!< Specifies the RTC AM/PM Time.
                                 This parameter can be a value of @ref RTC_AM_PM_Definitions */

  uint32_t SubSeconds; /*!< Specifies the RTC_SSR RTC Sub Second register content.
                                 This parameter corresponds to a time unit range between [0-1] Second
                                 with [1 Sec / SecondFraction +1] granularity */

  uint32_t SecondFraction; /*!< Specifies the range or granularity of Sub Second register content
                                 corresponding to Synchronous pre-scaler factor value (PREDIV_S)
                                 This parameter corresponds to a time unit range between [0-1] Second
                                 with [1 Sec / SecondFraction +1] granularity.
                                 This field will be used only by HAL_RTC_GetTime function */

  uint32_t DayLightSaving; /*!< Specifies RTC_DayLightSaveOperation: the value of hour adjustment.
                                 This parameter can be a value of @ref RTC_DayLightSaving_Definitions */

  uint32_t StoreOperation; /*!< Specifies RTC_StoreOperation value to be written in the BKP bit
                                 in CR register to store the operation.
                                 This parameter can be a value of @ref RTC_StoreOperation_Definitions */
} RTC_TimeTypeDef;

/**
  * @brief  RTC Date structure definition
  */
typedef struct
{
  uint8_t WeekDay; /*!< Specifies the RTC Date WeekDay.
                         This parameter can be a value of @ref RTC_WeekDay_Definitions */

  uint8_t Month; /*!< Specifies the RTC Date Month (in BCD format).
                         This parameter can be a value of @ref RTC_Month_Date_Definitions */

  uint8_t Date; /*!< Specifies the RTC Date.
                         This parameter must be a number between Min_Data = 1 and Max_Data = 31 */

  uint8_t Year; /*!< Specifies the RTC Date Year.
                         This parameter must be a number between Min_Data = 0 and Max_Data = 99 */

} RTC_DateTypeDef;

/**
  * @brief  RTC Alarm structure definition
  */
typedef struct
{
  RTC_TimeTypeDef AlarmTime;

  uint32_t AlarmMask; /*!< Specifies the RTC Alarm Masks.
                                      This parameter can be a value of @ref RTC_AlarmMask_Definitions */

  uint32_t AlarmSubSecondMask; /*!< Specifies the RTC Alarm SubSeconds Masks.
                                      This parameter can be a value of @ref RTC_Alarm_Sub_Seconds_Masks_Definitions */

  uint32_t AlarmDateWeekDaySel; /*!< Specifies the RTC Alarm is on Date or WeekDay.
                                     This parameter can be a value of @ref RTC_AlarmDateWeekDay_Definitions */

  uint8_t AlarmDateWeekDay; /*!< Specifies the RTC Alarm Date/WeekDay.
                                      If the Alarm Date is selected, this parameter must be set to a value in the 1-31 range.
                                      If the Alarm WeekDay is selected, this parameter can be a value of @ref RTC_WeekDay_Definitions */

  uint32_t Alarm; /*!< Specifies the alarm .
                                      This parameter can be a value of @ref RTC_Alarms_Definitions */
} RTC_AlarmTypeDef;

/**
  * @brief  RTC Handle Structure definition
  */



typedef struct

{
  RTC_TypeDef *Instance;

  RTC_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  volatile HAL_RTCStateTypeDef State;
# 220 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
} RTC_HandleTypeDef;
# 254 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup RTC_Exported_Constants RTC Exported Constants
  * @{
  */

/** @defgroup RTC_Hour_Formats_Definitions RTC Hour Formats Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTC_Output_selection_Definitions RTC Output Selection Definitions
  * @{
  */







/**
  * @}
  */

/** @defgroup RTC_Output_Polarity_Definitions RTC Output Polarity Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTC_Output_Type_ALARM_OUT RTC Output Type ALARM OUT
  * @{
  */
# 307 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @}
  */

/** @defgroup RTC_Output_PullUp_ALARM_OUT RTC Output Pull-Up ALARM OUT
  * @{
  */




/**
  * @}
  */

/** @defgroup RTC_Output_ALARM_OUT_Remap RTC Output ALARM OUT Remap
  * @{
  */







/**
  * @}
  */

/** @defgroup RTC_AM_PM_Definitions RTC AM PM Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTC_DayLightSaving_Definitions RTC DayLight Saving Definitions
  * @{
  */



/**
  * @}
  */

/** @defgroup RTC_StoreOperation_Definitions RTC Store Operation Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTC_Input_parameter_format_definitions RTC Input Parameter Format Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTC_Month_Date_Definitions RTC Month Date Definitions (in BCD format)
  * @{
  */
# 389 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @}
  */

/** @defgroup RTC_WeekDay_Definitions RTC WeekDay Definitions
  * @{
  */
# 404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @}
  */

/** @defgroup RTC_AlarmDateWeekDay_Definitions RTC Alarm Date WeekDay Definitions
  * @{
  */



/**
  * @}
  */

/** @defgroup RTC_AlarmMask_Definitions RTC Alarm Mask Definitions
  * @{
  */
# 430 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @}
  */

/** @defgroup RTC_Alarms_Definitions RTC Alarms Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTC_Alarm_Sub_Seconds_Masks_Definitions RTC Alarm Sub Seconds Masks Definitions
  * @{
  */
/*!< All Alarm SS fields are masked. There is no comparison on sub seconds for Alarm */

/*!< SS[14:1] are don't care in Alarm comparison. Only SS[0] is compared.     */

/*!< SS[14:2] are don't care in Alarm comparison. Only SS[1:0] are compared.  */

/*!< SS[14:3] are don't care in Alarm comparison. Only SS[2:0] are compared.  */

/*!< SS[14:4] are don't care in Alarm comparison. Only SS[3:0] are compared.  */

/*!< SS[14:5] are don't care in Alarm comparison. Only SS[4:0] are compared.  */

/*!< SS[14:6] are don't care in Alarm comparison. Only SS[5:0] are compared.  */

/*!< SS[14:7] are don't care in Alarm comparison. Only SS[6:0] are compared.  */

/*!< SS[14:8] are don't care in Alarm comparison. Only SS[7:0] are compared.  */

/*!< SS[14:9] are don't care in Alarm comparison. Only SS[8:0] are compared.  */

/*!< SS[14:10] are don't care in Alarm comparison. Only SS[9:0] are compared. */

/*!< SS[14:11] are don't care in Alarm comparison. Only SS[10:0] are compared. */

/*!< SS[14:12] are don't care in Alarm comparison. Only SS[11:0] are compared. */

/*!< SS[14:13] are don't care in Alarm comparison. Only SS[12:0] are compared. */

/*!< SS[14] is don't care in Alarm comparison. Only SS[13:0] are compared. */

/*!< SS[14:0] are compared and must match to activate alarm. */


/**
  * @}
  */

/** @defgroup RTC_Interrupts_Definitions RTC Interrupts Definitions
  * @{
  */




/**
  * @}
  */

/** @defgroup RTC_Flags_Definitions RTC Flags Definitions
  * @{
  */
# 528 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @}
  */

/** @defgroup RTC_Clear_Flags_Definitions RTC Clear Flags Definitions
  * @{
  */
# 544 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup RTC_Exported_Macros RTC Exported Macros
  * @{
  */

/** @brief Reset RTC handle state
  * @param  __HANDLE__ RTC handle.
  * @retval None
  */
# 571 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @brief  Disable the write protection for RTC registers.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Enable the write protection for RTC registers.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */





/**
  * @brief  Check whether the RTC Calendar is initialized.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Add 1 hour (summer time change).
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __BKP__ Backup
  *         This parameter can be:
  *            @arg @ref RTC_STOREOPERATION_RESET
  *            @arg @ref RTC_STOREOPERATION_SET
  * @retval None
  */
# 620 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @brief  Subtract 1 hour (winter time change).
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __BKP__ Backup
  *         This parameter can be:
  *            @arg @ref RTC_STOREOPERATION_RESET
  *            @arg @ref RTC_STOREOPERATION_SET
  * @retval None
  */
# 637 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @brief  Enable the RTC ALARMA peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Disable the RTC ALARMA peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Enable the RTC ALARMB peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Disable the RTC ALARMB peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Enable the RTC Alarm interrupt.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC Alarm interrupt sources to be enabled or disabled.
  *          This parameter can be any combination of the following values:
  *             @arg @ref RTC_IT_ALRA Alarm A interrupt
  *             @arg @ref RTC_IT_ALRB Alarm B interrupt
  * @retval None
  */


/**
  * @brief  Disable the RTC Alarm interrupt.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC Alarm interrupt sources to be enabled or disabled.
  *         This parameter can be any combination of the following values:
  *            @arg @ref RTC_IT_ALRA Alarm A interrupt
  *            @arg @ref RTC_IT_ALRB Alarm B interrupt
  * @retval None
  */


/**
  * @brief  Check whether the specified RTC Alarm interrupt has occurred or not.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC Alarm interrupt sources to check.
  *         This parameter can be:
  *            @arg @ref RTC_IT_ALRA Alarm A interrupt
  *            @arg @ref RTC_IT_ALRB Alarm B interrupt
  * @retval None
  */






/**
  * @brief  Check whether the specified RTC Alarm interrupt has been enabled or not.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC Alarm interrupt sources to check.
  *         This parameter can be:
  *            @arg @ref RTC_IT_ALRA Alarm A interrupt
  *            @arg @ref RTC_IT_ALRB Alarm B interrupt
  * @retval None
  */
# 725 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @brief  Get the selected RTC Alarm's flag status.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC Alarm Flag sources to check.
  *         This parameter can be:
  *            @arg @ref RTC_FLAG_ALRAF
  *            @arg @ref RTC_FLAG_ALRBF
  *            @arg @ref RTC_FLAG_ALRAWF
  *            @arg @ref RTC_FLAG_ALRBWF
  * @retval None
  */



/**
  * @brief  Clear the RTC Alarm's pending flags.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC Alarm Flag sources to clear.
  *          This parameter can be:
  *             @arg @ref RTC_FLAG_ALRAF
  *             @arg @ref RTC_FLAG_ALRBF
  * @retval None
  */







/**
  * @brief  Enable interrupt on the RTC Alarm associated Exti line.
  * @retval None
  */






/**
  * @brief  Disable interrupt on the RTC Alarm associated Exti line.
  * @retval None
  */






/**
  * @brief  Enable event on the RTC Alarm associated Exti line.
  * @retval None.
  */






/**
  * @brief  Disable event on the RTC Alarm associated Exti line.
  * @retval None.
  */







/**
  * @brief  Enable interrupt on the RTC Alarm associated D2 Exti line.
  * @retval None
  */


/**
  * @brief  Disable interrupt on the RTC Alarm associated D2 Exti line.
  * @retval None
  */


/**
  * @brief  Enable event on the RTC Alarm associated D2 Exti line.
  * @retval None
  */


/**
  * @brief  Disable event on the RTC Alarm associated D2 Exti line.
  * @retval None
  */



/**
  * @brief  Enable falling edge trigger on the RTC Alarm associated Exti line.
  * @retval None
  */


/**
  * @brief  Disable falling edge trigger on the RTC Alarm associated Exti line.
  * @retval None
  */


/**
  * @brief  Enable rising edge trigger on the RTC Alarm associated Exti line.
  * @retval None
  */


/**
  * @brief  Disable rising edge trigger on the RTC Alarm associated Exti line.
  * @retval None
  */


/**
  * @brief  Enable rising & falling edge trigger on the RTC Alarm associated Exti line.
  * @retval None
  */





/**
  * @brief  Disable rising & falling edge trigger on the RTC Alarm associated Exti line.
  * @retval None
  */





/**
  * @brief Check whether the RTC Alarm associated Exti line interrupt flag is set or not.
  * @retval Line Status.
  */






/**
  * @brief Clear the RTC Alarm associated Exti line flag.
  * @retval None.
  */







/**
  * @brief Check whether the RTC Alarm associated D2 Exti line interrupt flag is set or not.
  * @retval Line Status
  */


/**
  * @brief Clear the RTC Alarm associated D2 Exti line flag.
  * @retval None
  */


/**
  * @brief Generate a Software interrupt on RTC Alarm associated Exti line.
  * @retval None
  */


/**
  * @}
  */

/* Include RTC HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_rtc_ex.h
  * @author  MCD Application Team
  * @brief   Header file of RTC HAL Extension module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @defgroup RTCEx RTCEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup RTCEx_Exported_Types RTCEx Exported Types
  * @{
  */

/** @defgroup RTCEx_Tamper_structure_definition RTC Tamper structure definition
  * @{
  */
typedef struct
{
  uint32_t Tamper; /*!< Specifies the Tamper Pin.
                                             This parameter can be a value of @ref RTCEx_Tamper_Pins_Definitions */

  uint32_t Interrupt; /*!< Specifies the Tamper Interrupt.
                                             This parameter can be a value of @ref  RTCEx_Tamper_Interrupt_Definitions */

  uint32_t Trigger; /*!< Specifies the Tamper Trigger.
                                             This parameter can be a value of @ref RTCEx_Tamper_Trigger_Definitions */

  uint32_t NoErase; /*!< Specifies the Tamper no erase mode.
                                             This parameter can be a value of @ref RTCEx_Tamper_EraseBackUp_Definitions */

  uint32_t MaskFlag; /*!< Specifies the Tamper Flag masking.
                                             This parameter can be a value of @ref RTCEx_Tamper_MaskFlag_Definitions   */

  uint32_t Filter; /*!< Specifies the TAMP Filter Tamper.
                                             This parameter can be a value of @ref RTCEx_Tamper_Filter_Definitions */

  uint32_t SamplingFrequency; /*!< Specifies the sampling frequency.
                                             This parameter can be a value of @ref RTCEx_Tamper_Sampling_Frequencies_Definitions */

  uint32_t PrechargeDuration; /*!< Specifies the Precharge Duration .
                                             This parameter can be a value of @ref RTCEx_Tamper_Pin_Precharge_Duration_Definitions */

  uint32_t TamperPullUp; /*!< Specifies the Tamper PullUp .
                                             This parameter can be a value of @ref RTCEx_Tamper_Pull_UP_Definitions */

  uint32_t TimeStampOnTamperDetection; /*!< Specifies the TimeStampOnTamperDetection.
                                             This parameter can be a value of @ref RTCEx_Tamper_TimeStampOnTamperDetection_Definitions */
} RTC_TamperTypeDef;
/**
  * @}
  */
# 167 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup RTCEx_Exported_Constants RTC Exported Constants
  * @{
  */

/* ========================================================================== */
/*         ##### Extended RTC Backup registers exported constants #####       */
/* ========================================================================== */

/** @defgroup RTCEx_Backup_Registers_Number_Definitions RTC Backup Registers Number Definitions
  * @{
  */





/**
  * @}
  */

/** @defgroup RTCEx_Backup_Registers_Definitions RTC Backup Registers Definitions
  * @{
  */
# 228 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/* ========================================================================== */
/*                 ##### RTC TimeStamp exported constants #####               */
/* ========================================================================== */

/** @defgroup RTCEx_TimeStamp_Edges_definitions RTC TimeStamp Edges Definitions
  *
  * @{
  */


/**
  * @}
  */

/** @defgroup RTCEx_TimeStamp_Pin_Selection RTC TimeStamp Pin Selection
  * @{
  */

/**
  * @}
  */


/* ========================================================================== */
/*                    ##### RTC Tamper exported constants #####               */
/* ========================================================================== */

/** @defgroup RTCEx_Tamper_Pins_Definitions RTC Tamper Pins Definitions
  * @{
  */
# 273 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_Interrupt_Definitions RTC Tamper Interrupts Definitions
  * @{
  */
# 297 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Internal_Tamper_Pins_Definitions  RTCEx Internal Tamper Pins Definition
  * @{
  */
# 318 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Internal_Tamper_Interrupt_Definitions  RTC Internal Tamper Interrupt
  * @{
  */
# 334 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_Trigger_Definitions RTC Tamper Triggers Definitions
  * @{
  */
# 359 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_EraseBackUp_Definitions RTC Tamper EraseBackUp Definitions
* @{
*/
# 387 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_MaskFlag_Definitions RTC Tamper Mask Flag Definitions
* @{
*/
# 415 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_Filter_Definitions RTC Tamper Filter Definitions
  * @{
  */
# 445 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_Sampling_Frequencies_Definitions RTC Tamper Sampling Frequencies Definitions
  * @{
  */
# 491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_Pin_Precharge_Duration_Definitions RTC Tamper Pin Precharge Duration Definitions
  * @{
  */
# 521 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_TimeStampOnTamperDetection_Definitions RTC Tamper TimeStamp On Tamper Detection Definitions
  * @{
  */
# 537 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_Pull_UP_Definitions RTC Tamper Pull Up Definitions
  * @{
  */
# 553 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_Tamper_DetectionOutput_Definitions RTC Tamper Detection Output Definitions
  * @{
  */





/**
  * @}
  */

/** @defgroup RTC_Tamper_Flags_Definitions RTC Tamper Flags Definitions
  * @{
  */
# 581 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_ActiveTamper_Enable RTCEx_ActiveTamper_Enable Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTCEx_ActiveTamper_Interrupt RTCEx_ActiveTamper_Interrupt Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTCEx_ActiveTamper_Filter RTCEx_ActiveTamper_Filter Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTCEx_ActiveTamper_Async_prescaler RTC Active_Tamper_Asynchronous_Prescaler clock Definitions
  * @{
  */
# 623 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_ActiveTamper_Sel  RTC Active Tamper selection Definition
  * @{
  */
# 638 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/** @defgroup RTCEx_MonotonicCounter_Instance  RTCEx Monotonic Counter Instance Definition
  * @{
  */

/**
  * @}
  */

/** @defgroup RTCEx_Tamper_Registers_Offset  RTC Tamper Registers Offset
  * @{
  */




/**
  * @}
  */

/* ========================================================================== */
/*                   ##### RTC Wake-up exported constants #####               */
/* ========================================================================== */

/** @defgroup RTCEx_Wakeup_Timer_Definitions RTC Wakeup Timer Definitions
  * @{
  */






/**
  * @}
  */

/* ========================================================================== */
/*        ##### Extended RTC Peripheral Control exported constants #####      */
/* ========================================================================== */

/** @defgroup RTCEx_Smooth_calib_period_Definitions RTC Smooth Calib Period Definitions
  * @{
  */






/**
  * @}
  */

/** @defgroup RTCEx_Smooth_calib_Plus_pulses_Definitions RTC Smooth Calib Plus pulses Definitions
  * @{
  */





/**
  * @}
  */

/** @defgroup RTCEx_Calib_Output_selection_Definitions RTC Calib Output Selection Definitions
  * @{
  */


/**
  * @}
  */

/** @defgroup RTCEx_Add_1_Second_Parameter_Definitions RTC Add 1 Second Parameter Definitions
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/

/** @defgroup RTCEx_Exported_Macros RTC Exported Macros
  * @{
  */

/* ========================================================================== */
/*                    ##### RTC Wake-up exported macros #####                 */
/* ========================================================================== */

/**
  * @brief  Enable the RTC WakeUp Timer peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Disable the RTC WakeUp Timer peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Enable the RTC WakeUpTimer interrupt.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC WakeUpTimer interrupt sources to be enabled.
  *         This parameter can be:
  *            @arg @ref RTC_IT_WUT WakeUpTimer interrupt
  * @retval None
  */


/**
  * @brief  Disable the RTC WakeUpTimer interrupt.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC WakeUpTimer interrupt sources to be disabled.
  *         This parameter can be:
  *            @arg @ref RTC_IT_WUT WakeUpTimer interrupt
  * @retval None
  */


/**
  * @brief  Check whether the specified RTC WakeUpTimer interrupt has occurred or not.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC WakeUpTimer interrupt sources to check.
  *         This parameter can be:
  *            @arg RTC_FLAG_WUTF WakeUpTimer interrupt flag
  * @retval None
  */






/**
  * @brief  Check whether the specified RTC Wake Up timer interrupt has been enabled or not.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC Wake Up timer interrupt sources to check.
  *         This parameter can be:
  *            @arg @ref RTC_IT_WUT  WakeUpTimer interrupt
  * @retval None
  */
# 808 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @brief  Get the selected RTC WakeUpTimer's flag status.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC WakeUpTimer Flag sources to check.
  *          This parameter can be:
  *             @arg @ref RTC_FLAG_WUTF
  *             @arg @ref RTC_FLAG_WUTWF
  * @retval Flag status
  */



/**
  * @brief  Clear the RTC Wake Up timer's pending flags.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC WakeUpTimer Flag to clear.
  *         This parameter can be:
  *            @arg @ref RTC_FLAG_WUTF
  * @retval None
  */






/* ========================================================================== */
/*                     ##### RTC Tamper exported macros #####                 */
/* ========================================================================== */

/**
  * @brief  Enable the RTC Tamper1 input detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Disable the RTC Tamper1 input detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Enable the RTC Tamper2 input detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Disable the RTC Tamper2 input detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Enable the RTC Tamper3 input detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Disable the RTC Tamper3 input detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Enable the RTC Tamper interrupt.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC Tamper interrupt sources to be enabled.
  *          This parameter can be any combination of the following values:
  *             @arg  RTC_IT_TAMPALL: All tampers interrupts
  *             @arg  RTC_IT_TAMP1: Tamper1 interrupt
  *             @arg  RTC_IT_TAMP2: Tamper2 interrupt
  *             @arg  RTC_IT_TAMP3: Tamper3 interrupt
  * @retval None
  */






/**
  * @brief  Disable the RTC Tamper interrupt.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC Tamper interrupt sources to be disabled.
  *         This parameter can be any combination of the following values:
  *            @arg  RTC_IT_TAMP: All tampers interrupts
  *            @arg  RTC_IT_TAMP1: Tamper1 interrupt
  *            @arg  RTC_IT_TAMP2: Tamper2 interrupt
  *            @arg  RTC_IT_TAMP3: Tamper3 interrupt
  * @retval None
  */






/**
  * @brief  Check whether the specified RTC Tamper interrupt has been enabled or not.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC Tamper interrupt source to check.
  *         This parameter can be:
  *            @arg  RTC_IT_TAMPALL: All tampers interrupts
  *            @arg  RTC_IT_TAMP1: Tamper1 interrupt
  *            @arg  RTC_IT_TAMP2: Tamper2 interrupt
  *            @arg  RTC_IT_TAMP3: Tamper3 interrupt
  * @retval Flag status
  */






/**
  * @brief  Get the selected RTC Tamper's flag status.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC Tamper Flag is pending or not.
  *          This parameter can be:
  *             @arg RTC_FLAG_TAMP1F: Tamper1 flag
  *             @arg RTC_FLAG_TAMP2F: Tamper2 flag
  *             @arg RTC_FLAG_TAMP3F: Tamper3 flag
  * @retval Flag status
  */






/**
  * @brief  Clear the RTC Tamper's pending flags.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC Tamper Flag to clear.
  *          This parameter can be:
  *             @arg RTC_FLAG_TAMP1F: Tamper1 flag
  *             @arg RTC_FLAG_TAMP2F: Tamper2 flag
  *             @arg RTC_FLAG_TAMP3F: Tamper3 flag
  * @retval None
  */






/**
  * @brief  Get the frequency at which each of the Tamper inputs are sampled.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval Sampling frequency
  *         This value can be:
  *            @arg RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768
  *            @arg RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384
  *            @arg RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192
  *            @arg RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096
  *            @arg RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048
  *            @arg RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512
  *            @arg RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256
  */






/**
  * @brief  Get the number of consecutive samples at the specified level needed
  *         to activate a Tamper event.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval Number of consecutive samples
  *         This value can be:
  *            @arg RTC_TAMPERFILTER_DISABLE
  *            @arg RTC_TAMPERFILTER_2SAMPLE
  *            @arg RTC_TAMPERFILTER_4SAMPLE
  *            @arg RTC_TAMPERFILTER_8SAMPLE
  */






/**
  * @brief  Get the pull-up resistors precharge duration.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval Number of consecutive samples
  *         This value can be:
  *            @arg RTC_TAMPERPRECHARGEDURATION_1RTCCLK
  *            @arg RTC_TAMPERPRECHARGEDURATION_2RTCCLK
  *            @arg RTC_TAMPERPRECHARGEDURATION_4RTCCLK
  *            @arg RTC_TAMPERPRECHARGEDURATION_8RTCCLK
  */






/**
  * @brief  Get the pull-up resistors status.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval Pull-up resistors status
  *         This value can be:
  *            @arg RTC_TAMPER_PULLUP_ENABLE
  *            @arg RTC_TAMPER_PULLUP_DISABLE
  */






/* ========================================================================== */
/*                  ##### RTC TimeStamp exported macros #####                 */
/* ========================================================================== */

/**
  * @brief  Enable the RTC TimeStamp peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Disable the RTC TimeStamp peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Enable the RTC TimeStamp interrupt.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC TimeStamp interrupt source to be enabled.
  *         This parameter can be:
  *            @arg @ref RTC_IT_TS TimeStamp interrupt
  * @retval None
  */


/**
  * @brief  Disable the RTC TimeStamp interrupt.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC TimeStamp interrupt source to be disabled.
  *         This parameter can be:
  *            @arg @ref RTC_IT_TS TimeStamp interrupt
  * @retval None
  */


/**
  * @brief  Check whether the specified RTC TimeStamp interrupt has occurred or not.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC TimeStamp interrupt source to check.
  *         This parameter can be:
  *            @arg @ref RTC_IT_TS TimeStamp interrupt
  * @retval None
  */





/**
  * @brief  Check whether the specified RTC Time Stamp interrupt has been enabled or not.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __INTERRUPT__ specifies the RTC Time Stamp interrupt source to check.
  *         This parameter can be:
  *            @arg @ref RTC_IT_TS TimeStamp interrupt
  * @retval None
  */


/**
  * @brief  Get the selected RTC TimeStamp's flag status.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC TimeStamp Flag is pending or not.
  *         This parameter can be:
  *            @arg RTC_FLAG_TSF
  *            @arg RTC_FLAG_TSOVF
  * @retval Flag status
  */






/**
  * @brief  Clear the RTC Time Stamp's pending flags.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC Alarm Flag sources to clear.
  *          This parameter can be:
  *             @arg RTC_FLAG_TSF
  *             @arg RTC_FLAG_TSOVF
  * @retval None
  */






/**
  * @brief  Enable the RTC internal TimeStamp peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Disable the RTC internal TimeStamp peripheral.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Get the selected RTC Internal Time Stamp's flag status.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC Internal Time Stamp Flag is pending or not.
  *         This parameter can be:
  *            @arg RTC_FLAG_ITSF
  * @retval Flag status
  */






/**
  * @brief  Clear the RTC Internal Time Stamp's pending flags.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC Internal Time Stamp Flag source to clear.
  *          This parameter can be:
  *             @arg RTC_FLAG_ITSF
  * @note   This flag must be cleared together with TSF flag.
  * @retval None
  */






/**
  * @brief  Enable the RTC TimeStamp on Tamper detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Disable the RTC TimeStamp on Tamper detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */






/**
  * @brief  Get activation status of the RTC TimeStamp on Tamper detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval Activation status of TimeStamp on Tamper detection
  *         This value can be:
  *            @arg RTC_TIMESTAMPONTAMPERDETECTION_ENABLE
  *            @arg RTC_TIMESTAMPONTAMPERDETECTION_DISABLE
  */
# 1239 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/* ========================================================================== */
/*         ##### Extended RTC Peripheral Control exported macros #####        */
/* ========================================================================== */

/**
  * @brief  Enable the RTC calibration output.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Disable the calibration output.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Enable the clock reference detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Disable the clock reference detection.
  * @param  __HANDLE__ specifies the RTC handle.
  * @retval None
  */


/**
  * @brief  Get the selected RTC shift operation's flag status.
  * @param  __HANDLE__ specifies the RTC handle.
  * @param  __FLAG__ specifies the RTC shift operation Flag is pending or not.
  *          This parameter can be:
  *             @arg RTC_FLAG_SHPF
  * @retval Flag status
  */






/* ========================================================================== */
/*               ##### RTC Wake-up Interrupt exported macros #####            */
/* ========================================================================== */

/**
  * @brief  Enable interrupt on the RTC WakeUp Timer associated Exti line.
  * @retval None
  */





/**
  * @brief  Disable interrupt on the RTC WakeUp Timer associated Exti line.
  * @retval None
  */






/**
  * @brief  Enable event on the RTC WakeUp Timer associated Exti line.
  * @retval None
  */






/**
  * @brief  Disable event on the RTC WakeUp Timer associated Exti line.
  * @retval None
  */






/**
  * @brief  Enable event on the RTC WakeUp Timer associated D3 Exti line.
  * @retval None
  */


/**
  * @brief  Disable event on the RTC WakeUp Timer associated D3 Exti line.
  * @retval None
  */



/**
  * @brief  Enable interrupt on the RTC WakeUp Timer associated D2 Exti line.
  * @retval None
  */


/**
  * @brief  Disable interrupt on the RTC WakeUp Timer associated D2 Exti line.
  * @retval None
  */


/**
  * @brief  Enable event on the RTC WakeUp Timer associated D2 Exti line.
  * @retval None
  */


/**
  * @brief  Disable event on the RTC WakeUp Timer associated D2 Exti line.
  * @retval None
  */




/**
  * @brief  Enable falling edge trigger on the RTC WakeUp Timer associated Exti line.
  * @retval None
  */


/**
  * @brief  Disable falling edge trigger on the RTC WakeUp Timer associated Exti line.
  * @retval None
  */


/**
  * @brief  Enable rising edge trigger on the RTC WakeUp Timer associated Exti line.
  * @retval None
  */


/**
  * @brief  Disable rising edge trigger on the RTC WakeUp Timer associated Exti line.
  * @retval None
  */


/**
  * @brief  Enable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line.
  * @retval None
  */





/**
  * @brief  Disable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line.
  * This parameter can be:
  * @retval None
  */





/**
  * @brief Check whether the RTC WakeUp Timer associated Exti line interrupt flag is set or not.
  * @retval Line Status.
  */






/**
  * @brief Clear the RTC WakeUp Timer associated Exti line flag.
  * @retval None
  */






/**
  * @brief Check whether the RTC WakeUp Timer associated D3 Exti line interrupt flag is set or not.
  * @retval Line Status
  */


/**
  * @brief Clear the RTC WakeUp Timer associated D3 Exti line flag.
  * @retval None.
  */


/**
  * @brief Generate a Software interrupt on the RTC WakeUp Timer associated Exti line.
  * @retval None.
  */




/**
  * @brief Check whether the RTC WakeUp Timer associated D2 Exti line interrupt flag is set or not.
  * @retval Line Status.
  */


/**
  * @brief Clear the RTC WakeUp Timer associated D2 Exti line flag.
  * @retval None.
  */




/* ========================================================================== */
/*       ##### RTC TimeStamp and Tamper Interrupt exported macros #####       */
/* ========================================================================== */

/**
  * @brief  Enable interrupt on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */






/**
  * @brief  Disable interrupt on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */






/**
  * @brief  Enable event on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */






/**
  * @brief  Disable event on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */







/**
  * @brief  Enable interrupt on the RTC Tamper and Timestamp associated D2 Exti line.
  * @retval None
  */


/**
  * @brief  Disable interrupt on the RTC Tamper and Timestamp associated D2 Exti line.
  * @retval None
  */



/**
  * @brief  Enable event on the RTC Tamper and Timestamp associated D2 Exti line.
  * @retval None
  */



/**
  * @brief  Disable event on the RTC Tamper and Timestamp associated D2 Exti line.
  * @retval None
  */




/**
  * @brief  Enable falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */


/**
  * @brief  Disable falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */


/**
  * @brief  Enable rising edge trigger on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */


/**
  * @brief  Disable rising edge trigger on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */


/**
  * @brief  Enable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */





/**
  * @brief  Disable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
  * @retval None
  */





/**
  * @brief Check whether the RTC Tamper and Timestamp associated Exti line interrupt flag is set or not.
  * @retval Line Status
  */






/**
  * @brief Clear the RTC Tamper and Timestamp associated Exti line flag.
  * @retval None
  */







/**
  * @brief Check whether the RTC Tamper and Timestamp associated D2 Exti line interrupt flag is set or not.
  * @retval Line Status
  */


/**
  * @brief Clear the RTC Tamper and Timestamp associated D2 Exti line flag.
  * @retval None
  */




/**
  * @brief Generate a Software interrupt on the RTC Tamper and Timestamp associated Exti line
  * @retval None
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/

/** @defgroup RTCEx_Exported_Functions RTC Exported Functions
  * @{
  */

/* ========================================================================== */
/*                  ##### RTC TimeStamp exported functions #####              */
/* ========================================================================== */

/* RTC TimeStamp functions ****************************************************/

/** @defgroup RTCEx_Exported_Functions_Group1 Extended RTC TimeStamp functions
  * @{
  */
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_SetInternalTimeStamp(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_DeactivateInternalTimeStamp(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format);
void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc);
void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
/**
  * @}
  */

/* ========================================================================== */
/*                    ##### RTC Tamper exported functions #####               */
/* ========================================================================== */

/* RTC Tamper functions *******************************************************/

/** @defgroup RTCEx_Exported_Functions_Group5 Extended RTC Tamper functions
  * @{
  */
HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, const RTC_TamperTypeDef *sTamper);
HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, const RTC_TamperTypeDef *sTamper);
HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper);
HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
HAL_StatusTypeDef HAL_RTCEx_PollForTamper3Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc);
void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc);
# 1687 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/* ========================================================================== */
/*                   ##### RTC Wake-up exported functions #####               */
/* ========================================================================== */

/* RTC Wake-up functions ******************************************************/

/** @defgroup RTCEx_Exported_Functions_Group2 Extended RTC Wake-up functions
  * @{
  */
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc);
uint32_t HAL_RTCEx_GetWakeUpTimer(const RTC_HandleTypeDef *hrtc);
void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc);
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
/**
  * @}
  */

/* ========================================================================== */
/*         ##### Extended RTC Backup registers exported functions #####       */
/* ========================================================================== */

/* Extended RTC Backup registers functions ************************************/

/** @defgroup RTCEx_Exported_Functions_Group6 Extended RTC Backup register functions
  * @{
  */
void HAL_RTCEx_BKUPWrite(const RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data);
uint32_t HAL_RTCEx_BKUPRead(const RTC_HandleTypeDef *hrtc, uint32_t BackupRegister);
/**
  * @}
  */

/* ========================================================================== */
/*        ##### Extended RTC Peripheral Control exported functions #####      */
/* ========================================================================== */

/* Extended RTC Peripheral Control functions **********************************/

/** @defgroup RTCEx_Exported_Functions_Group3 Extended Peripheral Control functions
  * @{
  */
HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue);
HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS);
HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput);
HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc);




/**
  * @}
  */

/* Extended RTC features functions *******************************************/

/** @defgroup RTCEx_Exported_Functions_Group4 Extended features functions
  * @{
  */

void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup RTCEx_Private_Constants RTC Private Constants
  * @{
  */



/* Masks Definition */



/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup RTCEx_Private_Macros RTC Private Macros
  * @{
  */

/** @defgroup RTCEx_IS_RTC_Definitions Private macros to check input parameters
  * @{
  */

/* ========================================================================== */
/*          ##### Extended RTC Backup registers private macros #####          */
/* ========================================================================== */



/* ========================================================================== */
/*                  ##### RTC TimeStamp private macros #####                  */
/* ========================================================================== */






/* ========================================================================== */
/*                    ##### RTC Wake-up private macros #####                  */
/* ========================================================================== */
# 1821 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/* ========================================================================== */
/*               ##### RTC Smooth Calibration private macros #####            */
/* ========================================================================== */
# 1834 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/* ========================================================================== */
/*          ##### Extended RTC Peripheral Control private macros #####        */
/* ========================================================================== */
# 1846 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/* ========================================================================== */
/*                    ##### RTC Tamper private macros #####                   */
/* ========================================================================== */
# 1909 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc_ex.h"
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 908 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h" 2

/* Exported functions --------------------------------------------------------*/
/** @defgroup RTC_Exported_Functions RTC Exported Functions
  * @{
  */

/** @defgroup RTC_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */
/* Initialization and de-initialization functions  ****************************/
HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc);

void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc);
void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc);

/* Callbacks Register/UnRegister functions  ***********************************/




/**
  * @}
  */

/** @defgroup RTC_Exported_Functions_Group2 RTC Time and Date functions
  * @{
  */
/* RTC Time and Date functions ************************************************/
HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
HAL_StatusTypeDef HAL_RTC_GetTime(const RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
HAL_StatusTypeDef HAL_RTC_GetDate(const RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
/**
  * @}
  */

/** @defgroup RTC_Exported_Functions_Group3 RTC Alarm functions
  * @{
  */
/* RTC Alarm functions ********************************************************/
HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm);
HAL_StatusTypeDef HAL_RTC_GetAlarm(const RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format);
void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc);
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
/**
  * @}
  */

/** @defgroup  RTC_Exported_Functions_Group4 Peripheral Control functions
  * @{
  */
/* Peripheral Control functions ***********************************************/
HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc);
/**
  * @}
  */

/** @defgroup RTC_Exported_Functions_Group5 Peripheral State functions
  * @{
  */
/* Peripheral State functions *************************************************/
HAL_RTCStateTypeDef HAL_RTC_GetState(const RTC_HandleTypeDef *hrtc);
/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup RTC_Private_Constants RTC Private Constants
  * @{
  */
/* Masks Definition */
# 1011 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup RTC_Private_Macros RTC Private Macros
  * @{
  */

/** @defgroup RTC_IS_RTC_Definitions RTC Private macros to check input parameters
  * @{
  */
# 1116 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_rtc.h"
/**
  * @}
  */

/**
  * @}
  */

/* Private functions -------------------------------------------------------------*/
/** @defgroup RTC_Private_Functions RTC Private Functions
  * @{
  */
HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef *hrtc);
HAL_StatusTypeDef RTC_ExitInitMode(RTC_HandleTypeDef *hrtc);
uint8_t RTC_ByteToBcd2(uint8_t Value);
uint8_t RTC_Bcd2ToByte(uint8_t Value);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 435 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_sai.h
  * @author  MCD Application Team
  * @brief   Header file of SAI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup SAI
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SAI_Exported_Types SAI Exported Types
  * @{
  */

/**
  * @brief  HAL State structures definition
  */
typedef enum
{
  HAL_SAI_STATE_RESET = 0x00U,
  HAL_SAI_STATE_READY = 0x01U,
  HAL_SAI_STATE_BUSY = 0x02U,
  HAL_SAI_STATE_BUSY_TX = 0x12U,
  HAL_SAI_STATE_BUSY_RX = 0x22U,
} HAL_SAI_StateTypeDef;

/**
  * @brief  SAI Callback prototype
  */
typedef void (*SAIcallback)(void);

/** @defgroup SAI_PDM_Structure_definition SAI PDM Structure definition
  * @brief  SAI PDM Init structure definition
  * @{
  */
typedef struct
{
  FunctionalState Activation;
  uint32_t MicPairsNbr; /*!< Specifies the number of microphone pairs used.
                                     This parameter must be a number between Min_Data = 1 and Max_Data = 3. */
  uint32_t ClockEnable; /*!< Specifies which clock must be enabled.
                                     This parameter can be a values combination of @ref SAI_PDM_ClockEnable */
} SAI_PdmInitTypeDef;
/**
  * @}
  */

/** @defgroup SAI_Init_Structure_definition SAI Init Structure definition
  * @brief  SAI Init Structure definition
  * @{
  */
typedef struct
{
  uint32_t AudioMode; /*!< Specifies the SAI Block audio Mode.
                                     This parameter can be a value of @ref SAI_Block_Mode */

  uint32_t Synchro; /*!< Specifies SAI Block synchronization
                                     This parameter can be a value of @ref SAI_Block_Synchronization */

  uint32_t SynchroExt; /*!< Specifies SAI external output synchronization, this setup is common
                                     for BlockA and BlockB
                                     This parameter can be a value of @ref SAI_Block_SyncExt
                                     @note If both audio blocks of same SAI are used, this parameter has
                                           to be set to the same value for each audio block */

  uint32_t MckOutput; /*!< Specifies whether master clock output will be generated or not.
                                     This parameter can be a value of @ref SAI_Block_MckOutput
                                     @note This feature is only available on STM32H7xx Rev.B and above */

  uint32_t OutputDrive; /*!< Specifies when SAI Block outputs are driven.
                                     This parameter can be a value of @ref SAI_Block_Output_Drive
                                     @note This value has to be set before enabling the audio block
                                           but after the audio block configuration. */

  uint32_t NoDivider; /*!< Specifies whether master clock will be divided or not.
                                     This parameter can be a value of @ref SAI_Block_NoDivider
                                     @note If bit NODIV in the SAI_xCR1 register is cleared, the frame length
                                           should be aligned to a number equal to a power of 2, from 8 to 256.
                                           If bit NODIV in the SAI_xCR1 register is set, the frame length can
                                           take any of the values from 8 to 256.
                                     @note The NODIV bit is the same as NOMCK bit in STM32H7xx rev.Y */

  uint32_t FIFOThreshold; /*!< Specifies SAI Block FIFO threshold.
                                     This parameter can be a value of @ref SAI_Block_Fifo_Threshold */

  uint32_t AudioFrequency; /*!< Specifies the audio frequency sampling.
                                     This parameter can be a value of @ref SAI_Audio_Frequency */

  uint32_t Mckdiv; /*!< Specifies the master clock divider.
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 63.
                                     @note This parameter is used only if AudioFrequency is set to
                                           SAI_AUDIO_FREQUENCY_MCKDIV otherwise it is internally computed. */

  uint32_t MckOverSampling; /*!< Specifies the master clock oversampling.
                                     This parameter can be a value of @ref SAI_Block_Mck_OverSampling */

  uint32_t MonoStereoMode; /*!< Specifies if the mono or stereo mode is selected.
                                     This parameter can be a value of @ref SAI_Mono_Stereo_Mode */

  uint32_t CompandingMode; /*!< Specifies the companding mode type.
                                     This parameter can be a value of @ref SAI_Block_Companding_Mode */

  uint32_t TriState; /*!< Specifies the companding mode type.
                                     This parameter can be a value of @ref SAI_TRIState_Management */

  SAI_PdmInitTypeDef PdmInit;

  /* This part of the structure is automatically filled if your are using the high level initialisation
     function HAL_SAI_InitProtocol */

  uint32_t Protocol; /*!< Specifies the SAI Block protocol.
                                 This parameter can be a value of @ref SAI_Block_Protocol */

  uint32_t DataSize; /*!< Specifies the SAI Block data size.
                                 This parameter can be a value of @ref SAI_Block_Data_Size */

  uint32_t FirstBit; /*!< Specifies whether data transfers start from MSB or LSB bit.
                                 This parameter can be a value of @ref SAI_Block_MSB_LSB_transmission */

  uint32_t ClockStrobing; /*!< Specifies the SAI Block clock strobing edge sensitivity.
                                 This parameter can be a value of @ref SAI_Block_Clock_Strobing */
} SAI_InitTypeDef;
/**
  * @}
  */

/** @defgroup SAI_Frame_Structure_definition SAI Frame Structure definition
  * @brief  SAI Frame Init structure definition
  * @note   For SPDIF and AC97 protocol, these parameters are not used (set by hardware).
  * @{
  */
typedef struct
{

  uint32_t FrameLength; /*!< Specifies the Frame length, the number of SCK clocks for each audio frame.
                                    This parameter must be a number between Min_Data = 8 and Max_Data = 256.
                                    @note If master clock MCLK_x pin is declared as an output, the frame length
                                          should be aligned to a number equal to power of 2 in order to keep
                                          in an audio frame, an integer number of MCLK pulses by bit Clock. */

  uint32_t ActiveFrameLength; /*!< Specifies the Frame synchronization active level length.
                                    This Parameter specifies the length in number of bit clock (SCK + 1)
                                    of the active level of FS signal in audio frame.
                                    This parameter must be a number between Min_Data = 1 and Max_Data = 128 */

  uint32_t FSDefinition; /*!< Specifies the Frame synchronization definition.
                                    This parameter can be a value of @ref SAI_Block_FS_Definition */

  uint32_t FSPolarity; /*!< Specifies the Frame synchronization Polarity.
                                    This parameter can be a value of @ref SAI_Block_FS_Polarity */

  uint32_t FSOffset; /*!< Specifies the Frame synchronization Offset.
                                    This parameter can be a value of @ref SAI_Block_FS_Offset */

} SAI_FrameInitTypeDef;
/**
  * @}
  */

/** @defgroup SAI_Slot_Structure_definition SAI Slot Structure definition
  * @brief   SAI Block Slot Init Structure definition
  * @note    For SPDIF protocol, these parameters are not used (set by hardware).
  * @note    For AC97 protocol, only SlotActive parameter is used (the others are set by hardware).
  * @{
  */
typedef struct
{
  uint32_t FirstBitOffset; /*!< Specifies the position of first data transfer bit in the slot.
                                 This parameter must be a number between Min_Data = 0 and Max_Data = 24 */

  uint32_t SlotSize; /*!< Specifies the Slot Size.
                                 This parameter can be a value of @ref SAI_Block_Slot_Size */

  uint32_t SlotNumber; /*!< Specifies the number of slot in the audio frame.
                                 This parameter must be a number between Min_Data = 1 and Max_Data = 16 */

  uint32_t SlotActive; /*!< Specifies the slots in audio frame that will be activated.
                                 This parameter can be a value of @ref SAI_Block_Slot_Active */
} SAI_SlotInitTypeDef;
/**
  * @}
  */

/** @defgroup SAI_Handle_Structure_definition SAI Handle Structure definition
  * @brief  SAI handle Structure definition
  * @{
  */
typedef struct __SAI_HandleTypeDef
{
  SAI_Block_TypeDef *Instance;

  SAI_InitTypeDef Init;

  SAI_FrameInitTypeDef FrameInit;

  SAI_SlotInitTypeDef SlotInit;

  uint8_t *pBuffPtr;

  uint16_t XferSize;

  uint16_t XferCount;

  DMA_HandleTypeDef *hdmatx;

  DMA_HandleTypeDef *hdmarx;

  SAIcallback mutecallback;

  void (*InterruptServiceRoutine)(struct __SAI_HandleTypeDef *hsai);

  HAL_LockTypeDef Lock;

  volatile HAL_SAI_StateTypeDef State;

  volatile uint32_t ErrorCode;
# 255 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h"
} SAI_HandleTypeDef;
/**
  * @}
  */
# 281 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup SAI_Exported_Constants SAI Exported Constants
  * @{
  */

/** @defgroup SAI_Error_Code SAI Error Code
  * @{
  */
# 305 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h"
/**
  * @}
  */

/** @defgroup SAI_Block_SyncExt SAI External synchronisation
  * @{
  */



/**
  * @}
  */

/** @defgroup SAI_Block_MckOutput SAI Block Master Clock Output
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Protocol SAI Supported protocol
  * @{
  */





/**
  * @}
  */

/** @defgroup SAI_Protocol_DataSize SAI protocol data size
  * @{
  */




/**
  * @}
  */

/** @defgroup SAI_Audio_Frequency SAI Audio Frequency
  * @{
  */
# 364 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h"
/**
  * @}
  */

/** @defgroup SAI_Block_Mck_OverSampling SAI Block Master Clock OverSampling
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_PDM_ClockEnable SAI PDM Clock Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_Mode SAI Block Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup SAI_Block_Protocol SAI Block Protocol
  * @{
  */



/**
  * @}
  */

/** @defgroup SAI_Block_Data_Size SAI Block Data Size
  * @{
  */






/**
  * @}
  */

/** @defgroup SAI_Block_MSB_LSB_transmission SAI Block MSB LSB transmission
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_Clock_Strobing SAI Block Clock Strobing
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_Synchronization SAI Block Synchronization
  * @{
  */
# 454 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h"
/**
  * @}
  */

/** @defgroup SAI_Block_Output_Drive SAI Block Output Drive
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_NoDivider SAI Block NoDivider
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_FS_Definition SAI Block FS Definition
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_FS_Polarity SAI Block FS Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_FS_Offset SAI Block FS Offset
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_Slot_Size SAI Block Slot Size
  * @{
  */



/**
  * @}
  */

/** @defgroup SAI_Block_Slot_Active SAI Block Slot Active
  * @{
  */
# 534 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h"
/**
  * @}
  */

/** @defgroup SAI_Mono_Stereo_Mode SAI Mono Stereo Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_TRIState_Management SAI TRIState Management
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_Fifo_Threshold SAI Block Fifo Threshold
  * @{
  */





/**
  * @}
  */

/** @defgroup SAI_Block_Companding_Mode SAI Block Companding Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup SAI_Block_Mute_Value SAI Block Mute Value
  * @{
  */


/**
  * @}
  */

/** @defgroup SAI_Block_Interrupts_Definition SAI Block Interrupts Definition
  * @{
  */







/**
  * @}
  */

/** @defgroup SAI_Block_Flags_Definition  SAI Block Flags Definition
  * @{
  */







/**
  * @}
  */

/** @defgroup SAI_Block_Fifo_Status_Level   SAI Block Fifo Status Level
  * @{
  */






/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup SAI_Exported_Macros SAI Exported Macros
  * @brief macros to handle interrupts and specific configurations
  * @{
  */

/** @brief Reset SAI handle state.
  * @param  __HANDLE__ specifies the SAI Handle.
  * @retval None
  */
# 654 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h"
/** @brief  Enable the specified SAI interrupts.
  * @param  __HANDLE__ specifies the SAI Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
  *         This parameter can be one of the following values:
  *            @arg SAI_IT_OVRUDR: Overrun underrun interrupt enable
  *            @arg SAI_IT_MUTEDET: Mute detection interrupt enable
  *            @arg SAI_IT_WCKCFG: Wrong Clock Configuration interrupt enable
  *            @arg SAI_IT_FREQ: FIFO request interrupt enable
  *            @arg SAI_IT_CNRDY: Codec not ready interrupt enable
  *            @arg SAI_IT_AFSDET: Anticipated frame synchronization detection interrupt enable
  *            @arg SAI_IT_LFSDET: Late frame synchronization detection interrupt enable
  * @retval None
  */


/** @brief  Disable the specified SAI interrupts.
  * @param  __HANDLE__ specifies the SAI Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
  *         This parameter can be one of the following values:
  *            @arg SAI_IT_OVRUDR: Overrun underrun interrupt enable
  *            @arg SAI_IT_MUTEDET: Mute detection interrupt enable
  *            @arg SAI_IT_WCKCFG: Wrong Clock Configuration interrupt enable
  *            @arg SAI_IT_FREQ: FIFO request interrupt enable
  *            @arg SAI_IT_CNRDY: Codec not ready interrupt enable
  *            @arg SAI_IT_AFSDET: Anticipated frame synchronization detection interrupt enable
  *            @arg SAI_IT_LFSDET: Late frame synchronization detection interrupt enable
  * @retval None
  */


/** @brief  Check whether the specified SAI interrupt source is enabled or not.
  * @param  __HANDLE__ specifies the SAI Handle.
  * @param  __INTERRUPT__ specifies the SAI interrupt source to check.
  *         This parameter can be one of the following values:
  *            @arg SAI_IT_OVRUDR: Overrun underrun interrupt enable
  *            @arg SAI_IT_MUTEDET: Mute detection interrupt enable
  *            @arg SAI_IT_WCKCFG: Wrong Clock Configuration interrupt enable
  *            @arg SAI_IT_FREQ: FIFO request interrupt enable
  *            @arg SAI_IT_CNRDY: Codec not ready interrupt enable
  *            @arg SAI_IT_AFSDET: Anticipated frame synchronization detection interrupt enable
  *            @arg SAI_IT_LFSDET: Late frame synchronization detection interrupt enable
  * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  */


/** @brief  Check whether the specified SAI flag is set or not.
  * @param  __HANDLE__ specifies the SAI Handle.
  * @param  __FLAG__ specifies the flag to check.
  *         This parameter can be one of the following values:
  *            @arg SAI_FLAG_OVRUDR: Overrun underrun flag.
  *            @arg SAI_FLAG_MUTEDET: Mute detection flag.
  *            @arg SAI_FLAG_WCKCFG: Wrong Clock Configuration flag.
  *            @arg SAI_FLAG_FREQ: FIFO request flag.
  *            @arg SAI_FLAG_CNRDY: Codec not ready flag.
  *            @arg SAI_FLAG_AFSDET: Anticipated frame synchronization detection flag.
  *            @arg SAI_FLAG_LFSDET: Late frame synchronization detection flag.
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */


/** @brief  Clear the specified SAI pending flag.
  * @param  __HANDLE__ specifies the SAI Handle.
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be any combination of the following values:
  *            @arg SAI_FLAG_OVRUDR: Clear Overrun underrun
  *            @arg SAI_FLAG_MUTEDET: Clear Mute detection
  *            @arg SAI_FLAG_WCKCFG: Clear Wrong Clock Configuration
  *            @arg SAI_FLAG_FREQ: Clear FIFO request
  *            @arg SAI_FLAG_CNRDY: Clear Codec not ready
  *            @arg SAI_FLAG_AFSDET: Clear Anticipated frame synchronization detection
  *            @arg SAI_FLAG_LFSDET: Clear Late frame synchronization detection
  *
  * @retval None
  */


/** @brief  Enable SAI.
  * @param  __HANDLE__ specifies the SAI Handle.
  * @retval None
  */


/** @brief  Disable SAI.
  * @param  __HANDLE__ specifies the SAI Handle.
  * @retval None
  */


/**
  * @}
  */

/* Include SAI HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_sai_ex.h
  * @author  MCD Application Team
  * @brief   Header file of SAI HAL extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup SAIEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SAIEx_Exported_Types SAIEx Exported Types
  * @{
  */

/**
  * @brief  PDM microphone delay structure definition
  */
typedef struct
{
  uint32_t MicPair; /*!< Specifies which pair of microphones is selected.
                             This parameter must be a number between Min_Data = 1 and Max_Data = 3. */

  uint32_t LeftDelay; /*!< Specifies the delay in PDM clock unit to apply on left microphone.
                             This parameter must be a number between Min_Data = 0 and Max_Data = 7. */

  uint32_t RightDelay; /*!< Specifies the delay in PDM clock unit to apply on right microphone.
                             This parameter must be a number between Min_Data = 0 and Max_Data = 7. */
} SAIEx_PdmMicDelayParamTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/* Exported macros -----------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
/** @addtogroup SAIEx_Exported_Functions SAIEx Extended Exported Functions
  * @{
  */

/** @addtogroup SAIEx_Exported_Functions_Group1 Peripheral Control functions
  * @{
  */
HAL_StatusTypeDef HAL_SAIEx_ConfigPdmMicDelay(const SAI_HandleTypeDef *hsai,
                                              const SAIEx_PdmMicDelayParamTypeDef *pdmMicDelay);
/**
  * @}
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @addtogroup SAIEx_Private_Macros SAIEx Extended Private Macros
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 748 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SAI_Exported_Functions
  * @{
  */

/* Initialization/de-initialization functions  ********************************/
/** @addtogroup SAI_Exported_Functions_Group1
  * @{
  */
HAL_StatusTypeDef HAL_SAI_InitProtocol(SAI_HandleTypeDef *hsai, uint32_t protocol, uint32_t datasize, uint32_t nbslot);
HAL_StatusTypeDef HAL_SAI_Init(SAI_HandleTypeDef *hsai);
HAL_StatusTypeDef HAL_SAI_DeInit(SAI_HandleTypeDef *hsai);
void HAL_SAI_MspInit(SAI_HandleTypeDef *hsai);
void HAL_SAI_MspDeInit(SAI_HandleTypeDef *hsai);
# 772 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h"
/**
  * @}
  */

/* I/O operation functions  ***************************************************/
/** @addtogroup SAI_Exported_Functions_Group2
  * @{
  */
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_SAI_Transmit(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SAI_Receive(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size, uint32_t Timeout);

/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_SAI_Transmit_IT(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SAI_Receive_IT(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size);

/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_SAI_Transmit_DMA(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SAI_Receive_DMA(SAI_HandleTypeDef *hsai, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SAI_DMAPause(SAI_HandleTypeDef *hsai);
HAL_StatusTypeDef HAL_SAI_DMAResume(SAI_HandleTypeDef *hsai);
HAL_StatusTypeDef HAL_SAI_DMAStop(SAI_HandleTypeDef *hsai);

/* Abort function */
HAL_StatusTypeDef HAL_SAI_Abort(SAI_HandleTypeDef *hsai);

/* Mute management */
HAL_StatusTypeDef HAL_SAI_EnableTxMuteMode(SAI_HandleTypeDef *hsai, uint16_t val);
HAL_StatusTypeDef HAL_SAI_DisableTxMuteMode(SAI_HandleTypeDef *hsai);
HAL_StatusTypeDef HAL_SAI_EnableRxMuteMode(SAI_HandleTypeDef *hsai, SAIcallback callback, uint16_t counter);
HAL_StatusTypeDef HAL_SAI_DisableRxMuteMode(SAI_HandleTypeDef *hsai);

/* SAI IRQHandler and Callbacks used in non blocking modes (Interrupt and DMA) */
void HAL_SAI_IRQHandler(SAI_HandleTypeDef *hsai);
void HAL_SAI_TxHalfCpltCallback(SAI_HandleTypeDef *hsai);
void HAL_SAI_TxCpltCallback(SAI_HandleTypeDef *hsai);
void HAL_SAI_RxHalfCpltCallback(SAI_HandleTypeDef *hsai);
void HAL_SAI_RxCpltCallback(SAI_HandleTypeDef *hsai);
void HAL_SAI_ErrorCallback(SAI_HandleTypeDef *hsai);
/**
  * @}
  */

/** @addtogroup SAI_Exported_Functions_Group3
  * @{
  */
/* Peripheral State functions  ************************************************/
HAL_SAI_StateTypeDef HAL_SAI_GetState(const SAI_HandleTypeDef *hsai);
uint32_t HAL_SAI_GetError(const SAI_HandleTypeDef *hsai);
/**
  * @}
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup SAI_Private_Macros SAI Private Macros
  * @{
  */
# 959 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sai.h"
/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup SAI_Private_Functions SAI Private Functions
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 439 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_sd.h
  * @author  MCD Application Team
  * @brief   Header file of SD HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_sdmmc.h
  * @author  MCD Application Team
  * @brief   Header file of SDMMC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_delayblock.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_delayblock.h
  * @author  MCD Application Team
  * @brief   Header file of Delay Block module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h" 2


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */


/** @defgroup SD SD
  * @brief SD HAL module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SD_Exported_Types SD Exported Types
  * @{
  */

/** @defgroup SD_Exported_Types_Group1 SD State enumeration structure
  * @{
  */
typedef enum
{
  HAL_SD_STATE_RESET = ((uint32_t)0x00000000U),
  HAL_SD_STATE_READY = ((uint32_t)0x00000001U),
  HAL_SD_STATE_TIMEOUT = ((uint32_t)0x00000002U),
  HAL_SD_STATE_BUSY = ((uint32_t)0x00000003U),
  HAL_SD_STATE_PROGRAMMING = ((uint32_t)0x00000004U),
  HAL_SD_STATE_RECEIVING = ((uint32_t)0x00000005U),
  HAL_SD_STATE_TRANSFER = ((uint32_t)0x00000006U),
  HAL_SD_STATE_ERROR = ((uint32_t)0x0000000FU)
} HAL_SD_StateTypeDef;
/**
  * @}
  */

/** @defgroup SD_Exported_Types_Group2 SD Card State enumeration structure
  * @{
  */
typedef uint32_t HAL_SD_CardStateTypeDef;
# 80 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
/**
  * @}
  */

/** @defgroup SD_Exported_Types_Group3 SD Handle Structure definition
  * @{
  */



/**
  * @brief  SD Card Information Structure definition
  */
typedef struct
{
  uint32_t CardType;

  uint32_t CardVersion;

  uint32_t Class;

  uint32_t RelCardAdd;

  uint32_t BlockNbr;

  uint32_t BlockSize;

  uint32_t LogBlockNbr;

  uint32_t LogBlockSize;

  uint32_t CardSpeed;

} HAL_SD_CardInfoTypeDef;

/**
  * @brief  SD handle Structure definition
  */



typedef struct

{
  SDMMC_TypeDef *Instance;

  SDMMC_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  const uint8_t *pTxBuffPtr;

  uint32_t TxXferSize;

  uint8_t *pRxBuffPtr;

  uint32_t RxXferSize;

  volatile uint32_t Context;

  volatile HAL_SD_StateTypeDef State;

  volatile uint32_t ErrorCode;

  HAL_SD_CardInfoTypeDef SdCard;

  uint32_t CSD[4];

  uint32_t CID[4];
# 166 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
} SD_HandleTypeDef;

/**
  * @}
  */

/** @defgroup SD_Exported_Types_Group4 Card Specific Data: CSD Register
  * @{
  */
typedef struct
{
  volatile uint8_t CSDStruct;
  volatile uint8_t SysSpecVersion;
  volatile uint8_t Reserved1;
  volatile uint8_t TAAC;
  volatile uint8_t NSAC;
  volatile uint8_t MaxBusClkFrec;
  volatile uint16_t CardComdClasses;
  volatile uint8_t RdBlockLen;
  volatile uint8_t PartBlockRead;
  volatile uint8_t WrBlockMisalign;
  volatile uint8_t RdBlockMisalign;
  volatile uint8_t DSRImpl;
  volatile uint8_t Reserved2;
  volatile uint32_t DeviceSize;
  volatile uint8_t MaxRdCurrentVDDMin;
  volatile uint8_t MaxRdCurrentVDDMax;
  volatile uint8_t MaxWrCurrentVDDMin;
  volatile uint8_t MaxWrCurrentVDDMax;
  volatile uint8_t DeviceSizeMul;
  volatile uint8_t EraseGrSize;
  volatile uint8_t EraseGrMul;
  volatile uint8_t WrProtectGrSize;
  volatile uint8_t WrProtectGrEnable;
  volatile uint8_t ManDeflECC;
  volatile uint8_t WrSpeedFact;
  volatile uint8_t MaxWrBlockLen;
  volatile uint8_t WriteBlockPaPartial;
  volatile uint8_t Reserved3;
  volatile uint8_t ContentProtectAppli;
  volatile uint8_t FileFormatGroup;
  volatile uint8_t CopyFlag;
  volatile uint8_t PermWrProtect;
  volatile uint8_t TempWrProtect;
  volatile uint8_t FileFormat;
  volatile uint8_t ECC;
  volatile uint8_t CSD_CRC;
  volatile uint8_t Reserved4;
} HAL_SD_CardCSDTypeDef;
/**
  * @}
  */

/** @defgroup SD_Exported_Types_Group5 Card Identification Data: CID Register
  * @{
  */
typedef struct
{
  volatile uint8_t ManufacturerID;
  volatile uint16_t OEM_AppliID;
  volatile uint32_t ProdName1;
  volatile uint8_t ProdName2;
  volatile uint8_t ProdRev;
  volatile uint32_t ProdSN;
  volatile uint8_t Reserved1;
  volatile uint16_t ManufactDate;
  volatile uint8_t CID_CRC;
  volatile uint8_t Reserved2;

} HAL_SD_CardCIDTypeDef;
/**
  * @}
  */

/** @defgroup SD_Exported_Types_Group6 SD Card Status returned by ACMD13
  * @{
  */
typedef struct
{
  volatile uint8_t DataBusWidth;
  volatile uint8_t SecuredMode;
  volatile uint16_t CardType;
  volatile uint32_t ProtectedAreaSize;
  volatile uint8_t SpeedClass;
  volatile uint8_t PerformanceMove;
  volatile uint8_t AllocationUnitSize;
  volatile uint16_t EraseSize;
  volatile uint8_t EraseTimeout;
  volatile uint8_t EraseOffset;
  volatile uint8_t UhsSpeedGrade;
  volatile uint8_t UhsAllocationUnitSize;
  volatile uint8_t VideoSpeedClass;
} HAL_SD_CardStatusTypeDef;
/**
  * @}
  */
# 296 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup SD_Exported_Constants SD Exported Constants
  * @{
  */



/** @defgroup SD_Exported_Constansts_Group1 SD Error status enumeration Structure definition
  * @{
  */
# 319 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
/*!< number of transferred bytes does not match the block length  */




/*!< command or if there was an attempt to access a locked card   */
# 336 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
/*!< of erase sequence command was received                       */
# 350 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
/**
  * @}
  */

/** @defgroup SD_Exported_Constansts_Group2 SD context enumeration
  * @{
  */
# 365 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
/**
  * @}
  */

/** @defgroup SD_Exported_Constansts_Group3 SD Supported Memory Cards
  * @{
  */
# 381 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
/**
  * @}
  */

/** @defgroup SD_Exported_Constansts_Group4 SD Supported Version
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup SD_Exported_macros SD Exported Macros
  *  @brief macros to handle interrupts and specific clock configurations
  * @{
  */
/** @brief Reset SD handle state.
  * @param  __HANDLE__ SD Handle.
  * @retval None
  */
# 417 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
/**
  * @brief  Enable the SD device interrupt.
  * @param  __HANDLE__ SD Handle.
  * @param  __INTERRUPT__ specifies the SDMMC interrupt sources to be enabled.
  *         This parameter can be one or a combination of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SDIO interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval None
  */


/**
  * @brief  Disable the SD device interrupt.
  * @param  __HANDLE__ SD Handle.
  * @param  __INTERRUPT__ specifies the SDMMC interrupt sources to be disabled.
  *          This parameter can be one or a combination of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SDIO interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval None
  */


/**
  * @brief  Check whether the specified SD flag is set or not.
  * @param  __HANDLE__ SD Handle.
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be one of the following values:
  *            @arg SDMMC_FLAG_CCRCFAIL:   Command response received (CRC check failed)
  *            @arg SDMMC_FLAG_DCRCFAIL:   Data block sent/received (CRC check failed)
  *            @arg SDMMC_FLAG_CTIMEOUT:   Command response timeout
  *            @arg SDMMC_FLAG_DTIMEOUT:   Data timeout
  *            @arg SDMMC_FLAG_TXUNDERR:   Transmit FIFO underrun error
  *            @arg SDMMC_FLAG_RXOVERR:    Received FIFO overrun error
  *            @arg SDMMC_FLAG_CMDREND:    Command response received (CRC check passed)
  *            @arg SDMMC_FLAG_CMDSENT:    Command sent (no response required)
  *            @arg SDMMC_FLAG_DATAEND:    Data end (data counter, DATACOUNT, is zero)
  *            @arg SDMMC_FLAG_DHOLD:      Data transfer Hold
  *            @arg SDMMC_FLAG_DBCKEND:    Data block sent/received (CRC check passed)
  *            @arg SDMMC_FLAG_DABORT:     Data transfer aborted by CMD12
  *            @arg SDMMC_FLAG_DPSMACT:    Data path state machine active
  *            @arg SDMMC_FLAG_CPSMACT:    Command path state machine active
  *            @arg SDMMC_FLAG_TXFIFOHE:   Transmit FIFO Half Empty
  *            @arg SDMMC_FLAG_RXFIFOHF:   Receive FIFO Half Full
  *            @arg SDMMC_FLAG_TXFIFOF:    Transmit FIFO full
  *            @arg SDMMC_FLAG_RXFIFOF:    Receive FIFO full
  *            @arg SDMMC_FLAG_TXFIFOE:    Transmit FIFO empty
  *            @arg SDMMC_FLAG_RXFIFOE:    Receive FIFO empty
  *            @arg SDMMC_FLAG_BUSYD0:     Inverted value of SDMMC_D0 line (Busy)
  *            @arg SDMMC_FLAG_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected
  *            @arg SDMMC_FLAG_SDIOIT:     SDIO interrupt received
  *            @arg SDMMC_FLAG_ACKFAIL:    Boot Acknowledgment received
  *            @arg SDMMC_FLAG_ACKTIMEOUT: Boot Acknowledgment timeout
  *            @arg SDMMC_FLAG_VSWEND:     Voltage switch critical timing section completion
  *            @arg SDMMC_FLAG_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure
  *            @arg SDMMC_FLAG_IDMATE:     IDMA transfer error
  *            @arg SDMMC_FLAG_IDMABTC:    IDMA buffer transfer complete
  * @retval The new state of SD FLAG (SET or RESET).
  */


/**
  * @brief  Clear the SD's pending flags.
  * @param  __HANDLE__ SD Handle.
  * @param  __FLAG__ specifies the flag to clear.
  *          This parameter can be one or a combination of the following values:
  *            @arg SDMMC_FLAG_CCRCFAIL:   Command response received (CRC check failed)
  *            @arg SDMMC_FLAG_DCRCFAIL:   Data block sent/received (CRC check failed)
  *            @arg SDMMC_FLAG_CTIMEOUT:   Command response timeout
  *            @arg SDMMC_FLAG_DTIMEOUT:   Data timeout
  *            @arg SDMMC_FLAG_TXUNDERR:   Transmit FIFO underrun error
  *            @arg SDMMC_FLAG_RXOVERR:    Received FIFO overrun error
  *            @arg SDMMC_FLAG_CMDREND:    Command response received (CRC check passed)
  *            @arg SDMMC_FLAG_CMDSENT:    Command sent (no response required)
  *            @arg SDMMC_FLAG_DATAEND:    Data end (data counter, DATACOUNT, is zero)
  *            @arg SDMMC_FLAG_DHOLD:      Data transfer Hold
  *            @arg SDMMC_FLAG_DBCKEND:    Data block sent/received (CRC check passed)
  *            @arg SDMMC_FLAG_DABORT:     Data transfer aborted by CMD12
  *            @arg SDMMC_FLAG_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected
  *            @arg SDMMC_FLAG_SDIOIT:     SDIO interrupt received
  *            @arg SDMMC_FLAG_ACKFAIL:    Boot Acknowledgment received
  *            @arg SDMMC_FLAG_ACKTIMEOUT: Boot Acknowledgment timeout
  *            @arg SDMMC_FLAG_VSWEND:     Voltage switch critical timing section completion
  *            @arg SDMMC_FLAG_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure
  *            @arg SDMMC_FLAG_IDMATE:     IDMA transfer error
  *            @arg SDMMC_FLAG_IDMABTC:    IDMA buffer transfer complete
  * @retval None
  */


/**
  * @brief  Check whether the specified SD interrupt has occurred or not.
  * @param  __HANDLE__ SD Handle.
  * @param  __INTERRUPT__ specifies the SDMMC interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_TXFIFOHE:   Transmit FIFO Half Empty interrupt
  *            @arg SDMMC_IT_RXFIFOHF:   Receive FIFO Half Full interrupt
  *            @arg SDMMC_IT_RXFIFOF:    Receive FIFO full interrupt
  *            @arg SDMMC_IT_TXFIFOE:    Transmit FIFO empty interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SDIO interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval The new state of SD IT (SET or RESET).
  */


/**
  * @brief  Clear the SD's interrupt pending bits.
  * @param  __HANDLE__ SD Handle.
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
  *          This parameter can be one or a combination of the following values:
  *            @arg SDMMC_IT_CCRCFAIL:   Command response received (CRC check failed) interrupt
  *            @arg SDMMC_IT_DCRCFAIL:   Data block sent/received (CRC check failed) interrupt
  *            @arg SDMMC_IT_CTIMEOUT:   Command response timeout interrupt
  *            @arg SDMMC_IT_DTIMEOUT:   Data timeout interrupt
  *            @arg SDMMC_IT_TXUNDERR:   Transmit FIFO underrun error interrupt
  *            @arg SDMMC_IT_RXOVERR:    Received FIFO overrun error interrupt
  *            @arg SDMMC_IT_CMDREND:    Command response received (CRC check passed) interrupt
  *            @arg SDMMC_IT_CMDSENT:    Command sent (no response required) interrupt
  *            @arg SDMMC_IT_DATAEND:    Data end (data counter, DATACOUNT, is zero) interrupt
  *            @arg SDMMC_IT_DHOLD:      Data transfer Hold interrupt
  *            @arg SDMMC_IT_DBCKEND:    Data block sent/received (CRC check passed) interrupt
  *            @arg SDMMC_IT_DABORT:     Data transfer aborted by CMD12 interrupt
  *            @arg SDMMC_IT_BUSYD0END:  End of SDMMC_D0 Busy following a CMD response detected interrupt
  *            @arg SDMMC_IT_SDIOIT:     SDIO interrupt received interrupt
  *            @arg SDMMC_IT_ACKFAIL:    Boot Acknowledgment received interrupt
  *            @arg SDMMC_IT_ACKTIMEOUT: Boot Acknowledgment timeout interrupt
  *            @arg SDMMC_IT_VSWEND:     Voltage switch critical timing section completion interrupt
  *            @arg SDMMC_IT_CKSTOP:     SDMMC_CK stopped in Voltage switch procedure interrupt
  *            @arg SDMMC_IT_IDMABTC:    IDMA buffer transfer complete interrupt
  * @retval None
  */


/**
  * @}
  */

/* Include SD HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_sd_ex.h
  * @author  MCD Application Team
  * @brief   Header file of SD HAL extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */


/** @addtogroup SDEx
  * @brief SD HAL extended module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SDEx_Exported_Types SDEx Exported Types
  * @{
  */

/** @defgroup SDEx_Exported_Types_Group1 SD Card Internal DMA Buffer structure
  * @{
  */
typedef enum
{
  SD_DMA_BUFFER0 = 0x00U,
  SD_DMA_BUFFER1 = 0x01U,

} HAL_SDEx_DMABuffer_MemoryTypeDef;

/**
  * @}
  */
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup SDEx_Exported_Functions SDEx Exported Functions
  * @{
  */

/** @defgroup SDEx_Exported_Functions_Group1 MultiBuffer functions
  * @{
  */

HAL_StatusTypeDef HAL_SDEx_ConfigDMAMultiBuffer(SD_HandleTypeDef *hsd, uint32_t *pDataBuffer0, uint32_t *pDataBuffer1,
                                                uint32_t BufferSize);
HAL_StatusTypeDef HAL_SDEx_ReadBlocksDMAMultiBuffer(SD_HandleTypeDef *hsd, uint32_t BlockAdd, uint32_t NumberOfBlocks);
HAL_StatusTypeDef HAL_SDEx_WriteBlocksDMAMultiBuffer(SD_HandleTypeDef *hsd, uint32_t BlockAdd, uint32_t NumberOfBlocks);
HAL_StatusTypeDef HAL_SDEx_ChangeDMABuffer(SD_HandleTypeDef *hsd, HAL_SDEx_DMABuffer_MemoryTypeDef Buffer,
                                           uint32_t *pDataBuffer);

void HAL_SDEx_Read_DMADoubleBuf0CpltCallback(SD_HandleTypeDef *hsd);
void HAL_SDEx_Read_DMADoubleBuf1CpltCallback(SD_HandleTypeDef *hsd);
void HAL_SDEx_Write_DMADoubleBuf0CpltCallback(SD_HandleTypeDef *hsd);
void HAL_SDEx_Write_DMADoubleBuf1CpltCallback(SD_HandleTypeDef *hsd);

/**
  * @}
  */

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/* Private defines -----------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/* Private functions prototypes ----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/**
  * @}
  */


/**
  * @}
  */

}
# 614 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h" 2

/* Exported functions --------------------------------------------------------*/
/** @defgroup SD_Exported_Functions SD Exported Functions
  * @{
  */

/** @defgroup SD_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */
HAL_StatusTypeDef HAL_SD_Init(SD_HandleTypeDef *hsd);
HAL_StatusTypeDef HAL_SD_InitCard(SD_HandleTypeDef *hsd);
HAL_StatusTypeDef HAL_SD_DeInit(SD_HandleTypeDef *hsd);
void HAL_SD_MspInit(SD_HandleTypeDef *hsd);
void HAL_SD_MspDeInit(SD_HandleTypeDef *hsd);
/**
  * @}
  */

/** @defgroup SD_Exported_Functions_Group2 Input and Output operation functions
  * @{
  */
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_SD_ReadBlocks(SD_HandleTypeDef *hsd, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks,
                                    uint32_t Timeout);
HAL_StatusTypeDef HAL_SD_WriteBlocks(SD_HandleTypeDef *hsd, const uint8_t *pData, uint32_t BlockAdd,
                                     uint32_t NumberOfBlocks, uint32_t Timeout);
HAL_StatusTypeDef HAL_SD_Erase(SD_HandleTypeDef *hsd, uint32_t BlockStartAdd, uint32_t BlockEndAdd);
/* Non-Blocking mode: IT */
HAL_StatusTypeDef HAL_SD_ReadBlocks_IT(SD_HandleTypeDef *hsd, uint8_t *pData, uint32_t BlockAdd,
                                       uint32_t NumberOfBlocks);
HAL_StatusTypeDef HAL_SD_WriteBlocks_IT(SD_HandleTypeDef *hsd, const uint8_t *pData, uint32_t BlockAdd,
                                        uint32_t NumberOfBlocks);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_SD_ReadBlocks_DMA(SD_HandleTypeDef *hsd, uint8_t *pData, uint32_t BlockAdd,
                                        uint32_t NumberOfBlocks);
HAL_StatusTypeDef HAL_SD_WriteBlocks_DMA(SD_HandleTypeDef *hsd, const uint8_t *pData, uint32_t BlockAdd,
                                         uint32_t NumberOfBlocks);

void HAL_SD_IRQHandler(SD_HandleTypeDef *hsd);

/* Callback in non blocking modes (DMA) */
void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd);
void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd);
void HAL_SD_ErrorCallback(SD_HandleTypeDef *hsd);
void HAL_SD_AbortCallback(SD_HandleTypeDef *hsd);
# 677 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sd.h"
/**
  * @}
  */

/** @defgroup SD_Exported_Functions_Group3 Peripheral Control functions
  * @{
  */
HAL_StatusTypeDef HAL_SD_ConfigWideBusOperation(SD_HandleTypeDef *hsd, uint32_t WideMode);
HAL_StatusTypeDef HAL_SD_ConfigSpeedBusOperation(SD_HandleTypeDef *hsd, uint32_t SpeedMode);
/**
  * @}
  */

/** @defgroup SD_Exported_Functions_Group4 SD card related functions
  * @{
  */
HAL_SD_CardStateTypeDef HAL_SD_GetCardState(SD_HandleTypeDef *hsd);
HAL_StatusTypeDef HAL_SD_GetCardCID(const SD_HandleTypeDef *hsd, HAL_SD_CardCIDTypeDef *pCID);
HAL_StatusTypeDef HAL_SD_GetCardCSD(SD_HandleTypeDef *hsd, HAL_SD_CardCSDTypeDef *pCSD);
HAL_StatusTypeDef HAL_SD_GetCardStatus(SD_HandleTypeDef *hsd, HAL_SD_CardStatusTypeDef *pStatus);
HAL_StatusTypeDef HAL_SD_GetCardInfo(const SD_HandleTypeDef *hsd, HAL_SD_CardInfoTypeDef *pCardInfo);
/**
  * @}
  */

/** @defgroup SD_Exported_Functions_Group5 Peripheral State and Errors functions
  * @{
  */
HAL_SD_StateTypeDef HAL_SD_GetState(const SD_HandleTypeDef *hsd);
uint32_t HAL_SD_GetError(const SD_HandleTypeDef *hsd);
/**
  * @}
  */

/** @defgroup SD_Exported_Functions_Group6 Perioheral Abort management
  * @{
  */
HAL_StatusTypeDef HAL_SD_Abort(SD_HandleTypeDef *hsd);
HAL_StatusTypeDef HAL_SD_Abort_IT(SD_HandleTypeDef *hsd);
/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup SD_Private_Types SD Private Types
  * @{
  */

/**
  * @}
  */

/* Private defines -----------------------------------------------------------*/
/** @defgroup SD_Private_Defines SD Private Defines
  * @{
  */

/**
  * @}
  */

/* Private variables ---------------------------------------------------------*/
/** @defgroup SD_Private_Variables SD Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup SD_Private_Constants SD Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup SD_Private_Macros SD Private Macros
  * @{
  */

/**
  * @}
  */

/* Private functions prototypes ----------------------------------------------*/
/** @defgroup SD_Private_Functions_Prototypes SD Private Functions Prototypes
  * @{
  */

/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup SD_Private_Functions SD Private Functions
  * @{
  */

/**
  * @}
  */


/**
  * @}
  */

/**
  * @}
  */


/**
  * @}
  */


}
# 443 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdio.h" 1
/**
  **********************************************************************************************************************
  * @file    stm32h7xx_hal_sdio.h
  * @author  MCD Application Team
  * @brief   Header file of SDIO HAL module.
  **********************************************************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  **********************************************************************************************************************
  */

/* Define to prevent recursive inclusion -----------------------------------------------------------------------------*/




extern "C" {


/* Includes ----------------------------------------------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_sdmmc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_sdmmc.h
  * @author  MCD Application Team
  * @brief   Header file of SDMMC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdio.h" 2

/** @addtogroup STM32U5xx_HAL_Driver
  * @{
  */


/** @defgroup SDIO SDIO
  * @brief SDIO HAL module driver
  * @{
  */

/* Exported types ----------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Exported_Types SDIO Exported Types
  * @{
  */

/** @defgroup SDIO_Exported_Types_Group1 SDIO State enumeration structure
  * @{

  */
typedef enum
{
  HAL_SDIO_STATE_RESET = 0x00U,
  HAL_SDIO_STATE_READY = 0x01U,
  HAL_SDIO_STATE_BUSY = 0x02U,
} HAL_SDIO_StateTypeDef;

/**
  * @}
  */

/** @defgroup SDIO_Exported_Types_Group2 SDIO Handle and Structure definition
  * @{
  */
/**
  * @brief  SDIO Card Common Control Register Structure definition
  */
typedef struct
{
  uint8_t sdio_revision;
  uint8_t cccr_revision;
  uint8_t sd_spec_revision;
  uint8_t bus_width_8Bit;
  uint32_t card_capability;
  uint32_t commonCISPointer;
} HAL_SDIO_CCCR_TypeDef;

/**
  * @brief sdio card FBR register(Function Basic Register)
  */
typedef struct
{
  uint8_t flags;
  uint8_t ioStdFunctionCode;
  uint8_t ioExtFunctionCode;
  uint32_t ioPointerToCIS;
  uint32_t ioPointerToCSA;
} HAL_SDIO_FBR_t;

/**
  * @brief  SDIO CMD52 Structure definition
  */
typedef struct
{
  uint32_t Reg_Addr;
  uint8_t ReadAfterWrite;
  uint8_t IOFunctionNbr;
} HAL_SDIO_DirectCmd_TypeDef;

/**
  * @brief  SDIO CMD53 Structure definition
  */
typedef struct
{
  uint32_t Reg_Addr;
  uint32_t OpCode;
  uint32_t Block_Mode;
  uint32_t IOFunctionNbr;
} HAL_SDIO_ExtendedCmd_TypeDef;




/**
  * @brief  SDIO handle Structure definition
  */
typedef struct __SDIO_HandleTypeDef
{
  SDMMC_TypeDef *Instance;

  SDMMC_InitTypeDef Init;

  HAL_LockTypeDef Lock;

  uint8_t *pTxBuffPtr;

  uint32_t TxXferSize;

  uint8_t *pRxBuffPtr;

  uint32_t RxXferSize;

  uint32_t remaining_data;

  uint32_t next_data_addr;

  volatile uint32_t next_reg_addr;

  uint16_t block_size;

  volatile uint32_t Context;

  volatile HAL_SDIO_StateTypeDef State;

  volatile uint32_t ErrorCode;

  uint8_t IOFunctionMask;

  volatile uint8_t IOInterruptNbr;

  void (* SDIO_IOFunction_Callback[7U])(struct __SDIO_HandleTypeDef *hsdio, uint32_t func);
# 163 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdio.h"
  HAL_StatusTypeDef(* SDIO_IdentifyCard)(struct __SDIO_HandleTypeDef *hsdio);

} SDIO_HandleTypeDef;

/**
  * @}
  */
# 199 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdio.h"
typedef HAL_StatusTypeDef(*pSDIO_IdentifyCardCallbackTypeDef)(SDIO_HandleTypeDef *hsdio);
typedef void (*HAL_SDIO_IOFunction_CallbackTypeDef)(SDIO_HandleTypeDef *hsdio, uint32_t func);
/**
  * @}
  */

/* Exported constants ------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Exported_Constants SDIO Exported Constants
  * @{
  */

/** @defgroup SDIO_Exported_Constansts_Group1 SDIO Error status Structure definition
  * @{
  */







/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group2 SDIO context enumeration
  * @{
  */







/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group3 SDIO Block mode enumeration
  * @{
  */


/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group4 SDIO operation code enumeration
  * @{
  */


/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group5 SDIO Read After Write(RAW) enumeration
  * @{
  */


/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group6 SDIO wire mode enumeration
  * @{
  */


/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group7 SDIO Data block size enumeration
  * @{
  */
# 289 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdio.h"
/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group8 SDIO Bus Width enumeration
  * @{
  */


/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group9 SDIO Data rate definitions
  * @{
  */




/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group10 SDIO Functions definitions
  * @{
  */
# 324 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdio.h"
/**
  * @}
  */

/** @defgroup SDIO_Exported_Constansts_Group11 SDIO FBR definitions
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */
/* Exported macro ----------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Exported_macros SDIO Exported Macros
  *  @brief macros to handle interrupts and specific clock configurations
  * @{
  */
/**
  * @brief  Enable the SDIO device interrupt.
  * @param  __HANDLE__ SDIO Handle.
  * @param  __INTERRUPT__ specifies the SDMMC interrupt sources to be enabled.
  *         This parameter can be one or a combination of @ref SDMMC_LL_Interrupt_sources.
  * @retval None
  */


/**
  * @brief  Disable the SDIO device interrupt.
  * @param  __HANDLE__ SDIO Handle.
  * @param  __INTERRUPT__ specifies the SDMMC interrupt sources to be disabled.
  *          This parameter can be one or a combination of @ref SDMMC_LL_Interrupt_sources.
  * @retval None
  */


/**
  * @brief  Check whether the specified SDIO flag is set or not.
  * @param  __HANDLE__ SDIO Handle.
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be one of @ref SDMMC_LL_Flags.
  * @retval The new state of SDIO FLAG (SET or RESET).
  */


/**
  * @brief  Clear the SDIO's pending flags.
  * @param  __HANDLE__ SDIO Handle.
  * @param  __FLAG__ specifies the flag to clear.
  *          This parameter can be one or a combination of @ref SDMMC_LL_Flags.
  * @retval None
  */


/**
  * @brief  Check whether the specified SDIO interrupt has occurred or not.
  * @param  __HANDLE__ SDIO Handle.
  * @param  __INTERRUPT__ specifies the SDMMC interrupt source to check.
  *          This parameter can be one of @ref SDMMC_LL_Interrupt_sources.
  * @retval The new state of SDIO IT (SET or RESET).
  */


/**
  * @brief  Checks whether the specified SDIO interrupt is enabled or not.
  * @param  __HANDLE__    : SDIO handle.
  * @param  __INTERRUPT__ : specifies the SDMMC interrupt source to check.
  * @retval The state of SDIO IT (SET or RESET).
  */


/**
  * @}
  */

/* Exported functions ------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Exported_Functions SDIO Exported Functions
  * @{
  */
/** @defgroup SDIO_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */
HAL_StatusTypeDef HAL_SDIO_Init(SDIO_HandleTypeDef *hsdio);
HAL_StatusTypeDef HAL_SDIO_DeInit(SDIO_HandleTypeDef *hsdio);

void HAL_SDIO_MspInit(SDIO_HandleTypeDef *hsdio);
void HAL_SDIO_MspDeInit(SDIO_HandleTypeDef *hsdio);
/**
  * @}
  */

/** @defgroup SDIO_Exported_Functions_Group2 Peripheral Control functions
  * @{
  */
HAL_StatusTypeDef HAL_SDIO_SetDataBusWidth(SDIO_HandleTypeDef *hsdio, uint32_t BusWide);
HAL_StatusTypeDef HAL_SDIO_ConfigFrequency(SDIO_HandleTypeDef *hsdio, uint32_t ClockSpeed);

HAL_StatusTypeDef HAL_SDIO_SetBlockSize(SDIO_HandleTypeDef *hsdio, uint8_t function_nbr, uint16_t BlockSize);
HAL_StatusTypeDef HAL_SDIO_SetSpeedMode(SDIO_HandleTypeDef *hsdio, uint32_t DataRate);

HAL_StatusTypeDef HAL_SDIO_CardReset(SDIO_HandleTypeDef *hsdio);
HAL_StatusTypeDef HAL_SDIO_GetCardCommonControlRegister(SDIO_HandleTypeDef *hsdio, HAL_SDIO_CCCR_TypeDef *pCccr);
HAL_StatusTypeDef HAL_SDIO_GetCardFBRRegister(SDIO_HandleTypeDef *hsdio, HAL_SDIO_FBR_t *pFbr);
/**
  * @}
  */

/** @defgroup SDIO_Exported_Functions_Group3 Process functions
  * @{
  */
HAL_StatusTypeDef HAL_SDIO_ReadDirect(SDIO_HandleTypeDef *hsdio, HAL_SDIO_DirectCmd_TypeDef *Argument, uint8_t *pData);
HAL_StatusTypeDef HAL_SDIO_WriteDirect(SDIO_HandleTypeDef *hsdio, HAL_SDIO_DirectCmd_TypeDef *Argument, uint8_t Data);

HAL_StatusTypeDef HAL_SDIO_ReadExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_ExtendedCmd_TypeDef *Argument,
                                        uint8_t *pData, uint32_t Size_byte, uint32_t Timeout_Ms);

HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_ExtendedCmd_TypeDef *Argument,
                                         uint8_t *pData, uint32_t Size_byte, uint32_t Timeout_Ms);

HAL_StatusTypeDef HAL_SDIO_ReadExtended_DMA(SDIO_HandleTypeDef *hsdio, HAL_SDIO_ExtendedCmd_TypeDef *Argument,
                                            uint8_t *pData, uint32_t Size_byte);

HAL_StatusTypeDef HAL_SDIO_WriteExtended_DMA(SDIO_HandleTypeDef *hsdio, HAL_SDIO_ExtendedCmd_TypeDef *Argument,
                                             uint8_t *pData, uint32_t Size_byte);
/**
  * @}
  */

/** @defgroup SDIO_Exported_Functions_Group4 IRQHandler and callback functions
  * @{
  */
void HAL_SDIO_IRQHandler(SDIO_HandleTypeDef *hsdio);

void HAL_SDIO_TxCpltCallback(SDIO_HandleTypeDef *hsdio);
void HAL_SDIO_RxCpltCallback(SDIO_HandleTypeDef *hsdio);
void HAL_SDIO_ErrorCallback(SDIO_HandleTypeDef *hsdio);
void HAL_SDIO_IOFunctionCallback(SDIO_HandleTypeDef *hsdio, uint32_t func);
# 482 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdio.h"
HAL_StatusTypeDef HAL_SDIO_RegisterIOFunctionCallback(SDIO_HandleTypeDef *hsdio, uint32_t IOFunction,
                                                      HAL_SDIO_IOFunction_CallbackTypeDef pCallback);

HAL_StatusTypeDef HAL_SDIO_RegisterIdentifyCardCallback(SDIO_HandleTypeDef *hsdio,
                                                        pSDIO_IdentifyCardCallbackTypeDef pCallback);
/**
  * @}
  */

/** @defgroup SDIO_Exported_Functions_Group5 Peripheral State and Errors functions
  * @{
  */
HAL_SDIO_StateTypeDef HAL_SDIO_GetState(const SDIO_HandleTypeDef *hsdio);
uint32_t HAL_SDIO_GetError(const SDIO_HandleTypeDef *hsdio);
/**
  * @}
  */

/** @defgroup SDIO_Exported_Functions_Group6 Peripheral IO interrupt
  * @{
  */
HAL_StatusTypeDef HAL_SDIO_EnableIOFunctionInterrupt(SDIO_HandleTypeDef *hsdio, uint32_t IOFunction);
HAL_StatusTypeDef HAL_SDIO_DisableIOFunctionInterrupt(SDIO_HandleTypeDef *hsdio, uint32_t IOFunction);

HAL_StatusTypeDef HAL_SDIO_EnableIOFunction(SDIO_HandleTypeDef *hsdio, uint32_t IOFunction);
HAL_StatusTypeDef HAL_SDIO_DisableIOFunction(SDIO_HandleTypeDef *hsdio, uint32_t IOFunction);

HAL_StatusTypeDef HAL_SDIO_SelectIOFunction(SDIO_HandleTypeDef *hsdio, uint32_t IOFunction);
HAL_StatusTypeDef HAL_SDIO_AbortIOFunction(SDIO_HandleTypeDef *hsdio, uint32_t IOFunction);

HAL_StatusTypeDef HAL_SDIO_EnableIOAsynInterrupt(SDIO_HandleTypeDef *hsdio);
HAL_StatusTypeDef HAL_SDIO_DisableIOAsynInterrupt(SDIO_HandleTypeDef *hsdio);

/**
  * @}
  */

/* Private types -----------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Private_Types SDIO Private Types
  * @{
  */

/**
  * @}
  */

/* Private defines ---------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Private_Defines SDIO Private Defines
  * @{
  */

/**
  * @}
  */

/* Private variables -------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Private_Variables SDIO Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants -------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Private_Constants SDIO Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ----------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Private_Macros SDIO Private Macros
  * @{
  */

/**
  * @}
  */

/* Private functions prototypes --------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Private_Functions_Prototypes SDIO Private Functions Prototypes
  * @{
  */

/**
  * @}
  */

/* Private functions -------------------------------------------------------------------------------------------------*/
/** @defgroup SDIO_Private_Functions SDIO Private Functions
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


/**
  * @}
  */


}
# 447 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdram.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_sdram.h
  * @author  MCD Application Team
  * @brief   Header file of SDRAM HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {



/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_fmc.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_fmc.h
  * @author  MCD Application Team
  * @brief   Header file of FMC HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdram.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup SDRAM
  * @{
  */

/* Exported typedef ----------------------------------------------------------*/

/** @defgroup SDRAM_Exported_Types SDRAM Exported Types
  * @{
  */

/**
  * @brief  HAL SDRAM State structure definition
  */
typedef enum
{
  HAL_SDRAM_STATE_RESET = 0x00U,
  HAL_SDRAM_STATE_READY = 0x01U,
  HAL_SDRAM_STATE_BUSY = 0x02U,
  HAL_SDRAM_STATE_ERROR = 0x03U,
  HAL_SDRAM_STATE_WRITE_PROTECTED = 0x04U,
  HAL_SDRAM_STATE_PRECHARGED = 0x05U

} HAL_SDRAM_StateTypeDef;

/**
  * @brief  SDRAM handle Structure definition
  */



typedef struct

{
  FMC_Bank5_6_TypeDef *Instance;

  FMC_SDRAM_InitTypeDef Init;

  volatile HAL_SDRAM_StateTypeDef State;

  HAL_LockTypeDef Lock;

  MDMA_HandleTypeDef *hmdma;
# 85 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdram.h"
} SDRAM_HandleTypeDef;
# 106 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdram.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/

/** @defgroup SDRAM_Exported_Macros SDRAM Exported Macros
  * @{
  */

/** @brief Reset SDRAM handle state
  * @param  __HANDLE__ specifies the SDRAM handle.
  * @retval None
  */
# 130 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdram.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/

/** @addtogroup SDRAM_Exported_Functions SDRAM Exported Functions
  * @{
  */

/** @addtogroup SDRAM_Exported_Functions_Group1
  * @{
  */

/* Initialization/de-initialization functions *********************************/
HAL_StatusTypeDef HAL_SDRAM_Init(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_TimingTypeDef *Timing);
HAL_StatusTypeDef HAL_SDRAM_DeInit(SDRAM_HandleTypeDef *hsdram);
void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram);
void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef *hsdram);

void HAL_SDRAM_IRQHandler(SDRAM_HandleTypeDef *hsdram);
void HAL_SDRAM_RefreshErrorCallback(SDRAM_HandleTypeDef *hsdram);
void HAL_SDRAM_DMA_XferCpltCallback(MDMA_HandleTypeDef *hmdma);
void HAL_SDRAM_DMA_XferErrorCallback(MDMA_HandleTypeDef *hmdma);

/**
  * @}
  */

/** @addtogroup SDRAM_Exported_Functions_Group2
  * @{
  */
/* I/O operation functions ****************************************************/
HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer,
                                    uint32_t BufferSize);
HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer,
                                     uint32_t BufferSize);
HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer,
                                     uint32_t BufferSize);
HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer,
                                      uint32_t BufferSize);
HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
                                     uint32_t BufferSize);
HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
                                      uint32_t BufferSize);

HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer,
                                     uint32_t BufferSize);
HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer,
                                      uint32_t BufferSize);
# 190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_sdram.h"
/**
  * @}
  */

/** @addtogroup SDRAM_Exported_Functions_Group3
  * @{
  */
/* SDRAM Control functions  *****************************************************/
HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Enable(SDRAM_HandleTypeDef *hsdram);
HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Disable(SDRAM_HandleTypeDef *hsdram);
HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command,
                                        uint32_t Timeout);
HAL_StatusTypeDef HAL_SDRAM_ProgramRefreshRate(SDRAM_HandleTypeDef *hsdram, uint32_t RefreshRate);
HAL_StatusTypeDef HAL_SDRAM_SetAutoRefreshNumber(SDRAM_HandleTypeDef *hsdram, uint32_t AutoRefreshNumber);
uint32_t HAL_SDRAM_GetModeStatus(SDRAM_HandleTypeDef *hsdram);

/**
  * @}
  */

/** @addtogroup SDRAM_Exported_Functions_Group4
  * @{
  */
/* SDRAM State functions ********************************************************/
HAL_SDRAM_StateTypeDef HAL_SDRAM_GetState(const SDRAM_HandleTypeDef *hsdram);
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 451 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_spi.h
  * @author  MCD Application Team
  * @brief   Header file of SPI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup SPI
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SPI_Exported_Types SPI Exported Types
  * @{
  */

/**
  * @brief  SPI Configuration Structure definition
  */
typedef struct
{
  uint32_t Mode; /*!< Specifies the SPI operating mode.
                                                     This parameter can be a value of @ref SPI_Mode */

  uint32_t Direction; /*!< Specifies the SPI bidirectional mode state.
                                                     This parameter can be a value of @ref SPI_Direction */

  uint32_t DataSize; /*!< Specifies the SPI data size.
                                                     This parameter can be a value of @ref SPI_Data_Size */

  uint32_t CLKPolarity; /*!< Specifies the serial clock steady state.
                                                     This parameter can be a value of @ref SPI_Clock_Polarity */

  uint32_t CLKPhase; /*!< Specifies the clock active edge for the bit capture.
                                                     This parameter can be a value of @ref SPI_Clock_Phase */

  uint32_t NSS; /*!< Specifies whether the NSS signal is managed by
                                                     hardware (NSS pin) or by software using the SSI bit.
                                                     This parameter can be a value of
                                                     @ref SPI_Slave_Select_Management */

  uint32_t BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be
                                                     used to configure the transmit and receive SCK clock.
                                                     This parameter can be a value of @ref SPI_BaudRate_Prescaler
                                                     @note The communication clock is derived from the master
                                                     clock. The slave clock does not need to be set. */

  uint32_t FirstBit; /*!< Specifies whether data transfers start from MSB or LSB bit.
                                                     This parameter can be a value of @ref SPI_MSB_LSB_Transmission */

  uint32_t TIMode; /*!< Specifies if the TI mode is enabled or not.
                                                     This parameter can be a value of @ref SPI_TI_Mode */

  uint32_t CRCCalculation; /*!< Specifies if the CRC calculation is enabled or not.
                                                     This parameter can be a value of @ref SPI_CRC_Calculation */

  uint32_t CRCPolynomial; /*!< Specifies the polynomial used for the CRC calculation.
                                                     This parameter must be an odd number between
                                                     Min_Data = 0 and Max_Data = 65535 */

  uint32_t CRCLength; /*!< Specifies the CRC Length used for the CRC calculation.
                                                     This parameter can be a value of @ref SPI_CRC_length */

  uint32_t NSSPMode; /*!< Specifies whether the NSSP signal is enabled or not .
                                                     This parameter can be a value of @ref SPI_NSSP_Mode
                                                     This mode is activated by the SSOM bit in the SPIx_CR2 register
                                                     and it takes effect only if the SPI interface is configured
                                                     as Motorola SPI master (FRF=0). */

  uint32_t NSSPolarity; /*!< Specifies which level of SS input/output external signal
                                                     (present on SS pin) is considered as active one.
                                                     This parameter can be a value of @ref SPI_NSS_Polarity */

  uint32_t FifoThreshold; /*!< Specifies the FIFO threshold level.
                                                     This parameter can be a value of @ref SPI_Fifo_Threshold */

  uint32_t TxCRCInitializationPattern; /*!< Specifies the transmitter CRC initialization Pattern used for
                                                     the CRC calculation. This parameter can be a value of
                                                     @ref SPI_CRC_Calculation_Initialization_Pattern */

  uint32_t RxCRCInitializationPattern; /*!< Specifies the receiver CRC initialization Pattern used for
                                                     the CRC calculation. This parameter can be a value of
                                                     @ref SPI_CRC_Calculation_Initialization_Pattern */

  uint32_t MasterSSIdleness; /*!< Specifies an extra delay, expressed in number of SPI clock cycle
                                                     periods, inserted additionally between active edge of SS
                                                     and first data transaction start in master mode.
                                                     This parameter can be a value of @ref SPI_Master_SS_Idleness */

  uint32_t MasterInterDataIdleness; /*!< Specifies minimum time delay (expressed in SPI clock cycles periods)
                                                     inserted between two consecutive data frames in master mode.
                                                     This parameter can be a value of
                                                     @ref SPI_Master_InterData_Idleness */

  uint32_t MasterReceiverAutoSusp; /*!< Control continuous SPI transfer in master receiver mode
                                                     and automatic management in order to avoid overrun condition.
                                                     This parameter can be a value of @ref SPI_Master_RX_AutoSuspend*/

  uint32_t MasterKeepIOState; /*!< Control of Alternate function GPIOs state
                                                     This parameter can be a value of @ref SPI_Master_Keep_IO_State */

  uint32_t IOSwap; /*!< Invert MISO/MOSI alternate functions
                                                     This parameter can be a value of @ref SPI_IO_Swap */
} SPI_InitTypeDef;

/**
  * @brief  HAL SPI State structure definition
  */
typedef enum
{
  HAL_SPI_STATE_RESET = 0x00UL,
  HAL_SPI_STATE_READY = 0x01UL,
  HAL_SPI_STATE_BUSY = 0x02UL,
  HAL_SPI_STATE_BUSY_TX = 0x03UL,
  HAL_SPI_STATE_BUSY_RX = 0x04UL,
  HAL_SPI_STATE_BUSY_TX_RX = 0x05UL,
  HAL_SPI_STATE_ERROR = 0x06UL,
  HAL_SPI_STATE_ABORT = 0x07UL
} HAL_SPI_StateTypeDef;
# 166 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @brief  SPI handle Structure definition
  */
typedef struct __SPI_HandleTypeDef
{
  SPI_TypeDef *Instance;

  SPI_InitTypeDef Init;

  const uint8_t *pTxBuffPtr;

  uint16_t TxXferSize;

  volatile uint16_t TxXferCount;

  uint8_t *pRxBuffPtr;

  uint16_t RxXferSize;

  volatile uint16_t RxXferCount;

  uint32_t CRCSize;

  void (*RxISR)(struct __SPI_HandleTypeDef *hspi);

  void (*TxISR)(struct __SPI_HandleTypeDef *hspi);

  DMA_HandleTypeDef *hdmatx;

  DMA_HandleTypeDef *hdmarx;

  HAL_LockTypeDef Lock;

  volatile HAL_SPI_StateTypeDef State;

  volatile uint32_t ErrorCode;
# 223 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
} SPI_HandleTypeDef;
# 251 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup SPI_Exported_Constants SPI Exported Constants
  * @{
  */

/** @defgroup SPI_FIFO_Type SPI FIFO Type
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_Error_Code SPI Error Codes
  * @{
  */
# 289 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/** @defgroup SPI_Mode SPI Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_Direction SPI Direction Mode
  * @{
  */




/**
  * @}
  */

/** @defgroup SPI_Data_Size SPI Data Size
  * @{
  */
# 345 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/** @defgroup SPI_Clock_Polarity SPI Clock Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_Clock_Phase SPI Clock Phase
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_Slave_Select_Management SPI Slave Select Management
  * @{
  */



/**
  * @}
  */

/** @defgroup SPI_NSSP_Mode SPI NSS Pulse Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_BaudRate_Prescaler SPI BaudRate Prescaler
  * @{
  */
# 397 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/** @defgroup SPI_MSB_LSB_Transmission SPI MSB LSB Transmission
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_TI_Mode SPI TI Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_CRC_Calculation SPI CRC Calculation
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_CRC_length SPI CRC Length
  * @{
  */
# 461 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/** @defgroup SPI_Fifo_Threshold SPI Fifo Threshold
  * @{
  */
# 484 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/** @defgroup SPI_CRC_Calculation_Initialization_Pattern SPI CRC Calculation Initialization Pattern
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_NSS_Polarity SPI NSS Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_Master_Keep_IO_State Keep IO State
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_IO_Swap Control SPI IO Swap
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_Master_SS_Idleness SPI Master SS Idleness
  * @{
  */
# 543 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/** @defgroup SPI_Master_InterData_Idleness SPI Master Inter-Data Idleness
  * @{
  */
# 566 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/** @defgroup SPI_Master_RX_AutoSuspend SPI Master Receiver AutoSuspend
  * @{
  */


/**
  * @}
  */

/** @defgroup SPI_Underrun_Behaviour SPI Underrun Behavior
  * @{
  */



/**
  * @}
  */

/** @defgroup SPI_Underrun_Detection SPI Underrun Detection
  * @{
  */



/**
  * @}
  */

/** @defgroup SPI_Interrupt_definition SPI Interrupt Definition
  * @{
  */
# 614 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/** @defgroup SPI_Flags_definition SPI Flags Definition
  * @{
  */
# 636 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/** @defgroup SPI_reception_fifo_status_level SPI Reception FIFO Status Level
  * @{
  */




/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup SPI_Exported_Macros SPI Exported Macros
  * @{
  */

/** @brief  Reset SPI handle state.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
  * @retval None
  */
# 675 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/** @brief  Enable the specified SPI interrupts.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
  * @param  __INTERRUPT__: specifies the interrupt source to enable or disable.
  *         This parameter can be one of the following values:
  *            @arg SPI_IT_RXP    : Rx-Packet available interrupt
  *            @arg SPI_IT_TXP    : Tx-Packet space available interrupt
  *            @arg SPI_IT_DXP    : Duplex Packet interrupt
  *            @arg SPI_IT_EOT    : End of transfer interrupt
  *            @arg SPI_IT_TXTF   : Transmission Transfer Filled interrupt
  *            @arg SPI_IT_UDR    : Underrun interrupt
  *            @arg SPI_IT_OVR    : Overrun  interrupt
  *            @arg SPI_IT_CRCERR : CRC error interrupt
  *            @arg SPI_IT_FRE    : TI mode frame format error interrupt
  *            @arg SPI_IT_MODF   : Mode fault interrupt
  *            @arg SPI_IT_TSERF  : Additional number of data reloaded interrupt
  *            @arg SPI_IT_ERR    : Error interrupt
  * @retval None
  */


/** @brief  Disable the specified SPI interrupts.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
  * @param  __INTERRUPT__: specifies the interrupt source to enable or disable.
  *         This parameter can be one of the following values:
  *            @arg SPI_IT_RXP    : Rx-Packet available interrupt
  *            @arg SPI_IT_TXP    : Tx-Packet space available interrupt
  *            @arg SPI_IT_DXP    : Duplex Packet interrupt
  *            @arg SPI_IT_EOT    : End of transfer interrupt
  *            @arg SPI_IT_TXTF   : Transmission Transfer Filled interrupt
  *            @arg SPI_IT_UDR    : Underrun interrupt
  *            @arg SPI_IT_OVR    : Overrun  interrupt
  *            @arg SPI_IT_CRCERR : CRC error interrupt
  *            @arg SPI_IT_FRE    : TI mode frame format error interrupt
  *            @arg SPI_IT_MODF   : Mode fault interrupt
  *            @arg SPI_IT_TSERF  : Additional number of data reloaded interrupt
  *            @arg SPI_IT_ERR    : Error interrupt
  * @retval None
  */


/** @brief  Check whether the specified SPI interrupt source is enabled or not.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
  * @param  __INTERRUPT__: specifies the SPI interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg SPI_IT_RXP    : Rx-Packet available interrupt
  *            @arg SPI_IT_TXP    : Tx-Packet space available interrupt
  *            @arg SPI_IT_DXP    : Duplex Packet interrupt
  *            @arg SPI_IT_EOT    : End of transfer interrupt
  *            @arg SPI_IT_TXTF   : Transmission Transfer Filled interrupt
  *            @arg SPI_IT_UDR    : Underrun interrupt
  *            @arg SPI_IT_OVR    : Overrun  interrupt
  *            @arg SPI_IT_CRCERR : CRC error interrupt
  *            @arg SPI_IT_FRE    : TI mode frame format error interrupt
  *            @arg SPI_IT_MODF   : Mode fault interrupt
  *            @arg SPI_IT_TSERF  : Additional number of data reloaded interrupt
  *            @arg SPI_IT_ERR    : Error interrupt
  * @retval The new state of __IT__ (TRUE or FALSE).
  */



/** @brief  Check whether the specified SPI flag is set or not.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, 3, 4, 5 or 6 to select the SPI peripheral.
  * @param  __FLAG__: specifies the flag to check.
  *         This parameter can be one of the following values:
  *            @arg SPI_FLAG_RXP    : Rx-Packet available flag
  *            @arg SPI_FLAG_TXP    : Tx-Packet space available flag
  *            @arg SPI_FLAG_DXP    : Duplex Packet flag
  *            @arg SPI_FLAG_EOT    : End of transfer flag
  *            @arg SPI_FLAG_TXTF   : Transmission Transfer Filled flag
  *            @arg SPI_FLAG_UDR    : Underrun flag
  *            @arg SPI_FLAG_OVR    : Overrun flag
  *            @arg SPI_FLAG_CRCERR : CRC error flag
  *            @arg SPI_FLAG_FRE    : TI mode frame format error flag
  *            @arg SPI_FLAG_MODF   : Mode fault flag
  *            @arg SPI_FLAG_TSERF  : Additional number of data reloaded flag
  *            @arg SPI_FLAG_SUSP   : Transfer suspend complete flag
  *            @arg SPI_FLAG_TXC    : TxFIFO transmission complete flag
  *            @arg SPI_FLAG_FRLVL  : Fifo reception level flag
  *            @arg SPI_FLAG_RXWNE  : RxFIFO word not empty flag
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */


/** @brief  Clear the SPI CRCERR pending flag.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Clear the SPI MODF pending flag.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Clear the SPI OVR pending flag.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Clear the SPI FRE pending flag.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Clear the SPI UDR pending flag.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Clear the SPI EOT pending flag.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Clear the SPI UDR pending flag.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Clear the SPI SUSP pending flag.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Clear the SPI TSERF pending flag.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Enable the SPI peripheral.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */


/** @brief  Disable the SPI peripheral.
  * @param  __HANDLE__: specifies the SPI Handle.
  * @retval None
  */

/**
  * @}
  */


/* Include SPI HAL Extension module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_spi_ex.h
  * @author  MCD Application Team
  * @brief   Header file of SPI HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup SPIEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SPIEx_Exported_Types SPIEx Exported Types
  * @{
  */

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup SPIEx_Exported_Constants SPIEx Exported Constants
  * @{
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup SPIEx_Exported_Macros SPIEx Extended Exported Macros
  * @{
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SPIEx_Exported_Functions
  * @{
  */

/* Initialization and de-initialization functions  ****************************/
/* IO operation functions *****************************************************/
/** @addtogroup SPIEx_Exported_Functions_Group1
  * @{
  */
HAL_StatusTypeDef HAL_SPIEx_FlushRxFifo(const SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPIEx_EnableLockConfiguration(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPIEx_ConfigureUnderrun(SPI_HandleTypeDef *hspi, uint32_t UnderrunDetection,
                                              uint32_t UnderrunBehaviour);
/**
  * @}
  */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 835 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h" 2


/* Exported functions --------------------------------------------------------*/
/** @addtogroup SPI_Exported_Functions
  * @{
  */

/** @addtogroup SPI_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */
/* Initialization/de-initialization functions  ********************************/
HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi);
void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi);
void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi);

/* Callbacks Register/UnRegister functions  ***********************************/





/**
  * @}
  */

/** @addtogroup SPI_Exported_Functions_Group2 IO operation functions
  * @{
  */
/* I/O operation functions  ***************************************************/
HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData,
                                          uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData,
                                             uint16_t Size);

HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, const uint8_t *pTxData, uint8_t *pRxData,
                                              uint16_t Size);
# 886 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi);

/* Transfer Abort functions */
HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi);

void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_SuspendCallback(SPI_HandleTypeDef *hspi);
/**
  * @}
  */

/** @addtogroup SPI_Exported_Functions_Group3 Peripheral State and Errors functions
  * @{
  */

/* Peripheral State and Error functions ***************************************/
HAL_SPI_StateTypeDef HAL_SPI_GetState(const SPI_HandleTypeDef *hspi);
uint32_t HAL_SPI_GetError(const SPI_HandleTypeDef *hspi);
/**
  * @}
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup SPI_Private_Macros SPI Private Macros
  * @{
  */

/** @brief  Set the SPI transmit-only mode in 1Line configuration.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
  * @retval None
  */


/** @brief  Set the SPI receive-only mode in 1Line configuration.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
  * @retval None
  */


/** @brief  Set the SPI transmit-only mode in 2Lines configuration.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
  * @retval None
  */


/** @brief  Set the SPI receive-only mode in 2Lines configuration.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
  * @retval None
  */


/** @brief  Set the SPI Transmit-Receive mode in 2Lines configuration.
  * @param  __HANDLE__: specifies the SPI Handle.
  *         This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
  * @retval None
  */
# 1110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spi.h"
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}




/**
  * @}
  */
# 455 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spdifrx.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_spdifrx.h
  * @author  MCD Application Team
  * @brief   Header file of SPDIFRX HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spdifrx.h" 2


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */


/** @addtogroup SPDIFRX
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SPDIFRX_Exported_Types SPDIFRX Exported Types
  * @{
  */

/**
  * @brief SPDIFRX Init structure definition
  */
typedef struct
{
  uint32_t InputSelection; /*!< Specifies the SPDIF input selection.
                                          This parameter can be a value of @ref SPDIFRX_Input_Selection */

  uint32_t Retries; /*!< Specifies the Maximum allowed re-tries during synchronization phase.
                                          This parameter can be a value of @ref SPDIFRX_Max_Retries */

  uint32_t WaitForActivity; /*!< Specifies the wait for activity on SPDIF selected input.
                                          This parameter can be a value of @ref SPDIFRX_Wait_For_Activity. */

  uint32_t ChannelSelection; /*!< Specifies whether the control flow will take the channel status
                                          from channel A or B.
                                          This parameter can be a value of @ref SPDIFRX_Channel_Selection */

  uint32_t DataFormat; /*!< Specifies the Data samples format (LSB, MSB, ...).
                                          This parameter can be a value of @ref SPDIFRX_Data_Format */

  uint32_t StereoMode; /*!< Specifies whether the peripheral is in stereo or mono mode.
                                          This parameter can be a value of @ref SPDIFRX_Stereo_Mode */

  uint32_t PreambleTypeMask; /*!< Specifies whether The preamble type bits are copied or not
                                          into the received frame.
                                          This parameter can be a value of @ref SPDIFRX_PT_Mask */

  uint32_t ChannelStatusMask; /*!< Specifies whether the channel status and user bits are copied or not
                                          into the received frame.
                                          This parameter can be a value of @ref SPDIFRX_ChannelStatus_Mask */

  uint32_t ValidityBitMask; /*!< Specifies whether the validity bit is copied or not into the received frame.
                                          This parameter can be a value of @ref SPDIFRX_V_Mask */

  uint32_t ParityErrorMask; /*!< Specifies whether the parity error bit is copied or not
                                          into the received frame.
                                          This parameter can be a value of @ref SPDIFRX_PE_Mask */
  FunctionalState SymbolClockGen; /*!< Enable/Disable the SPDIFRX Symbol Clock generation.
                                           This parameter can be set to Enable or Disable */

  FunctionalState BackupSymbolClockGen; /*!< Enable/Disable the SPDIFRX Backup Symbol Clock generation.
                                             This parameter can be set to Enable or Disable */
} SPDIFRX_InitTypeDef;

/**
  * @brief SPDIFRX SetDataFormat structure definition
  */
typedef struct
{
  uint32_t DataFormat; /*!< Specifies the Data samples format (LSB, MSB, ...).
                                          This parameter can be a value of @ref SPDIFRX_Data_Format */

  uint32_t StereoMode; /*!< Specifies whether the peripheral is in stereo or mono mode.
                                          This parameter can be a value of @ref SPDIFRX_Stereo_Mode */

  uint32_t PreambleTypeMask; /*!< Specifies whether The preamble type bits are copied or not
                                          into the received frame.
                                          This parameter can be a value of @ref SPDIFRX_PT_Mask */

  uint32_t ChannelStatusMask; /*!< Specifies whether the channel status and user bits are copied or not
                                          into the received frame.
                                          This parameter can be a value of @ref SPDIFRX_ChannelStatus_Mask */

  uint32_t ValidityBitMask; /*!< Specifies whether the validity bit is copied or not into the received frame.
                                          This parameter can be a value of @ref SPDIFRX_V_Mask */

  uint32_t ParityErrorMask; /*!< Specifies whether the parity error bit is copied or not
                                          into the received frame.
                                          This parameter can be a value of @ref SPDIFRX_PE_Mask */

} SPDIFRX_SetDataFormatTypeDef;

/**
  * @brief  HAL State structures definition
  */
typedef enum
{
  HAL_SPDIFRX_STATE_RESET = 0x00U,
  HAL_SPDIFRX_STATE_READY = 0x01U,
  HAL_SPDIFRX_STATE_BUSY = 0x02U,
  HAL_SPDIFRX_STATE_BUSY_RX = 0x03U,
  HAL_SPDIFRX_STATE_BUSY_CX = 0x04U,
  HAL_SPDIFRX_STATE_ERROR = 0x07U
} HAL_SPDIFRX_StateTypeDef;

/**
  * @brief SPDIFRX handle Structure definition
  */



typedef struct

{
  SPDIFRX_TypeDef *Instance;

  SPDIFRX_InitTypeDef Init;

  uint32_t *pRxBuffPtr;

  uint32_t *pCsBuffPtr;

  volatile uint16_t RxXferSize;

  volatile uint16_t RxXferCount; /* SPDIFRX Rx transfer counter
                                              (This field is initialized at the
                                               same value as transfer size at the
                                               beginning of the transfer and
                                               decremented when a sample is received.
                                               NbSamplesReceived = RxBufferSize-RxBufferCount) */

  volatile uint16_t CsXferSize;

  volatile uint16_t CsXferCount; /* SPDIFRX Rx transfer counter
                                              (This field is initialized at the
                                               same value as transfer size at the
                                               beginning of the transfer and
                                               decremented when a sample is received.
                                               NbSamplesReceived = RxBufferSize-RxBufferCount) */

  DMA_HandleTypeDef *hdmaCsRx; /* SPDIFRX EC60958_channel_status and user_information
                                              DMA handle parameters */

  DMA_HandleTypeDef *hdmaDrRx;

  volatile HAL_LockTypeDef Lock;

  volatile HAL_SPDIFRX_StateTypeDef State;

  volatile uint32_t ErrorCode;
# 189 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spdifrx.h"
} SPDIFRX_HandleTypeDef;
# 212 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spdifrx.h"
/**
  * @}
  */
/* Exported constants --------------------------------------------------------*/
/** @defgroup SPDIFRX_Exported_Constants SPDIFRX Exported Constants
  * @{
  */
/** @defgroup SPDIFRX_ErrorCode SPDIFRX Error Code
  * @{
  */
# 231 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spdifrx.h"
/**
  * @}
  */

/** @defgroup SPDIFRX_Input_Selection SPDIFRX Input Selection
  * @{
  */




/**
  * @}
  */

/** @defgroup SPDIFRX_Max_Retries SPDIFRX Maximum Retries
  * @{
  */




/**
  * @}
  */

/** @defgroup SPDIFRX_Wait_For_Activity SPDIFRX Wait For Activity
  * @{
  */


/**
  * @}
  */

/** @defgroup SPDIFRX_PT_Mask SPDIFRX Preamble Type Mask
  * @{
  */


/**
  * @}
  */

/** @defgroup SPDIFRX_ChannelStatus_Mask  SPDIFRX Channel Status Mask
  * @{
  */




/**
  * @}
  */

/** @defgroup SPDIFRX_V_Mask SPDIFRX Validity Mask
  * @{
  */


/**
  * @}
  */

/** @defgroup SPDIFRX_PE_Mask  SPDIFRX Parity Error Mask
  * @{
  */


/**
  * @}
  */

/** @defgroup SPDIFRX_Channel_Selection  SPDIFRX Channel Selection
  * @{
  */


/**
  * @}
  */

/** @defgroup SPDIFRX_Data_Format SPDIFRX Data Format
  * @{
  */



/**
  * @}
  */

/** @defgroup SPDIFRX_Stereo_Mode SPDIFRX Stereo Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SPDIFRX_State SPDIFRX State
  * @{
  */




/**
  * @}
  */

/** @defgroup SPDIFRX_Interrupts_Definition SPDIFRX Interrupts Definition
  * @{
  */







/**
  * @}
  */

/** @defgroup SPDIFRX_Flags_Definition SPDIFRX Flags Definition
  * @{
  */
# 369 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spdifrx.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup SPDIFRX_Exported_macros SPDIFRX Exported Macros
  * @{
  */

/** @brief  Reset SPDIFRX handle state
  * @param  __HANDLE__ SPDIFRX handle.
  * @retval None
  */
# 396 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spdifrx.h"
/** @brief  Disable the specified SPDIFRX peripheral (IDLE State).
  * @param  __HANDLE__ specifies the SPDIFRX Handle.
  * @retval None
  */


/** @brief  Enable the specified SPDIFRX peripheral (SYNC State).
  * @param  __HANDLE__ specifies the SPDIFRX Handle.
  * @retval None
  */



/** @brief  Enable the specified SPDIFRX peripheral (RCV State).
  * @param  __HANDLE__ specifies the SPDIFRX Handle.
  * @retval None
  */



/** @brief  Enable or disable the specified SPDIFRX interrupts.
  * @param  __HANDLE__    specifies the SPDIFRX Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to enable or disable.
  *        This parameter can be one of the following values:
  *            @arg SPDIFRX_IT_RXNE
  *            @arg SPDIFRX_IT_CSRNE
  *            @arg SPDIFRX_IT_PERRIE
  *            @arg SPDIFRX_IT_OVRIE
  *            @arg SPDIFRX_IT_SBLKIE
  *            @arg SPDIFRX_IT_SYNCDIE
  *            @arg SPDIFRX_IT_IFEIE
  * @retval None
  */




/** @brief  Checks if the specified SPDIFRX interrupt source is enabled or disabled.
  * @param  __HANDLE__    specifies the SPDIFRX Handle.
  * @param  __INTERRUPT__ specifies the SPDIFRX interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg SPDIFRX_IT_RXNE
  *            @arg SPDIFRX_IT_CSRNE
  *            @arg SPDIFRX_IT_PERRIE
  *            @arg SPDIFRX_IT_OVRIE
  *            @arg SPDIFRX_IT_SBLKIE
  *            @arg SPDIFRX_IT_SYNCDIE
  *            @arg SPDIFRX_IT_IFEIE
  * @retval The new state of __IT__ (TRUE or FALSE).
  */



/** @brief  Checks whether the specified SPDIFRX flag is set or not.
  * @param  __HANDLE__  specifies the SPDIFRX Handle.
  * @param  __FLAG__    specifies the flag to check.
  *        This parameter can be one of the following values:
  *            @arg SPDIFRX_FLAG_RXNE
  *            @arg SPDIFRX_FLAG_CSRNE
  *            @arg SPDIFRX_FLAG_PERR
  *            @arg SPDIFRX_FLAG_OVR
  *            @arg SPDIFRX_FLAG_SBD
  *            @arg SPDIFRX_FLAG_SYNCD
  *            @arg SPDIFRX_FLAG_FERR
  *            @arg SPDIFRX_FLAG_SERR
  *            @arg SPDIFRX_FLAG_TERR
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */



/** @brief  Clears the specified SPDIFRX SR flag, in setting the proper IFCR register bit.
  * @param  __HANDLE__    specifies the USART Handle.
  * @param  __IT_CLEAR__  specifies the interrupt clear register flag that needs to be set
  *                       to clear the corresponding interrupt
  *          This parameter can be one of the following values:
  *            @arg SPDIFRX_FLAG_PERR
  *            @arg SPDIFRX_FLAG_OVR
  *            @arg SPDIFRX_SR_SBD
  *            @arg SPDIFRX_SR_SYNCD
  * @retval None
  */


/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SPDIFRX_Exported_Functions
  * @{
  */

/** @addtogroup SPDIFRX_Exported_Functions_Group1
  * @{
  */
/* Initialization/de-initialization functions  **********************************/
HAL_StatusTypeDef HAL_SPDIFRX_Init(SPDIFRX_HandleTypeDef *hspdif);
HAL_StatusTypeDef HAL_SPDIFRX_DeInit(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_MspInit(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_MspDeInit(SPDIFRX_HandleTypeDef *hspdif);
HAL_StatusTypeDef HAL_SPDIFRX_SetDataFormat(SPDIFRX_HandleTypeDef *hspdif, SPDIFRX_SetDataFormatTypeDef sDataFormat);

/* Callbacks Register/UnRegister functions  ***********************************/






/**
  * @}
  */

/** @addtogroup SPDIFRX_Exported_Functions_Group2
  * @{
  */
/* I/O operation functions  ***************************************************/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size,
                                              uint32_t Timeout);
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveCtrlFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size,
                                              uint32_t Timeout);

/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveCtrlFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size);
void HAL_SPDIFRX_IRQHandler(SPDIFRX_HandleTypeDef *hspdif);

/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveCtrlFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPDIFRX_DMAStop(SPDIFRX_HandleTypeDef *hspdif);

/* Callbacks used in non blocking modes (Interrupt and DMA) *******************/
void HAL_SPDIFRX_RxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_RxCpltCallback(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_ErrorCallback(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_CxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif);
void HAL_SPDIFRX_CxCpltCallback(SPDIFRX_HandleTypeDef *hspdif);
/**
  * @}
  */

/** @addtogroup SPDIFRX_Exported_Functions_Group3
  * @{
  */
/* Peripheral Control and State functions  ************************************/
HAL_SPDIFRX_StateTypeDef HAL_SPDIFRX_GetState(SPDIFRX_HandleTypeDef const *const hspdif);
uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef const *const hspdif);
/**
  * @}
  */

/**
  * @}
  */
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/** @defgroup SPDIFRX_Private_Macros SPDIFRX Private Macros
  * @{
  */
# 596 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_spdifrx.h"
/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/
/** @defgroup SPDIFRX_Private_Functions SPDIFRX Private Functions
  * @{
  */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 459 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_swpmi.h
  * @author  MCD Application Team
  * @brief   Header file of SWPMI HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */


/** @addtogroup SWPMI
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SWPMI_Exported_Types SWPMI Exported Types
  * @{
  */

/**
  * @brief SWPMI Init Structure definition
  */
typedef struct
{
  uint32_t VoltageClass; /*!< Specifies the SWP Voltage Class.
                                          This parameter can be a value of @ref SWPMI_Voltage_Class */

  uint32_t BitRate; /*!< Specifies the SWPMI Bitrate.
                                          This parameter must be a number between 0 and 255U.
                                          The Bitrate is computed using the following formula:
                                          SWPMI_freq = SWPMI_clk / (((BitRate) + 1)  * 4)
                                          */

  uint32_t TxBufferingMode; /*!< Specifies the transmission buffering mode.
                                          This parameter can be a value of @ref SWPMI_Tx_Buffering_Mode */

  uint32_t RxBufferingMode; /*!< Specifies the reception buffering mode.
                                          This parameter can be a value of @ref SWPMI_Rx_Buffering_Mode */

} SWPMI_InitTypeDef;


/**
  * @brief HAL SWPMI State structures definition
  */
typedef enum
{
  HAL_SWPMI_STATE_RESET = 0x00,
  HAL_SWPMI_STATE_READY = 0x01,
  HAL_SWPMI_STATE_BUSY = 0x02,
  HAL_SWPMI_STATE_BUSY_TX = 0x12,
  HAL_SWPMI_STATE_BUSY_RX = 0x22,
  HAL_SWPMI_STATE_BUSY_TX_RX = 0x32,
  HAL_SWPMI_STATE_TIMEOUT = 0x03,
  HAL_SWPMI_STATE_ERROR = 0x04
} HAL_SWPMI_StateTypeDef;

/**
  * @brief  SWPMI handle Structure definition
  */



typedef struct

{
  SWPMI_TypeDef *Instance;

  SWPMI_InitTypeDef Init;

  const uint32_t *pTxBuffPtr;

  uint32_t TxXferSize;

  uint32_t TxXferCount;

  uint32_t *pRxBuffPtr;

  uint32_t RxXferSize;

  uint32_t RxXferCount;

  DMA_HandleTypeDef *hdmatx;

  DMA_HandleTypeDef *hdmarx;

  HAL_LockTypeDef Lock;

  volatile HAL_SWPMI_StateTypeDef State;

  volatile uint32_t ErrorCode;
# 127 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h"
} SWPMI_HandleTypeDef;
# 150 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup SWPMI_Exported_Constants SWPMI Exported Constants
  * @{
  */

/**
  * @defgroup SWPMI_Error_Code SWPMI Error Code Bitmap
  * @{
  */
# 174 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h"
/**
  * @}
  */

/** @defgroup SWPMI_Voltage_Class SWPMI Voltage Class
  * @{
  */


/**
  * @}
  */

/** @defgroup SWPMI_Tx_Buffering_Mode SWPMI Tx Buffering Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup SWPMI_Rx_Buffering_Mode SWPMI Rx Buffering Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup SWPMI_Flags SWPMI Status Flags
  *        Elements values convention: 0xXXXXXXXX
  *           - 0xXXXXXXXX  : Flag mask in the ISR register
  * @{
  */
# 224 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h"
/**
  * @}
  */

/** @defgroup SWPMI_Interrupt_definition SWPMI Interrupts Definition
  *        Elements values convention: 0xXXXX
  *           - 0xXXXX  : Flag mask in the IER register
  * @{
  */
# 243 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup SWPMI_Exported_Macros SWPMI Exported Macros
  * @{
  */

/** @brief Reset SWPMI handle state.
  * @param  __HANDLE__ specifies the SWPMI Handle.
  * @retval None
  */
# 270 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h"
/**
  * @brief  Enable the SWPMI peripheral.
  * @param  __HANDLE__ SWPMI handle
  * @retval None
  */


/**
  * @brief  Disable the SWPMI peripheral.
  * @param  __HANDLE__ SWPMI handle
  * @retval None
  */


/**
  * @brief  Enable the SWPMI transceiver.
  * @param  __HANDLE__ SWPMI handle
  * @retval None
  */


/**
  * @brief  Disable the SWPMI transceiver.
  * @param  __HANDLE__ SWPMI handle
  * @retval None
  */


/** @brief  Check whether the specified SWPMI flag is set or not.
  * @param  __HANDLE__ specifies the SWPMI Handle.
  * @param  __FLAG__ specifies the flag to check.
  *        This parameter can be one of the following values:
  *            @arg SWPMI_FLAG_RXBFF  Receive buffer full flag.
  *            @arg SWPMI_FLAG_TXBEF  Transmit buffer empty flag.
  *            @arg SWPMI_FLAG_RXBERF  Receive CRC error flag.
  *            @arg SWPMI_FLAG_RXOVRF  Receive overrun error flag.
  *            @arg SWPMI_FLAG_TXUNRF  Transmit underrun error flag.
  *            @arg SWPMI_FLAG_RXNE  Receive data register not empty.
  *            @arg SWPMI_FLAG_TXE  Transmit data register empty.
  *            @arg SWPMI_FLAG_TCF  Transfer complete flag.
  *            @arg SWPMI_FLAG_SRF  Slave resume flag.
  *            @arg SWPMI_FLAG_SUSP  SUSPEND flag.
  *            @arg SWPMI_FLAG_DEACTF  DEACTIVATED flag.
  *            @arg SWPMI_FLAG_RDYF  Transceiver ready flag.
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */


/** @brief  Clear the specified SWPMI ISR flag.
  * @param  __HANDLE__ specifies the SWPMI Handle.
  * @param  __FLAG__ specifies the flag to clear.
  *        This parameter can be one of the following values:
  *            @arg SWPMI_FLAG_RXBFF  Receive buffer full flag.
  *            @arg SWPMI_FLAG_TXBEF  Transmit buffer empty flag.
  *            @arg SWPMI_FLAG_RXBERF  Receive CRC error flag.
  *            @arg SWPMI_FLAG_RXOVRF  Receive overrun error flag.
  *            @arg SWPMI_FLAG_TXUNRF  Transmit underrun error flag.
  *            @arg SWPMI_FLAG_TCF  Transfer complete flag.
  *            @arg SWPMI_FLAG_SRF  Slave resume flag.
  *            @arg SWPMI_FLAG_RDYF  Transceiver ready flag.
  * @retval None
  */


/** @brief  Enable the specified SWPMI interrupt.
  * @param  __HANDLE__ specifies the SWPMI Handle.
  * @param  __INTERRUPT__ specifies the SWPMI interrupt source to enable.
  *          This parameter can be one of the following values:
  *            @arg SWPMI_IT_RDYIE  Transceiver ready interrupt.
  *            @arg SWPMI_IT_SRIE  Slave resume interrupt.
  *            @arg SWPMI_IT_TCIE  Transmit complete interrupt.
  *            @arg SWPMI_IT_TIE   Transmit interrupt.
  *            @arg SWPMI_IT_RIE   Receive interrupt.
  *            @arg SWPMI_IT_TXUNRIE  Transmit underrun error interrupt.
  *            @arg SWPMI_IT_RXOVRIE  Receive overrun error interrupt.
  *            @arg SWPMI_IT_RXBEIE  Receive CRC error interrupt.
  *            @arg SWPMI_IT_TXBEIE   Transmit buffer empty interrupt.
  *            @arg SWPMI_IT_RXBFIE   Receive buffer full interrupt.
  * @retval None
  */


/** @brief  Disable the specified SWPMI interrupt.
  * @param  __HANDLE__ specifies the SWPMI Handle.
  * @param  __INTERRUPT__ specifies the SWPMI interrupt source to disable.
  *          This parameter can be one of the following values:
  *            @arg SWPMI_IT_RDYIE  Transceiver ready interrupt.
  *            @arg SWPMI_IT_SRIE  Slave resume interrupt.
  *            @arg SWPMI_IT_TCIE  Transmit complete interrupt.
  *            @arg SWPMI_IT_TIE   Transmit interrupt.
  *            @arg SWPMI_IT_RIE   Receive interrupt.
  *            @arg SWPMI_IT_TXUNRIE  Transmit underrun error interrupt.
  *            @arg SWPMI_IT_RXOVRIE  Receive overrun error interrupt.
  *            @arg SWPMI_IT_RXBEIE  Receive CRC error interrupt.
  *            @arg SWPMI_IT_TXBEIE   Transmit buffer empty interrupt.
  *            @arg SWPMI_IT_RXBFIE   Receive buffer full interrupt.
  * @retval None
  */


/** @brief  Check whether the specified SWPMI interrupt has occurred or not.
  * @param  __HANDLE__ specifies the SWPMI Handle.
  * @param  __IT__ specifies the SWPMI interrupt to check.
  *          This parameter can be one of the following values:
  *            @arg SWPMI_IT_RDYIE  Transceiver ready interrupt.
  *            @arg SWPMI_IT_SRIE  Slave resume interrupt.
  *            @arg SWPMI_IT_TCIE  Transmit complete interrupt.
  *            @arg SWPMI_IT_TIE   Transmit interrupt.
  *            @arg SWPMI_IT_RIE   Receive interrupt.
  *            @arg SWPMI_IT_TXUNRIE  Transmit underrun error interrupt.
  *            @arg SWPMI_IT_RXOVRIE  Receive overrun error interrupt.
  *            @arg SWPMI_IT_RXBERIE  Receive CRC error interrupt.
  *            @arg SWPMI_IT_TXBEIE   Transmit buffer empty interrupt.
  *            @arg SWPMI_IT_RXBFIE   Receive buffer full interrupt.
  * @retval The new state of __IT__ (TRUE or FALSE).
  */


/** @brief  Check whether the specified SWPMI interrupt source is enabled or not.
  * @param  __HANDLE__ specifies the SWPMI Handle.
  * @param  __IT__ specifies the SWPMI interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg SWPMI_IT_RDYIE  Transceiver ready interrupt.
  *            @arg SWPMI_IT_SRIE  Slave resume interrupt.
  *            @arg SWPMI_IT_TCIE  Transmit complete interrupt.
  *            @arg SWPMI_IT_TIE   Transmit interrupt.
  *            @arg SWPMI_IT_RIE   Receive interrupt.
  *            @arg SWPMI_IT_TXUNRIE  Transmit underrun error interrupt.
  *            @arg SWPMI_IT_RXOVRIE  Receive overrun error interrupt.
  *            @arg SWPMI_IT_RXBERIE  Receive CRC error interrupt.
  *            @arg SWPMI_IT_TXBEIE   Transmit buffer empty interrupt.
  *            @arg SWPMI_IT_RXBFIE   Receive buffer full interrupt.
  * @retval The new state of __IT__ (TRUE or FALSE).
  */



/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup SWPMI_Exported_Functions SWPMI Exported Functions
  * @{
  */
/* Initialization/de-initialization functions  ********************************/
HAL_StatusTypeDef HAL_SWPMI_Init(SWPMI_HandleTypeDef *hswpmi);
HAL_StatusTypeDef HAL_SWPMI_DeInit(SWPMI_HandleTypeDef *hswpmi);
void HAL_SWPMI_MspInit(SWPMI_HandleTypeDef *hswpmi);
void HAL_SWPMI_MspDeInit(SWPMI_HandleTypeDef *hswpmi);
# 430 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h"
/* IO operation functions *****************************************************/
HAL_StatusTypeDef HAL_SWPMI_Transmit(SWPMI_HandleTypeDef *hswpmi, const uint32_t *pData, uint16_t Size,
                                     uint32_t Timeout);
HAL_StatusTypeDef HAL_SWPMI_Receive(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SWPMI_Transmit_IT(SWPMI_HandleTypeDef *hswpmi, const uint32_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SWPMI_Receive_IT(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SWPMI_Transmit_DMA(SWPMI_HandleTypeDef *hswpmi, const uint32_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SWPMI_Receive_DMA(SWPMI_HandleTypeDef *hswpmi, uint32_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SWPMI_DMAStop(SWPMI_HandleTypeDef *hswpmi);
HAL_StatusTypeDef HAL_SWPMI_EnableLoopback(SWPMI_HandleTypeDef *hswpmi);
HAL_StatusTypeDef HAL_SWPMI_DisableLoopback(SWPMI_HandleTypeDef *hswpmi);
void HAL_SWPMI_IRQHandler(SWPMI_HandleTypeDef *hswpmi);
void HAL_SWPMI_TxCpltCallback(SWPMI_HandleTypeDef *hswpmi);
void HAL_SWPMI_TxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi);
void HAL_SWPMI_RxCpltCallback(SWPMI_HandleTypeDef *hswpmi);
void HAL_SWPMI_RxHalfCpltCallback(SWPMI_HandleTypeDef *hswpmi);
void HAL_SWPMI_ErrorCallback(SWPMI_HandleTypeDef *hswpmi);

/* Peripheral Control and State functions  ************************************/
HAL_SWPMI_StateTypeDef HAL_SWPMI_GetState(const SWPMI_HandleTypeDef *hswpmi);
uint32_t HAL_SWPMI_GetError(const SWPMI_HandleTypeDef *hswpmi);

/**
  * @}
  */

/* Private types -------------------------------------------------------------*/
/** @defgroup SWPMI_Private_Types SWPMI Private Types
  * @{
  */

/**
  * @}
  */

/* Private variables ---------------------------------------------------------*/
/** @defgroup SWPMI_Private_Variables SWPMI Private Variables
  * @{
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup SWPMI_Private_Constants SWPMI Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup SWPMI_Private_Macros SWPMI Private Macros
  * @{
  */
# 502 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_swpmi.h"
/**
  * @}
  */

/**
  * @}
  */


/**
  * @}
  */


}
# 463 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_tim.h
  * @author  MCD Application Team
  * @brief   Header file of TIM HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup TIM
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup TIM_Exported_Types TIM Exported Types
  * @{
  */

/**
  * @brief  TIM Time base Configuration Structure definition
  */
typedef struct
{
  uint32_t Prescaler; /*!< Specifies the prescaler value used to divide the TIM clock.
                                   This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF */

  uint32_t CounterMode; /*!< Specifies the counter mode.
                                   This parameter can be a value of @ref TIM_Counter_Mode */

  uint32_t Period; /*!< Specifies the period value to be loaded into the active
                                   Auto-Reload Register at the next update event.
                                   This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF.  */

  uint32_t ClockDivision; /*!< Specifies the clock division.
                                   This parameter can be a value of @ref TIM_ClockDivision */

  uint32_t RepetitionCounter; /*!< Specifies the repetition counter value. Each time the RCR downcounter
                                    reaches zero, an update event is generated and counting restarts
                                    from the RCR value (N).
                                    This means in PWM mode that (N+1) corresponds to:
                                        - the number of PWM periods in edge-aligned mode
                                        - the number of half PWM period in center-aligned mode
                                     GP timers: this parameter must be a number between Min_Data = 0x00 and
                                     Max_Data = 0xFF.
                                     Advanced timers: this parameter must be a number between Min_Data = 0x0000 and
                                     Max_Data = 0xFFFF. */

  uint32_t AutoReloadPreload; /*!< Specifies the auto-reload preload.
                                   This parameter can be a value of @ref TIM_AutoReloadPreload */
} TIM_Base_InitTypeDef;

/**
  * @brief  TIM Output Compare Configuration Structure definition
  */
typedef struct
{
  uint32_t OCMode; /*!< Specifies the TIM mode.
                               This parameter can be a value of @ref TIM_Output_Compare_and_PWM_modes */

  uint32_t Pulse; /*!< Specifies the pulse value to be loaded into the Capture Compare Register.
                               This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF */

  uint32_t OCPolarity; /*!< Specifies the output polarity.
                               This parameter can be a value of @ref TIM_Output_Compare_Polarity */

  uint32_t OCNPolarity; /*!< Specifies the complementary output polarity.
                               This parameter can be a value of @ref TIM_Output_Compare_N_Polarity
                               @note This parameter is valid only for timer instances supporting break feature. */

  uint32_t OCFastMode; /*!< Specifies the Fast mode state.
                               This parameter can be a value of @ref TIM_Output_Fast_State
                               @note This parameter is valid only in PWM1 and PWM2 mode. */


  uint32_t OCIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state.
                               This parameter can be a value of @ref TIM_Output_Compare_Idle_State
                               @note This parameter is valid only for timer instances supporting break feature. */

  uint32_t OCNIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state.
                               This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State
                               @note This parameter is valid only for timer instances supporting break feature. */
} TIM_OC_InitTypeDef;

/**
  * @brief  TIM One Pulse Mode Configuration Structure definition
  */
typedef struct
{
  uint32_t OCMode; /*!< Specifies the TIM mode.
                               This parameter can be a value of @ref TIM_Output_Compare_and_PWM_modes */

  uint32_t Pulse; /*!< Specifies the pulse value to be loaded into the Capture Compare Register.
                               This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF */

  uint32_t OCPolarity; /*!< Specifies the output polarity.
                               This parameter can be a value of @ref TIM_Output_Compare_Polarity */

  uint32_t OCNPolarity; /*!< Specifies the complementary output polarity.
                               This parameter can be a value of @ref TIM_Output_Compare_N_Polarity
                               @note This parameter is valid only for timer instances supporting break feature. */

  uint32_t OCIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state.
                               This parameter can be a value of @ref TIM_Output_Compare_Idle_State
                               @note This parameter is valid only for timer instances supporting break feature. */

  uint32_t OCNIdleState; /*!< Specifies the TIM Output Compare pin state during Idle state.
                               This parameter can be a value of @ref TIM_Output_Compare_N_Idle_State
                               @note This parameter is valid only for timer instances supporting break feature. */

  uint32_t ICPolarity; /*!< Specifies the active edge of the input signal.
                               This parameter can be a value of @ref TIM_Input_Capture_Polarity */

  uint32_t ICSelection; /*!< Specifies the input.
                              This parameter can be a value of @ref TIM_Input_Capture_Selection */

  uint32_t ICFilter; /*!< Specifies the input capture filter.
                              This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
} TIM_OnePulse_InitTypeDef;

/**
  * @brief  TIM Input Capture Configuration Structure definition
  */
typedef struct
{
  uint32_t ICPolarity; /*!< Specifies the active edge of the input signal.
                              This parameter can be a value of @ref TIM_Input_Capture_Polarity */

  uint32_t ICSelection; /*!< Specifies the input.
                              This parameter can be a value of @ref TIM_Input_Capture_Selection */

  uint32_t ICPrescaler; /*!< Specifies the Input Capture Prescaler.
                              This parameter can be a value of @ref TIM_Input_Capture_Prescaler */

  uint32_t ICFilter; /*!< Specifies the input capture filter.
                              This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
} TIM_IC_InitTypeDef;

/**
  * @brief  TIM Encoder Configuration Structure definition
  */
typedef struct
{
  uint32_t EncoderMode; /*!< Specifies the active edge of the input signal.
                               This parameter can be a value of @ref TIM_Encoder_Mode */

  uint32_t IC1Polarity; /*!< Specifies the active edge of the input signal.
                               This parameter can be a value of @ref TIM_Encoder_Input_Polarity */

  uint32_t IC1Selection; /*!< Specifies the input.
                               This parameter can be a value of @ref TIM_Input_Capture_Selection */

  uint32_t IC1Prescaler; /*!< Specifies the Input Capture Prescaler.
                               This parameter can be a value of @ref TIM_Input_Capture_Prescaler */

  uint32_t IC1Filter; /*!< Specifies the input capture filter.
                               This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */

  uint32_t IC2Polarity; /*!< Specifies the active edge of the input signal.
                               This parameter can be a value of @ref TIM_Encoder_Input_Polarity */

  uint32_t IC2Selection; /*!< Specifies the input.
                              This parameter can be a value of @ref TIM_Input_Capture_Selection */

  uint32_t IC2Prescaler; /*!< Specifies the Input Capture Prescaler.
                               This parameter can be a value of @ref TIM_Input_Capture_Prescaler */

  uint32_t IC2Filter; /*!< Specifies the input capture filter.
                               This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
} TIM_Encoder_InitTypeDef;

/**
  * @brief  Clock Configuration Handle Structure definition
  */
typedef struct
{
  uint32_t ClockSource; /*!< TIM clock sources
                                 This parameter can be a value of @ref TIM_Clock_Source */
  uint32_t ClockPolarity; /*!< TIM clock polarity
                                 This parameter can be a value of @ref TIM_Clock_Polarity */
  uint32_t ClockPrescaler; /*!< TIM clock prescaler
                                 This parameter can be a value of @ref TIM_Clock_Prescaler */
  uint32_t ClockFilter; /*!< TIM clock filter
                                 This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
} TIM_ClockConfigTypeDef;

/**
  * @brief  TIM Clear Input Configuration Handle Structure definition
  */
typedef struct
{
  uint32_t ClearInputState; /*!< TIM clear Input state
                                      This parameter can be ENABLE or DISABLE */
  uint32_t ClearInputSource; /*!< TIM clear Input sources
                                      This parameter can be a value of @ref TIM_ClearInput_Source */
  uint32_t ClearInputPolarity; /*!< TIM Clear Input polarity
                                      This parameter can be a value of @ref TIM_ClearInput_Polarity */
  uint32_t ClearInputPrescaler; /*!< TIM Clear Input prescaler
                                      This parameter must be 0: When OCRef clear feature is used with ETR source,
                                      ETR prescaler must be off */
  uint32_t ClearInputFilter; /*!< TIM Clear Input filter
                                      This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
} TIM_ClearInputConfigTypeDef;

/**
  * @brief  TIM Master configuration Structure definition
  * @note   Advanced timers provide TRGO2 internal line which is redirected
  *         to the ADC
  */
typedef struct
{
  uint32_t MasterOutputTrigger; /*!< Trigger output (TRGO) selection
                                        This parameter can be a value of @ref TIM_Master_Mode_Selection */
  uint32_t MasterOutputTrigger2; /*!< Trigger output2 (TRGO2) selection
                                        This parameter can be a value of @ref TIM_Master_Mode_Selection_2 */
  uint32_t MasterSlaveMode; /*!< Master/slave mode selection
                                        This parameter can be a value of @ref TIM_Master_Slave_Mode
                                        @note When the Master/slave mode is enabled, the effect of
                                        an event on the trigger input (TRGI) is delayed to allow a
                                        perfect synchronization between the current timer and its
                                        slaves (through TRGO). It is not mandatory in case of timer
                                        synchronization mode. */
} TIM_MasterConfigTypeDef;

/**
  * @brief  TIM Slave configuration Structure definition
  */
typedef struct
{
  uint32_t SlaveMode; /*!< Slave mode selection
                                    This parameter can be a value of @ref TIM_Slave_Mode */
  uint32_t InputTrigger; /*!< Input Trigger source
                                    This parameter can be a value of @ref TIM_Trigger_Selection */
  uint32_t TriggerPolarity; /*!< Input Trigger polarity
                                    This parameter can be a value of @ref TIM_Trigger_Polarity */
  uint32_t TriggerPrescaler; /*!< Input trigger prescaler
                                    This parameter can be a value of @ref TIM_Trigger_Prescaler */
  uint32_t TriggerFilter; /*!< Input trigger filter
                                    This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF  */

} TIM_SlaveConfigTypeDef;

/**
  * @brief  TIM Break input(s) and Dead time configuration Structure definition
  * @note   2 break inputs can be configured (BKIN and BKIN2) with configurable
  *        filter and polarity.
  */
typedef struct
{
  uint32_t OffStateRunMode;

  uint32_t OffStateIDLEMode;

  uint32_t LockLevel;

  uint32_t DeadTime;

  uint32_t BreakState;

  uint32_t BreakPolarity;

  uint32_t BreakFilter;





  uint32_t Break2State;

  uint32_t Break2Polarity;

  uint32_t Break2Filter;





  uint32_t AutomaticOutput;

} TIM_BreakDeadTimeConfigTypeDef;

/**
  * @brief  HAL State structures definition
  */
typedef enum
{
  HAL_TIM_STATE_RESET = 0x00U,
  HAL_TIM_STATE_READY = 0x01U,
  HAL_TIM_STATE_BUSY = 0x02U,
  HAL_TIM_STATE_TIMEOUT = 0x03U,
  HAL_TIM_STATE_ERROR = 0x04U
} HAL_TIM_StateTypeDef;

/**
  * @brief  TIM Channel States definition
  */
typedef enum
{
  HAL_TIM_CHANNEL_STATE_RESET = 0x00U,
  HAL_TIM_CHANNEL_STATE_READY = 0x01U,
  HAL_TIM_CHANNEL_STATE_BUSY = 0x02U,
} HAL_TIM_ChannelStateTypeDef;

/**
  * @brief  DMA Burst States definition
  */
typedef enum
{
  HAL_DMA_BURST_STATE_RESET = 0x00U,
  HAL_DMA_BURST_STATE_READY = 0x01U,
  HAL_DMA_BURST_STATE_BUSY = 0x02U,
} HAL_TIM_DMABurstStateTypeDef;

/**
  * @brief  HAL Active channel structures definition
  */
typedef enum
{
  HAL_TIM_ACTIVE_CHANNEL_1 = 0x01U,
  HAL_TIM_ACTIVE_CHANNEL_2 = 0x02U,
  HAL_TIM_ACTIVE_CHANNEL_3 = 0x04U,
  HAL_TIM_ACTIVE_CHANNEL_4 = 0x08U,
  HAL_TIM_ACTIVE_CHANNEL_5 = 0x10U,
  HAL_TIM_ACTIVE_CHANNEL_6 = 0x20U,
  HAL_TIM_ACTIVE_CHANNEL_CLEARED = 0x00U
} HAL_TIM_ActiveChannel;

/**
  * @brief  TIM Time Base Handle Structure definition
  */



typedef struct

{
  TIM_TypeDef *Instance;
  TIM_Base_InitTypeDef Init;
  HAL_TIM_ActiveChannel Channel;
  DMA_HandleTypeDef *hdma[7]; /*!< DMA Handlers array
                                                             This array is accessed by a @ref DMA_Handle_index */
  HAL_LockTypeDef Lock;
  volatile HAL_TIM_StateTypeDef State;
  volatile HAL_TIM_ChannelStateTypeDef ChannelState[6];
  volatile HAL_TIM_ChannelStateTypeDef ChannelNState[4];
  volatile HAL_TIM_DMABurstStateTypeDef DMABurstState;
# 401 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
} TIM_HandleTypeDef;
# 446 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */
/* End of exported types -----------------------------------------------------*/

/* Exported constants --------------------------------------------------------*/
/** @defgroup TIM_Exported_Constants TIM Exported Constants
  * @{
  */

/** @defgroup TIM_ClearInput_Source TIM Clear Input Source
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_DMA_Base_address TIM DMA Base Address
  * @{
  */
# 496 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup TIM_Event_Source TIM Event Source
  * @{
  */
# 512 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup TIM_Input_Channel_Polarity TIM Input Channel polarity
  * @{
  */



/**
  * @}
  */

/** @defgroup TIM_ETR_Polarity TIM ETR Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_ETR_Prescaler TIM ETR Prescaler
  * @{
  */




/**
  * @}
  */

/** @defgroup TIM_Counter_Mode TIM Counter Mode
  * @{
  */





/**
  * @}
  */

/** @defgroup TIM_Update_Interrupt_Flag_Remap TIM Update Interrupt Flag Remap
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_ClockDivision TIM Clock Division
  * @{
  */



/**
  * @}
  */

/** @defgroup TIM_Output_Compare_State TIM Output Compare State
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_AutoReloadPreload TIM Auto-Reload Preload
  * @{
  */



/**
  * @}
  */

/** @defgroup TIM_Output_Fast_State TIM Output Fast State
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Output_Compare_N_State TIM Complementary Output Compare State
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Output_Compare_Polarity TIM Output Compare Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Output_Compare_N_Polarity TIM Complementary Output Compare Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Output_Compare_Idle_State TIM Output Compare Idle State
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Output_Compare_N_Idle_State TIM Complementary Output Compare Idle State
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Input_Capture_Polarity TIM Input Capture Polarity
  * @{
  */



/**
  * @}
  */

/** @defgroup TIM_Encoder_Input_Polarity TIM Encoder Input Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Input_Capture_Selection TIM Input Capture Selection
  * @{
  */



/**
  * @}
  */

/** @defgroup TIM_Input_Capture_Prescaler TIM Input Capture Prescaler
  * @{
  */




/**
  * @}
  */

/** @defgroup TIM_One_Pulse_Mode TIM One Pulse Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Encoder_Mode TIM Encoder Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup TIM_Interrupt_definition TIM interrupt Definition
  * @{
  */
# 720 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup TIM_Commutation_Source  TIM Commutation Source
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_DMA_sources TIM DMA Sources
  * @{
  */







/**
  * @}
  */

/** @defgroup TIM_CC_DMA_Request CCx DMA request selection
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Flag_definition TIM Flag Definition
  * @{
  */
# 775 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup TIM_Channel TIM Channel
  * @{
  */







/**
  * @}
  */

/** @defgroup TIM_Clock_Source TIM Clock Source
  * @{
  */
# 811 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup TIM_Clock_Polarity TIM Clock Polarity
  * @{
  */





/**
  * @}
  */

/** @defgroup TIM_Clock_Prescaler TIM Clock Prescaler
  * @{
  */




/**
  * @}
  */

/** @defgroup TIM_ClearInput_Polarity TIM Clear Input Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_ClearInput_Prescaler TIM Clear Input Prescaler
  * @{
  */




/**
  * @}
  */

/** @defgroup TIM_OSSR_Off_State_Selection_for_Run_mode_state TIM OSSR OffState Selection for Run mode state
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_OSSI_Off_State_Selection_for_Idle_mode_state TIM OSSI OffState Selection for Idle mode state
  * @{
  */


/**
  * @}
  */
/** @defgroup TIM_Lock_level  TIM Lock level
  * @{
  */




/**
  * @}
  */

/** @defgroup TIM_Break_Input_enable_disable TIM Break Input Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Break_Polarity TIM Break Input Polarity
  * @{
  */


/**
  * @}
  */
# 915 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/** @defgroup TIM_Break2_Input_enable_disable TIM Break input 2 Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Break2_Polarity TIM Break Input 2 Polarity
  * @{
  */


/**
  * @}
  */
# 944 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/** @defgroup TIM_AOE_Bit_Set_Reset TIM Automatic Output Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Group_Channel5 TIM Group Channel 5 and Channel 1, 2 or 3
  * @{
  */




/**
  * @}
  */

/** @defgroup TIM_Master_Mode_Selection TIM Master Mode Selection
  * @{
  */
# 975 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup TIM_Master_Mode_Selection_2 TIM Master Mode Selection 2 (TRGO2)
  * @{
  */
# 998 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup TIM_Master_Slave_Mode TIM Master/Slave Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_Slave_Mode TIM Slave mode
  * @{
  */






/**
  * @}
  */

/** @defgroup TIM_Output_Compare_and_PWM_modes TIM Output Compare and PWM Modes
  * @{
  */
# 1041 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup TIM_Trigger_Selection TIM Trigger Selection
  * @{
  */
# 1067 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup TIM_Trigger_Polarity TIM Trigger Polarity
  * @{
  */





/**
  * @}
  */

/** @defgroup TIM_Trigger_Prescaler TIM Trigger Prescaler
  * @{
  */




/**
  * @}
  */

/** @defgroup TIM_TI1_Selection TIM TI1 Input Selection
  * @{
  */


/**
  * @}
  */

/** @defgroup TIM_DMA_Burst_Length TIM DMA Burst Length
  * @{
  */
# 1124 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */

/** @defgroup DMA_Handle_index TIM DMA Handle Index
  * @{
  */







/**
  * @}
  */

/** @defgroup Channel_CC_State TIM Capture/Compare Channel State
  * @{
  */




/**
  * @}
  */

/** @defgroup TIM_Break_System TIM Break System
  * @{
  */




/**
  * @}
  */

/**
  * @}
  */
/* End of exported constants -------------------------------------------------*/

/* Exported macros -----------------------------------------------------------*/
/** @defgroup TIM_Exported_Macros TIM Exported Macros
  * @{
  */

/** @brief  Reset TIM handle state.
  * @param  __HANDLE__ TIM handle.
  * @retval None
  */
# 1224 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @brief  Enable the TIM peripheral.
  * @param  __HANDLE__ TIM handle
  * @retval None
  */


/**
  * @brief  Enable the TIM main Output.
  * @param  __HANDLE__ TIM handle
  * @retval None
  */


/**
  * @brief  Disable the TIM peripheral.
  * @param  __HANDLE__ TIM handle
  * @retval None
  */
# 1254 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @brief  Disable the TIM main Output.
  * @param  __HANDLE__ TIM handle
  * @retval None
  * @note The Main Output Enable of a timer instance is disabled only if all the CCx and CCxN channels have been
  *       disabled
  */
# 1272 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @brief  Disable the TIM main Output.
  * @param  __HANDLE__ TIM handle
  * @retval None
  * @note The Main Output Enable of a timer instance is disabled unconditionally
  */


/** @brief  Enable the specified TIM interrupt.
  * @param  __HANDLE__ specifies the TIM Handle.
  * @param  __INTERRUPT__ specifies the TIM interrupt source to enable.
  *          This parameter can be one of the following values:
  *            @arg TIM_IT_UPDATE: Update interrupt
  *            @arg TIM_IT_CC1:   Capture/Compare 1 interrupt
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
  *            @arg TIM_IT_COM:   Commutation interrupt
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
  *            @arg TIM_IT_BREAK: Break interrupt
  * @retval None
  */


/** @brief  Disable the specified TIM interrupt.
  * @param  __HANDLE__ specifies the TIM Handle.
  * @param  __INTERRUPT__ specifies the TIM interrupt source to disable.
  *          This parameter can be one of the following values:
  *            @arg TIM_IT_UPDATE: Update interrupt
  *            @arg TIM_IT_CC1:   Capture/Compare 1 interrupt
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
  *            @arg TIM_IT_COM:   Commutation interrupt
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
  *            @arg TIM_IT_BREAK: Break interrupt
  * @retval None
  */


/** @brief  Enable the specified DMA request.
  * @param  __HANDLE__ specifies the TIM Handle.
  * @param  __DMA__ specifies the TIM DMA request to enable.
  *          This parameter can be one of the following values:
  *            @arg TIM_DMA_UPDATE: Update DMA request
  *            @arg TIM_DMA_CC1:   Capture/Compare 1 DMA request
  *            @arg TIM_DMA_CC2:  Capture/Compare 2 DMA request
  *            @arg TIM_DMA_CC3:  Capture/Compare 3 DMA request
  *            @arg TIM_DMA_CC4:  Capture/Compare 4 DMA request
  *            @arg TIM_DMA_COM:   Commutation DMA request
  *            @arg TIM_DMA_TRIGGER: Trigger DMA request
  * @retval None
  */


/** @brief  Disable the specified DMA request.
  * @param  __HANDLE__ specifies the TIM Handle.
  * @param  __DMA__ specifies the TIM DMA request to disable.
  *          This parameter can be one of the following values:
  *            @arg TIM_DMA_UPDATE: Update DMA request
  *            @arg TIM_DMA_CC1:   Capture/Compare 1 DMA request
  *            @arg TIM_DMA_CC2:  Capture/Compare 2 DMA request
  *            @arg TIM_DMA_CC3:  Capture/Compare 3 DMA request
  *            @arg TIM_DMA_CC4:  Capture/Compare 4 DMA request
  *            @arg TIM_DMA_COM:   Commutation DMA request
  *            @arg TIM_DMA_TRIGGER: Trigger DMA request
  * @retval None
  */


/** @brief  Check whether the specified TIM interrupt flag is set or not.
  * @param  __HANDLE__ specifies the TIM Handle.
  * @param  __FLAG__ specifies the TIM interrupt flag to check.
  *        This parameter can be one of the following values:
  *            @arg TIM_FLAG_UPDATE: Update interrupt flag
  *            @arg TIM_FLAG_CC1: Capture/Compare 1 interrupt flag
  *            @arg TIM_FLAG_CC2: Capture/Compare 2 interrupt flag
  *            @arg TIM_FLAG_CC3: Capture/Compare 3 interrupt flag
  *            @arg TIM_FLAG_CC4: Capture/Compare 4 interrupt flag
  *            @arg TIM_FLAG_CC5: Compare 5 interrupt flag
  *            @arg TIM_FLAG_CC6: Compare 6 interrupt flag
  *            @arg TIM_FLAG_COM:  Commutation interrupt flag
  *            @arg TIM_FLAG_TRIGGER: Trigger interrupt flag
  *            @arg TIM_FLAG_BREAK: Break interrupt flag
  *            @arg TIM_FLAG_BREAK2: Break 2 interrupt flag
  *            @arg TIM_FLAG_SYSTEM_BREAK: System Break interrupt flag
  *            @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag
  *            @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag
  *            @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag
  *            @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */


/** @brief  Clear the specified TIM interrupt flag.
  * @param  __HANDLE__ specifies the TIM Handle.
  * @param  __FLAG__ specifies the TIM interrupt flag to clear.
  *        This parameter can be one of the following values:
  *            @arg TIM_FLAG_UPDATE: Update interrupt flag
  *            @arg TIM_FLAG_CC1: Capture/Compare 1 interrupt flag
  *            @arg TIM_FLAG_CC2: Capture/Compare 2 interrupt flag
  *            @arg TIM_FLAG_CC3: Capture/Compare 3 interrupt flag
  *            @arg TIM_FLAG_CC4: Capture/Compare 4 interrupt flag
  *            @arg TIM_FLAG_CC5: Compare 5 interrupt flag
  *            @arg TIM_FLAG_CC6: Compare 6 interrupt flag
  *            @arg TIM_FLAG_COM:  Commutation interrupt flag
  *            @arg TIM_FLAG_TRIGGER: Trigger interrupt flag
  *            @arg TIM_FLAG_BREAK: Break interrupt flag
  *            @arg TIM_FLAG_BREAK2: Break 2 interrupt flag
  *            @arg TIM_FLAG_SYSTEM_BREAK: System Break interrupt flag
  *            @arg TIM_FLAG_CC1OF: Capture/Compare 1 overcapture flag
  *            @arg TIM_FLAG_CC2OF: Capture/Compare 2 overcapture flag
  *            @arg TIM_FLAG_CC3OF: Capture/Compare 3 overcapture flag
  *            @arg TIM_FLAG_CC4OF: Capture/Compare 4 overcapture flag
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */


/**
  * @brief  Check whether the specified TIM interrupt source is enabled or not.
  * @param  __HANDLE__ TIM handle
  * @param  __INTERRUPT__ specifies the TIM interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg TIM_IT_UPDATE: Update interrupt
  *            @arg TIM_IT_CC1:   Capture/Compare 1 interrupt
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
  *            @arg TIM_IT_COM:   Commutation interrupt
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
  *            @arg TIM_IT_BREAK: Break interrupt
  * @retval The state of TIM_IT (SET or RESET).
  */



/** @brief Clear the TIM interrupt pending bits.
  * @param  __HANDLE__ TIM handle
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
  *          This parameter can be one of the following values:
  *            @arg TIM_IT_UPDATE: Update interrupt
  *            @arg TIM_IT_CC1:   Capture/Compare 1 interrupt
  *            @arg TIM_IT_CC2:  Capture/Compare 2 interrupt
  *            @arg TIM_IT_CC3:  Capture/Compare 3 interrupt
  *            @arg TIM_IT_CC4:  Capture/Compare 4 interrupt
  *            @arg TIM_IT_COM:   Commutation interrupt
  *            @arg TIM_IT_TRIGGER: Trigger interrupt
  *            @arg TIM_IT_BREAK: Break interrupt
  * @retval None
  */


/**
  * @brief  Force a continuous copy of the update interrupt flag (UIF) into the timer counter register (bit 31).
  * @note This allows both the counter value and a potential roll-over condition signalled by the UIFCPY flag to be read
  *       in an atomic way.
  * @param  __HANDLE__ TIM handle.
  * @retval None
mode.
  */


/**
  * @brief  Disable update interrupt flag (UIF) remapping.
  * @param  __HANDLE__ TIM handle.
  * @retval None
mode.
  */


/**
  * @brief  Get update interrupt flag (UIF) copy status.
  * @param  __COUNTER__ Counter value.
  * @retval The state of UIFCPY (TRUE or FALSE).
mode.
  */


/**
  * @brief  Indicates whether or not the TIM Counter is used as downcounter.
  * @param  __HANDLE__ TIM handle.
  * @retval False (Counter used as upcounter) or True (Counter used as downcounter)
  * @note This macro is particularly useful to get the counting mode when the timer operates in Center-aligned mode
  *       or Encoder mode.
  */


/**
  * @brief  Set the TIM Prescaler on runtime.
  * @param  __HANDLE__ TIM handle.
  * @param  __PRESC__ specifies the Prescaler new value.
  * @retval None
  */


/**
  * @brief  Set the TIM Counter Register value on runtime.
  * Note Please check if the bit 31 of CNT register is used as UIF copy or not, this may affect the counter range in
  *      case of 32 bits counter TIM instance.
  *      Bit 31 of CNT can be enabled/disabled using __HAL_TIM_UIFREMAP_ENABLE()/__HAL_TIM_UIFREMAP_DISABLE() macros.
  * @param  __HANDLE__ TIM handle.
  * @param  __COUNTER__ specifies the Counter register new value.
  * @retval None
  */


/**
  * @brief  Get the TIM Counter Register value on runtime.
  * @param  __HANDLE__ TIM handle.
  * @retval 16-bit or 32-bit value of the timer counter register (TIMx_CNT)
  */


/**
  * @brief  Set the TIM Autoreload Register value on runtime without calling another time any Init function.
  * @param  __HANDLE__ TIM handle.
  * @param  __AUTORELOAD__ specifies the Counter register new value.
  * @retval None
  */






/**
  * @brief  Get the TIM Autoreload Register value on runtime.
  * @param  __HANDLE__ TIM handle.
  * @retval 16-bit or 32-bit value of the timer auto-reload register(TIMx_ARR)
  */


/**
  * @brief  Set the TIM Clock Division value on runtime without calling another time any Init function.
  * @param  __HANDLE__ TIM handle.
  * @param  __CKD__ specifies the clock division value.
  *          This parameter can be one of the following value:
  *            @arg TIM_CLOCKDIVISION_DIV1: tDTS=tCK_INT
  *            @arg TIM_CLOCKDIVISION_DIV2: tDTS=2*tCK_INT
  *            @arg TIM_CLOCKDIVISION_DIV4: tDTS=4*tCK_INT
  * @retval None
  */







/**
  * @brief  Get the TIM Clock Division value on runtime.
  * @param  __HANDLE__ TIM handle.
  * @retval The clock division can be one of the following values:
  *            @arg TIM_CLOCKDIVISION_DIV1: tDTS=tCK_INT
  *            @arg TIM_CLOCKDIVISION_DIV2: tDTS=2*tCK_INT
  *            @arg TIM_CLOCKDIVISION_DIV4: tDTS=4*tCK_INT
  */


/**
  * @brief  Set the TIM Input Capture prescaler on runtime without calling another time HAL_TIM_IC_ConfigChannel()
  *         function.
  * @param  __HANDLE__ TIM handle.
  * @param  __CHANNEL__ TIM Channels to be configured.
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
  * @param  __ICPSC__ specifies the Input Capture4 prescaler new value.
  *          This parameter can be one of the following values:
  *            @arg TIM_ICPSC_DIV1: no prescaler
  *            @arg TIM_ICPSC_DIV2: capture is done once every 2 events
  *            @arg TIM_ICPSC_DIV4: capture is done once every 4 events
  *            @arg TIM_ICPSC_DIV8: capture is done once every 8 events
  * @retval None
  */






/**
  * @brief  Get the TIM Input Capture prescaler on runtime.
  * @param  __HANDLE__ TIM handle.
  * @param  __CHANNEL__ TIM Channels to be configured.
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: get input capture 1 prescaler value
  *            @arg TIM_CHANNEL_2: get input capture 2 prescaler value
  *            @arg TIM_CHANNEL_3: get input capture 3 prescaler value
  *            @arg TIM_CHANNEL_4: get input capture 4 prescaler value
  * @retval The input capture prescaler can be one of the following values:
  *            @arg TIM_ICPSC_DIV1: no prescaler
  *            @arg TIM_ICPSC_DIV2: capture is done once every 2 events
  *            @arg TIM_ICPSC_DIV4: capture is done once every 4 events
  *            @arg TIM_ICPSC_DIV8: capture is done once every 8 events
  */






/**
  * @brief  Set the TIM Capture Compare Register value on runtime without calling another time ConfigChannel function.
  * @param  __HANDLE__ TIM handle.
  * @param  __CHANNEL__ TIM Channels to be configured.
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
  *            @arg TIM_CHANNEL_5: TIM Channel 5 selected
  *            @arg TIM_CHANNEL_6: TIM Channel 6 selected
  * @param  __COMPARE__ specifies the Capture Compare register new value.
  * @retval None
  */
# 1598 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @brief  Get the TIM Capture Compare Register value on runtime.
  * @param  __HANDLE__ TIM handle.
  * @param  __CHANNEL__ TIM Channel associated with the capture compare register
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: get capture/compare 1 register value
  *            @arg TIM_CHANNEL_2: get capture/compare 2 register value
  *            @arg TIM_CHANNEL_3: get capture/compare 3 register value
  *            @arg TIM_CHANNEL_4: get capture/compare 4 register value
  *            @arg TIM_CHANNEL_5: get capture/compare 5 register value
  *            @arg TIM_CHANNEL_6: get capture/compare 6 register value
  * @retval 16-bit or 32-bit value of the capture/compare register (TIMx_CCRy)
  */
# 1619 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @brief  Set the TIM Output compare preload.
  * @param  __HANDLE__ TIM handle.
  * @param  __CHANNEL__ TIM Channels to be configured.
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
  *            @arg TIM_CHANNEL_5: TIM Channel 5 selected
  *            @arg TIM_CHANNEL_6: TIM Channel 6 selected
  * @retval None
  */
# 1640 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @brief  Reset the TIM Output compare preload.
  * @param  __HANDLE__ TIM handle.
  * @param  __CHANNEL__ TIM Channels to be configured.
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
  *            @arg TIM_CHANNEL_5: TIM Channel 5 selected
  *            @arg TIM_CHANNEL_6: TIM Channel 6 selected
  * @retval None
  */
# 1661 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @brief  Enable fast mode for a given channel.
  * @param  __HANDLE__ TIM handle.
  * @param  __CHANNEL__ TIM Channels to be configured.
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
  *            @arg TIM_CHANNEL_5: TIM Channel 5 selected
  *            @arg TIM_CHANNEL_6: TIM Channel 6 selected
  * @note  When fast mode is enabled an active edge on the trigger input acts
  *        like a compare match on CCx output. Delay to sample the trigger
  *        input and to activate CCx output is reduced to 3 clock cycles.
  * @note  Fast mode acts only if the channel is configured in PWM1 or PWM2 mode.
  * @retval None
  */
# 1686 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @brief  Disable fast mode for a given channel.
  * @param  __HANDLE__ TIM handle.
  * @param  __CHANNEL__ TIM Channels to be configured.
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
  *            @arg TIM_CHANNEL_5: TIM Channel 5 selected
  *            @arg TIM_CHANNEL_6: TIM Channel 6 selected
  * @note  When fast mode is disabled CCx output behaves normally depending
  *        on counter and CCRx values even when the trigger is ON. The minimum
  *        delay to activate CCx output when an active edge occurs on the
  *        trigger input is 5 clock cycles.
  * @retval None
  */
# 1711 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @brief  Set the Update Request Source (URS) bit of the TIMx_CR1 register.
  * @param  __HANDLE__ TIM handle.
  * @note  When the URS bit of the TIMx_CR1 register is set, only counter
  *        overflow/underflow generates an update interrupt or DMA request (if
  *        enabled)
  * @retval None
  */


/**
  * @brief  Reset the Update Request Source (URS) bit of the TIMx_CR1 register.
  * @param  __HANDLE__ TIM handle.
  * @note  When the URS bit of the TIMx_CR1 register is reset, any of the
  *        following events generate an update interrupt or DMA request (if
  *        enabled):
  *           _ Counter overflow underflow
  *           _ Setting the UG bit
  *           _ Update generation through the slave mode controller
  * @retval None
  */


/**
  * @brief  Set the TIM Capture x input polarity on runtime.
  * @param  __HANDLE__ TIM handle.
  * @param  __CHANNEL__ TIM Channels to be configured.
  *          This parameter can be one of the following values:
  *            @arg TIM_CHANNEL_1: TIM Channel 1 selected
  *            @arg TIM_CHANNEL_2: TIM Channel 2 selected
  *            @arg TIM_CHANNEL_3: TIM Channel 3 selected
  *            @arg TIM_CHANNEL_4: TIM Channel 4 selected
  * @param  __POLARITY__ Polarity for TIx source
  *            @arg TIM_INPUTCHANNELPOLARITY_RISING: Rising Edge
  *            @arg TIM_INPUTCHANNELPOLARITY_FALLING: Falling Edge
  *            @arg TIM_INPUTCHANNELPOLARITY_BOTHEDGE: Rising and Falling Edge
  * @retval None
  */






/** @brief  Select the Capture/compare DMA request source.
  * @param  __HANDLE__ specifies the TIM Handle.
  * @param  __CCDMA__ specifies Capture/compare DMA request source
  *          This parameter can be one of the following values:
  *            @arg TIM_CCDMAREQUEST_CC: CCx DMA request generated on Capture/Compare event
  *            @arg TIM_CCDMAREQUEST_UPDATE: CCx DMA request generated on Update event
  * @retval None
  */



/**
  * @}
  */
/* End of exported macros ----------------------------------------------------*/

/* Private constants ---------------------------------------------------------*/
/** @defgroup TIM_Private_Constants TIM Private Constants
  * @{
  */
/* The counter of a timer instance is disabled only if all the CCx and CCxN
   channels have been disabled */


/**
  * @}
  */
/* End of private constants --------------------------------------------------*/

/* Private macros ------------------------------------------------------------*/
/** @defgroup TIM_Private_Macros TIM Private Macros
  * @{
  */
# 2183 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h"
/**
  * @}
  */
/* End of private macros -----------------------------------------------------*/

/* Include TIM HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_tim_ex.h
  * @author  MCD Application Team
  * @brief   Header file of TIM HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup TIMEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup TIMEx_Exported_Types TIM Extended Exported Types
  * @{
  */

/**
  * @brief  TIM Hall sensor Configuration Structure definition
  */

typedef struct
{
  uint32_t IC1Polarity; /*!< Specifies the active edge of the input signal.
                                     This parameter can be a value of @ref TIM_Input_Capture_Polarity */

  uint32_t IC1Prescaler; /*!< Specifies the Input Capture Prescaler.
                                     This parameter can be a value of @ref TIM_Input_Capture_Prescaler */

  uint32_t IC1Filter; /*!< Specifies the input capture filter.
                                     This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */

  uint32_t Commutation_Delay; /*!< Specifies the pulse value to be loaded into the Capture Compare Register.
                                     This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF */
} TIM_HallSensor_InitTypeDef;


/**
  * @brief  TIM Break/Break2 input configuration
  */
typedef struct
{
  uint32_t Source; /*!< Specifies the source of the timer break input.
                                This parameter can be a value of @ref TIMEx_Break_Input_Source */
  uint32_t Enable; /*!< Specifies whether or not the break input source is enabled.
                                This parameter can be a value of @ref TIMEx_Break_Input_Source_Enable */
  uint32_t Polarity; /*!< Specifies the break input source polarity.
                                This parameter can be a value of @ref TIMEx_Break_Input_Source_Polarity
                                Not relevant when analog watchdog output of the DFSDM1 used as break input source */
} TIMEx_BreakInputConfigTypeDef;


/**
  * @}
  */
/* End of exported types -----------------------------------------------------*/

/* Exported constants --------------------------------------------------------*/
/** @defgroup TIMEx_Exported_Constants TIM Extended Exported Constants
  * @{
  */

/** @defgroup TIMEx_Remap TIM Extended Remapping
  * @{
  */
# 136 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim_ex.h"
/**
  * @}
  */


/** @defgroup TIMEx_Break_Input TIM Extended Break input
  * @{
  */


/**
  * @}
  */

/** @defgroup TIMEx_Break_Input_Source TIM Extended Break input source
  * @{
  */




/**
  * @}
  */

/** @defgroup TIMEx_Break_Input_Source_Enable TIM Extended Break input source enabling
  * @{
  */


/**
  * @}
  */

/** @defgroup TIMEx_Break_Input_Source_Polarity TIM Extended Break input polarity
  * @{
  */


/**
  * @}
  */


/** @defgroup TIMEx_Timer_Input_Selection TIM Extended Timer input selection
  * @{
  */
# 238 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim_ex.h"
/**
  * @}
  */

/**
  * @}
  */
/* End of exported constants -------------------------------------------------*/

/* Exported macro ------------------------------------------------------------*/
/** @defgroup TIMEx_Exported_Macros TIM Extended Exported Macros
  * @{
  */

/**
  * @}
  */
/* End of exported macro -----------------------------------------------------*/

/* Private macro -------------------------------------------------------------*/
/** @defgroup TIMEx_Private_Macros TIM Extended Private Macros
  * @{
  */
# 358 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim_ex.h"
/**
  * @}
  */
/* End of private macro ------------------------------------------------------*/

/* Exported functions --------------------------------------------------------*/
/** @addtogroup TIMEx_Exported_Functions TIM Extended Exported Functions
  * @{
  */

/** @addtogroup TIMEx_Exported_Functions_Group1 Extended Timer Hall Sensor functions
  *  @brief    Timer Hall Sensor functions
  * @{
  */
/*  Timer Hall Sensor functions  **********************************************/
HAL_StatusTypeDef HAL_TIMEx_HallSensor_Init(TIM_HandleTypeDef *htim, const TIM_HallSensor_InitTypeDef *sConfig);
HAL_StatusTypeDef HAL_TIMEx_HallSensor_DeInit(TIM_HandleTypeDef *htim);

void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef *htim);
void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef *htim);

/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop(TIM_HandleTypeDef *htim);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_IT(TIM_HandleTypeDef *htim);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length);
HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_DMA(TIM_HandleTypeDef *htim);
/**
  * @}
  */

/** @addtogroup TIMEx_Exported_Functions_Group2 Extended Timer Complementary Output Compare functions
  *  @brief   Timer Complementary Output Compare functions
  * @{
  */
/*  Timer Complementary Output Compare functions  *****************************/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIMEx_OCN_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIMEx_OCN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);

/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIMEx_OCN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);

/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_TIMEx_OCN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
                                          uint16_t Length);
HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
/**
  * @}
  */

/** @addtogroup TIMEx_Exported_Functions_Group3 Extended Timer Complementary PWM functions
  *  @brief    Timer Complementary PWM functions
  * @{
  */
/*  Timer Complementary PWM functions  ****************************************/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIMEx_PWMN_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);

/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
                                           uint16_t Length);
HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
/**
  * @}
  */

/** @addtogroup TIMEx_Exported_Functions_Group4 Extended Timer Complementary One Pulse functions
  *  @brief    Timer Complementary One Pulse functions
  * @{
  */
/*  Timer Complementary One Pulse functions  **********************************/
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel);

/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
/**
  * @}
  */

/** @addtogroup TIMEx_Exported_Functions_Group5 Extended Peripheral Control functions
  *  @brief    Peripheral Control functions
  * @{
  */
/* Extended Control functions  ************************************************/
HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent(TIM_HandleTypeDef *htim, uint32_t InputTrigger,
                                              uint32_t CommutationSource);
HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_IT(TIM_HandleTypeDef *htim, uint32_t InputTrigger,
                                                 uint32_t CommutationSource);
HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_DMA(TIM_HandleTypeDef *htim, uint32_t InputTrigger,
                                                  uint32_t CommutationSource);
HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim,
                                                        const TIM_MasterConfigTypeDef *sMasterConfig);
HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef *htim,
                                                const TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig);

HAL_StatusTypeDef HAL_TIMEx_ConfigBreakInput(TIM_HandleTypeDef *htim, uint32_t BreakInput,
                                             const TIMEx_BreakInputConfigTypeDef *sBreakInputConfig);

HAL_StatusTypeDef HAL_TIMEx_GroupChannel5(TIM_HandleTypeDef *htim, uint32_t Channels);
HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap);
HAL_StatusTypeDef HAL_TIMEx_TISelection(TIM_HandleTypeDef *htim, uint32_t TISelection, uint32_t Channel);





/**
  * @}
  */

/** @addtogroup TIMEx_Exported_Functions_Group6 Extended Callbacks functions
  * @brief    Extended Callbacks functions
  * @{
  */
/* Extended Callback **********************************************************/
void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim);
void HAL_TIMEx_CommutHalfCpltCallback(TIM_HandleTypeDef *htim);
void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim);
void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim);
/**
  * @}
  */

/** @addtogroup TIMEx_Exported_Functions_Group7 Extended Peripheral State functions
  * @brief    Extended Peripheral State functions
  * @{
  */
/* Extended Peripheral State functions  ***************************************/
HAL_TIM_StateTypeDef HAL_TIMEx_HallSensor_GetState(const TIM_HandleTypeDef *htim);
HAL_TIM_ChannelStateTypeDef HAL_TIMEx_GetChannelNState(const TIM_HandleTypeDef *htim, uint32_t ChannelN);
/**
  * @}
  */

/**
  * @}
  */
/* End of exported functions -------------------------------------------------*/

/* Private functions----------------------------------------------------------*/
/** @addtogroup TIMEx_Private_Functions TIM Extended Private Functions
  * @{
  */
void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma);
void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma);
/**
  * @}
  */
/* End of private functions --------------------------------------------------*/

/**
  * @}
  */

/**
  * @}
  */


}
# 2190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_tim.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup TIM_Exported_Functions TIM Exported Functions
  * @{
  */

/** @addtogroup TIM_Exported_Functions_Group1 TIM Time Base functions
  *  @brief   Time Base functions
  * @{
  */
/* Time Base functions ********************************************************/
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim);
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim);
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim);
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length);
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim);
/**
  * @}
  */

/** @addtogroup TIM_Exported_Functions_Group2 TIM Output Compare functions
  *  @brief   TIM Output Compare functions
  * @{
  */
/* Timer Output Compare functions *********************************************/
HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim);
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim);
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim);
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
                                       uint16_t Length);
HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
/**
  * @}
  */

/** @addtogroup TIM_Exported_Functions_Group3 TIM PWM functions
  *  @brief   TIM PWM functions
  * @{
  */
/* Timer PWM functions ********************************************************/
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim);
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim);
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim);
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
                                        uint16_t Length);
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
/**
  * @}
  */

/** @addtogroup TIM_Exported_Functions_Group4 TIM Input Capture functions
  *  @brief   TIM Input Capture functions
  * @{
  */
/* Timer Input Capture functions **********************************************/
HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim);
HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim);
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim);
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim);
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
/**
  * @}
  */

/** @addtogroup TIM_Exported_Functions_Group5 TIM One Pulse functions
  *  @brief   TIM One Pulse functions
  * @{
  */
/* Timer One Pulse functions **************************************************/
HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode);
HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim);
void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim);
void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim);
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
/**
  * @}
  */

/** @addtogroup TIM_Exported_Functions_Group6 TIM Encoder functions
  *  @brief   TIM Encoder functions
  * @{
  */
/* Timer Encoder functions ****************************************************/
HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig);
HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim);
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim);
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim);
/* Blocking mode: Polling */
HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
/* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
/* Non-Blocking mode: DMA */
HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1,
                                            uint32_t *pData2, uint16_t Length);
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
/**
  * @}
  */

/** @addtogroup TIM_Exported_Functions_Group7 TIM IRQ handler management
  *  @brief   IRQ handler management
  * @{
  */
/* Interrupt Handler functions  ***********************************************/
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim);
/**
  * @}
  */

/** @defgroup TIM_Exported_Functions_Group8 TIM Peripheral Control functions
  *  @brief   Peripheral Control functions
  * @{
  */
/* Control functions  *********************************************************/
HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig,
                                           uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig,
                                            uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig,
                                           uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig,
                                                 uint32_t OutputChannel, uint32_t InputChannel);
HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim,
                                           const TIM_ClearInputConfigTypeDef *sClearInputConfig,
                                           uint32_t Channel);
HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig);
HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection);
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig);
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig);
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
                                              uint32_t BurstRequestSrc, const uint32_t *BurstBuffer,
                                              uint32_t BurstLength);
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
                                                   uint32_t BurstRequestSrc, const uint32_t *BurstBuffer,
                                                   uint32_t BurstLength, uint32_t DataLength);
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
                                             uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength);
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
                                                  uint32_t BurstRequestSrc, uint32_t *BurstBuffer,
                                                  uint32_t BurstLength, uint32_t DataLength);
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource);
uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel);
/**
  * @}
  */

/** @defgroup TIM_Exported_Functions_Group9 TIM Callbacks functions
  *  @brief   TIM Callbacks functions
  * @{
  */
/* Callback in non blocking modes (Interrupt and DMA) *************************/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim);
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim);

/* Callbacks Register/UnRegister functions  ***********************************/






/**
  * @}
  */

/** @defgroup TIM_Exported_Functions_Group10 TIM Peripheral State functions
  *  @brief  Peripheral State functions
  * @{
  */
/* Peripheral State functions  ************************************************/
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(const TIM_HandleTypeDef *htim);
HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(const TIM_HandleTypeDef *htim);
HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(const TIM_HandleTypeDef *htim);
HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(const TIM_HandleTypeDef *htim);
HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(const TIM_HandleTypeDef *htim);
HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(const TIM_HandleTypeDef *htim);

/* Peripheral Channel state functions  ************************************************/
HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(const TIM_HandleTypeDef *htim);
HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(const TIM_HandleTypeDef *htim, uint32_t Channel);
HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(const TIM_HandleTypeDef *htim);
/**
  * @}
  */

/**
  * @}
  */
/* End of exported functions -------------------------------------------------*/

/* Private functions----------------------------------------------------------*/
/** @defgroup TIM_Private_Functions TIM Private Functions
  * @{
  */
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure);
void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter);
void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config);
void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler,
                       uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);

void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma);
void TIM_DMAError(DMA_HandleTypeDef *hdma);
void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma);
void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma);
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);





/**
  * @}
  */
/* End of private functions --------------------------------------------------*/

/**
  * @}
  */

/**
  * @}
  */


}
# 467 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_uart.h
  * @author  MCD Application Team
  * @brief   Header file of UART HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup UART
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup UART_Exported_Types UART Exported Types
  * @{
  */

/**
  * @brief UART Init Structure definition
  */
typedef struct
{
  uint32_t BaudRate; /*!< This member configures the UART communication baud rate.
                                         The baud rate register is computed using the following formula:
                                         LPUART:
                                         =======
                                         Baud Rate Register = ((256 * lpuart_ker_ckpres) / ((huart->Init.BaudRate)))
                                         where lpuart_ker_ck_pres is the UART input clock divided by a prescaler
                                         UART:
                                         =====
                                         - If oversampling is 16 or in LIN mode,
                                            Baud Rate Register = ((uart_ker_ckpres) / ((huart->Init.BaudRate)))
                                         - If oversampling is 8,
                                            Baud Rate Register[15:4] = ((2 * uart_ker_ckpres) /
                                            ((huart->Init.BaudRate)))[15:4]
                                            Baud Rate Register[3] =  0
                                            Baud Rate Register[2:0] =  (((2 * uart_ker_ckpres) /
                                            ((huart->Init.BaudRate)))[3:0]) >> 1
                                         where uart_ker_ck_pres is the UART input clock divided by a prescaler */

  uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
                                         This parameter can be a value of @ref UARTEx_Word_Length. */

  uint32_t StopBits; /*!< Specifies the number of stop bits transmitted.
                                         This parameter can be a value of @ref UART_Stop_Bits. */

  uint32_t Parity; /*!< Specifies the parity mode.
                                         This parameter can be a value of @ref UART_Parity
                                         @note When parity is enabled, the computed parity is inserted
                                               at the MSB position of the transmitted data (9th bit when
                                               the word length is set to 9 data bits; 8th bit when the
                                               word length is set to 8 data bits). */

  uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
                                         This parameter can be a value of @ref UART_Mode. */

  uint32_t HwFlowCtl; /*!< Specifies whether the hardware flow control mode is enabled
                                         or disabled.
                                         This parameter can be a value of @ref UART_Hardware_Flow_Control. */

  uint32_t OverSampling; /*!< Specifies whether the Over sampling 8 is enabled or disabled,
                                         to achieve higher speed (up to f_PCLK/8).
                                         This parameter can be a value of @ref UART_Over_Sampling. */

  uint32_t OneBitSampling; /*!< Specifies whether a single sample or three samples' majority vote is selected.
                                         Selecting the single sample method increases the receiver tolerance to clock
                                         deviations. This parameter can be a value of @ref UART_OneBit_Sampling. */

  uint32_t ClockPrescaler; /*!< Specifies the prescaler value used to divide the UART clock source.
                                         This parameter can be a value of @ref UART_ClockPrescaler. */

} UART_InitTypeDef;

/**
  * @brief  UART Advanced Features initialization structure definition
  */
typedef struct
{
  uint32_t AdvFeatureInit; /*!< Specifies which advanced UART features is initialized. Several
                                       Advanced Features may be initialized at the same time .
                                       This parameter can be a value of
                                       @ref UART_Advanced_Features_Initialization_Type. */

  uint32_t TxPinLevelInvert; /*!< Specifies whether the TX pin active level is inverted.
                                       This parameter can be a value of @ref UART_Tx_Inv. */

  uint32_t RxPinLevelInvert; /*!< Specifies whether the RX pin active level is inverted.
                                       This parameter can be a value of @ref UART_Rx_Inv. */

  uint32_t DataInvert; /*!< Specifies whether data are inverted (positive/direct logic
                                       vs negative/inverted logic).
                                       This parameter can be a value of @ref UART_Data_Inv. */

  uint32_t Swap; /*!< Specifies whether TX and RX pins are swapped.
                                       This parameter can be a value of @ref UART_Rx_Tx_Swap. */

  uint32_t OverrunDisable; /*!< Specifies whether the reception overrun detection is disabled.
                                       This parameter can be a value of @ref UART_Overrun_Disable. */

  uint32_t DMADisableonRxError; /*!< Specifies whether the DMA is disabled in case of reception error.
                                       This parameter can be a value of @ref UART_DMA_Disable_on_Rx_Error. */

  uint32_t AutoBaudRateEnable; /*!< Specifies whether auto Baud rate detection is enabled.
                                       This parameter can be a value of @ref UART_AutoBaudRate_Enable. */

  uint32_t AutoBaudRateMode; /*!< If auto Baud rate detection is enabled, specifies how the rate
                                       detection is carried out.
                                       This parameter can be a value of @ref UART_AutoBaud_Rate_Mode. */

  uint32_t MSBFirst; /*!< Specifies whether MSB is sent first on UART line.
                                       This parameter can be a value of @ref UART_MSB_First. */
} UART_AdvFeatureInitTypeDef;

/**
  * @brief HAL UART State definition
  * @note  HAL UART State value is a combination of 2 different substates:
  *        gState and RxState (see @ref UART_State_Definition).
  *        - gState contains UART state information related to global Handle management
  *          and also information related to Tx operations.
  *          gState value coding follow below described bitmap :
  *          b7-b6  Error information
  *             00 : No Error
  *             01 : (Not Used)
  *             10 : Timeout
  *             11 : Error
  *          b5     Peripheral initialization status
  *             0  : Reset (Peripheral not initialized)
  *             1  : Init done (Peripheral initialized. HAL UART Init function already called)
  *          b4-b3  (not used)
  *             xx : Should be set to 00
  *          b2     Intrinsic process state
  *             0  : Ready
  *             1  : Busy (Peripheral busy with some configuration or internal operations)
  *          b1     (not used)
  *             x  : Should be set to 0
  *          b0     Tx state
  *             0  : Ready (no Tx operation ongoing)
  *             1  : Busy (Tx operation ongoing)
  *        - RxState contains information related to Rx operations.
  *          RxState value coding follow below described bitmap :
  *          b7-b6  (not used)
  *             xx : Should be set to 00
  *          b5     Peripheral initialization status
  *             0  : Reset (Peripheral not initialized)
  *             1  : Init done (Peripheral initialized)
  *          b4-b2  (not used)
  *            xxx : Should be set to 000
  *          b1     Rx state
  *             0  : Ready (no Rx operation ongoing)
  *             1  : Busy (Rx operation ongoing)
  *          b0     (not used)
  *             x  : Should be set to 0.
  */
typedef uint32_t HAL_UART_StateTypeDef;

/**
  * @brief UART clock sources definition
  */
typedef enum
{
  UART_CLOCKSOURCE_D2PCLK1 = 0x00U,
  UART_CLOCKSOURCE_D2PCLK2 = 0x01U,
  UART_CLOCKSOURCE_D3PCLK1 = 0x02U,
  UART_CLOCKSOURCE_PLL2 = 0x04U,
  UART_CLOCKSOURCE_PLL3 = 0x08U,
  UART_CLOCKSOURCE_HSI = 0x10U,
  UART_CLOCKSOURCE_CSI = 0x20U,
  UART_CLOCKSOURCE_LSE = 0x40U,
  UART_CLOCKSOURCE_UNDEFINED = 0x80U
} UART_ClockSourceTypeDef;

/**
  * @brief HAL UART Reception type definition
  * @note  HAL UART Reception type value aims to identify which type of Reception is ongoing.
  *        This parameter can be a value of @ref UART_Reception_Type_Values :
  *           HAL_UART_RECEPTION_STANDARD         = 0x00U,
  *           HAL_UART_RECEPTION_TOIDLE           = 0x01U,
  *           HAL_UART_RECEPTION_TORTO            = 0x02U,
  *           HAL_UART_RECEPTION_TOCHARMATCH      = 0x03U,
  */
typedef uint32_t HAL_UART_RxTypeTypeDef;

/**
  * @brief HAL UART Rx Event type definition
  * @note  HAL UART Rx Event type value aims to identify which type of Event has occurred
  *        leading to call of the RxEvent callback.
  *        This parameter can be a value of @ref UART_RxEvent_Type_Values :
  *           HAL_UART_RXEVENT_TC                 = 0x00U,
  *           HAL_UART_RXEVENT_HT                 = 0x01U,
  *           HAL_UART_RXEVENT_IDLE               = 0x02U,
  */
typedef uint32_t HAL_UART_RxEventTypeTypeDef;

/**
  * @brief  UART handle Structure definition
  */
typedef struct __UART_HandleTypeDef
{
  USART_TypeDef *Instance;

  UART_InitTypeDef Init;

  UART_AdvFeatureInitTypeDef AdvancedInit;

  const uint8_t *pTxBuffPtr;

  uint16_t TxXferSize;

  volatile uint16_t TxXferCount;

  uint8_t *pRxBuffPtr;

  uint16_t RxXferSize;

  volatile uint16_t RxXferCount;

  uint16_t Mask;

  uint32_t FifoMode; /*!< Specifies if the FIFO mode is being used.
                                                          This parameter can be a value of @ref UARTEx_FIFO_mode. */

  uint16_t NbRxDataToProcess;

  uint16_t NbTxDataToProcess;

  volatile HAL_UART_RxTypeTypeDef ReceptionType;

  volatile HAL_UART_RxEventTypeTypeDef RxEventType;

  void (*RxISR)(struct __UART_HandleTypeDef *huart);

  void (*TxISR)(struct __UART_HandleTypeDef *huart);

  DMA_HandleTypeDef *hdmatx;

  DMA_HandleTypeDef *hdmarx;

  HAL_LockTypeDef Lock;

  volatile HAL_UART_StateTypeDef gState; /*!< UART state information related to global Handle management
                                                          and also related to Tx operations. This parameter
                                                          can be a value of @ref HAL_UART_StateTypeDef */

  volatile HAL_UART_StateTypeDef RxState; /*!< UART state information related to Rx operations. This
                                                          parameter can be a value of @ref HAL_UART_StateTypeDef */

  volatile uint32_t ErrorCode;
# 292 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
} UART_HandleTypeDef;
# 326 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup UART_Exported_Constants UART Exported Constants
  * @{
  */

/** @defgroup UART_State_Definition UART State Code Definition
  * @{
  */
# 355 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/** @defgroup UART_Error_Definition   UART Error Definition
  * @{
  */
# 373 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/** @defgroup UART_Stop_Bits   UART Number of Stop Bits
  * @{
  */




/**
  * @}
  */

/** @defgroup UART_Parity  UART Parity
  * @{
  */



/**
  * @}
  */

/** @defgroup UART_Hardware_Flow_Control UART Hardware Flow Control
  * @{
  */




/**
  * @}
  */

/** @defgroup UART_Mode UART Transfer Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup UART_State  UART State
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_Over_Sampling UART Over Sampling
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_OneBit_Sampling UART One Bit Sampling Method
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_ClockPrescaler  UART Clock Prescaler
  * @{
  */
# 461 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/** @defgroup UART_AutoBaud_Rate_Mode    UART Advanced Feature AutoBaud Rate Mode
  * @{
  */
# 476 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/** @defgroup UART_Receiver_Timeout UART Receiver Timeout
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_LIN    UART Local Interconnection Network mode
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_LIN_Break_Detection  UART LIN Break Detection
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_DMA_Tx    UART DMA Tx
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_DMA_Rx   UART DMA Rx
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_Half_Duplex_Selection  UART Half Duplex Selection
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_WakeUp_Methods   UART WakeUp Methods
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_Request_Parameters UART Request Parameters
  * @{
  */





/**
  * @}
  */

/** @defgroup UART_Advanced_Features_Initialization_Type  UART Advanced Feature Initialization Type
  * @{
  */
# 567 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/** @defgroup UART_Tx_Inv UART Advanced Feature TX Pin Active Level Inversion
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_Rx_Inv UART Advanced Feature RX Pin Active Level Inversion
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_Data_Inv  UART Advanced Feature Binary Data Inversion
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_Rx_Tx_Swap UART Advanced Feature RX TX Pins Swap
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_Overrun_Disable  UART Advanced Feature Overrun Disable
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_AutoBaudRate_Enable  UART Advanced Feature Auto BaudRate Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_DMA_Disable_on_Rx_Error   UART Advanced Feature DMA Disable On Rx Error
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_MSB_First   UART Advanced Feature MSB First
  * @{
  */




/**
  * @}
  */

/** @defgroup UART_Stop_Mode_Enable   UART Advanced Feature Stop Mode Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_Mute_Mode   UART Advanced Feature Mute Mode Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_CR2_ADDRESS_LSB_POS    UART Address-matching LSB Position In CR2 Register
  * @{
  */

/**
  * @}
  */

/** @defgroup UART_WakeUp_from_Stop_Selection   UART WakeUp From Stop Selection
  * @{
  */




/**
  * @}
  */

/** @defgroup UART_DriverEnable_Polarity      UART DriverEnable Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_CR1_DEAT_ADDRESS_LSB_POS    UART Driver Enable Assertion Time LSB Position In CR1 Register
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_CR1_DEDT_ADDRESS_LSB_POS    UART Driver Enable DeAssertion Time LSB Position In CR1 Register
  * @{
  */


/**
  * @}
  */

/** @defgroup UART_Interruption_Mask    UART Interruptions Flag Mask
  * @{
  */

/**
  * @}
  */

/** @defgroup UART_TimeOut_Value    UART polling-based communications time-out value
  * @{
  */

/**
  * @}
  */

/** @defgroup UART_Flags     UART Status Flags
  *        Elements values convention: 0xXXXX
  *           - 0xXXXX  : Flag mask in the ISR register
  * @{
  */
# 757 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/** @defgroup UART_Interrupt_definition   UART Interrupts Definition
  *        Elements values convention: 000ZZZZZ0XXYYYYYb
  *           - YYYYY  : Interrupt source position in the XX register (5bits)
  *           - XX  : Interrupt source register (2bits)
  *                 - 01: CR1 register
  *                 - 10: CR2 register
  *                 - 11: CR3 register
  *           - ZZZZZ  : Flag position in the ISR register(5bits)
  *        Elements values convention: 000000000XXYYYYYb
  *           - YYYYY  : Interrupt source position in the XX register (5bits)
  *           - XX  : Interrupt source register (2bits)
  *                 - 01: CR1 register
  *                 - 10: CR2 register
  *                 - 11: CR3 register
  *        Elements values convention: 0000ZZZZ00000000b
  *           - ZZZZ  : Flag position in the ISR register(4bits)
  * @{
  */
# 801 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/** @defgroup UART_IT_CLEAR_Flags  UART Interruption Clear Flags
  * @{
  */
# 820 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/** @defgroup UART_Reception_Type_Values  UART Reception type values
  * @{
  */




/**
  * @}
  */

/** @defgroup UART_RxEvent_Type_Values  UART RxEvent type values
  * @{
  */



/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup UART_Exported_Macros UART Exported Macros
  * @{
  */

/** @brief  Reset UART handle states.
  * @param  __HANDLE__ UART handle.
  * @retval None
  */
# 872 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/** @brief  Flush the UART Data registers.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */






/** @brief  Clear the specified UART pending flag.
  * @param  __HANDLE__ specifies the UART Handle.
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be any combination of the following values:
  *            @arg @ref UART_CLEAR_PEF      Parity Error Clear Flag
  *            @arg @ref UART_CLEAR_FEF      Framing Error Clear Flag
  *            @arg @ref UART_CLEAR_NEF      Noise detected Clear Flag
  *            @arg @ref UART_CLEAR_OREF     Overrun Error Clear Flag
  *            @arg @ref UART_CLEAR_IDLEF    IDLE line detected Clear Flag
  *            @arg @ref UART_CLEAR_TXFECF   TXFIFO empty clear Flag
  *            @arg @ref UART_CLEAR_TCF      Transmission Complete Clear Flag
  *            @arg @ref UART_CLEAR_RTOF     Receiver Timeout clear flag
  *            @arg @ref UART_CLEAR_LBDF     LIN Break Detection Clear Flag
  *            @arg @ref UART_CLEAR_CTSF     CTS Interrupt Clear Flag
  *            @arg @ref UART_CLEAR_CMF      Character Match Clear Flag
  *            @arg @ref UART_CLEAR_WUF      Wake Up from stop mode Clear Flag
  * @retval None
  */


/** @brief  Clear the UART PE pending flag.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Clear the UART FE pending flag.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Clear the UART NE pending flag.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Clear the UART ORE pending flag.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Clear the UART IDLE pending flag.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Clear the UART TX FIFO empty clear flag.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Check whether the specified UART flag is set or not.
  * @param  __HANDLE__ specifies the UART Handle.
  * @param  __FLAG__ specifies the flag to check.
  *        This parameter can be one of the following values:
  *            @arg @ref UART_FLAG_TXFT  TXFIFO threshold flag
  *            @arg @ref UART_FLAG_RXFT  RXFIFO threshold flag
  *            @arg @ref UART_FLAG_RXFF  RXFIFO Full flag
  *            @arg @ref UART_FLAG_TXFE  TXFIFO Empty flag
  *            @arg @ref UART_FLAG_REACK Receive enable acknowledge flag
  *            @arg @ref UART_FLAG_TEACK Transmit enable acknowledge flag
  *            @arg @ref UART_FLAG_WUF   Wake up from stop mode flag
  *            @arg @ref UART_FLAG_RWU   Receiver wake up flag (if the UART in mute mode)
  *            @arg @ref UART_FLAG_SBKF  Send Break flag
  *            @arg @ref UART_FLAG_CMF   Character match flag
  *            @arg @ref UART_FLAG_BUSY  Busy flag
  *            @arg @ref UART_FLAG_ABRF  Auto Baud rate detection flag
  *            @arg @ref UART_FLAG_ABRE  Auto Baud rate detection error flag
  *            @arg @ref UART_FLAG_CTS   CTS Change flag
  *            @arg @ref UART_FLAG_LBDF  LIN Break detection flag
  *            @arg @ref UART_FLAG_TXE   Transmit data register empty flag
  *            @arg @ref UART_FLAG_TXFNF UART TXFIFO not full flag
  *            @arg @ref UART_FLAG_TC    Transmission Complete flag
  *            @arg @ref UART_FLAG_RXNE  Receive data register not empty flag
  *            @arg @ref UART_FLAG_RXFNE UART RXFIFO not empty flag
  *            @arg @ref UART_FLAG_RTOF  Receiver Timeout flag
  *            @arg @ref UART_FLAG_IDLE  Idle Line detection flag
  *            @arg @ref UART_FLAG_ORE   Overrun Error flag
  *            @arg @ref UART_FLAG_NE    Noise Error flag
  *            @arg @ref UART_FLAG_FE    Framing Error flag
  *            @arg @ref UART_FLAG_PE    Parity Error flag
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */


/** @brief  Enable the specified UART interrupt.
  * @param  __HANDLE__ specifies the UART Handle.
  * @param  __INTERRUPT__ specifies the UART interrupt source to enable.
  *          This parameter can be one of the following values:
  *            @arg @ref UART_IT_RXFF  RXFIFO Full interrupt
  *            @arg @ref UART_IT_TXFE  TXFIFO Empty interrupt
  *            @arg @ref UART_IT_RXFT  RXFIFO threshold interrupt
  *            @arg @ref UART_IT_TXFT  TXFIFO threshold interrupt
  *            @arg @ref UART_IT_WUF   Wakeup from stop mode interrupt
  *            @arg @ref UART_IT_CM    Character match interrupt
  *            @arg @ref UART_IT_CTS   CTS change interrupt
  *            @arg @ref UART_IT_LBD   LIN Break detection interrupt
  *            @arg @ref UART_IT_TXE   Transmit Data Register empty interrupt
  *            @arg @ref UART_IT_TXFNF TX FIFO not full interrupt
  *            @arg @ref UART_IT_TC    Transmission complete interrupt
  *            @arg @ref UART_IT_RXNE  Receive Data register not empty interrupt
  *            @arg @ref UART_IT_RXFNE RXFIFO not empty interrupt
  *            @arg @ref UART_IT_RTO   Receive Timeout interrupt
  *            @arg @ref UART_IT_IDLE  Idle line detection interrupt
  *            @arg @ref UART_IT_PE    Parity Error interrupt
  *            @arg @ref UART_IT_ERR   Error interrupt (frame error, noise error, overrun error)
  * @retval None
  */
# 1005 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/** @brief  Disable the specified UART interrupt.
  * @param  __HANDLE__ specifies the UART Handle.
  * @param  __INTERRUPT__ specifies the UART interrupt source to disable.
  *          This parameter can be one of the following values:
  *            @arg @ref UART_IT_RXFF  RXFIFO Full interrupt
  *            @arg @ref UART_IT_TXFE  TXFIFO Empty interrupt
  *            @arg @ref UART_IT_RXFT  RXFIFO threshold interrupt
  *            @arg @ref UART_IT_TXFT  TXFIFO threshold interrupt
  *            @arg @ref UART_IT_WUF   Wakeup from stop mode interrupt
  *            @arg @ref UART_IT_CM    Character match interrupt
  *            @arg @ref UART_IT_CTS   CTS change interrupt
  *            @arg @ref UART_IT_LBD   LIN Break detection interrupt
  *            @arg @ref UART_IT_TXE   Transmit Data Register empty interrupt
  *            @arg @ref UART_IT_TXFNF TX FIFO not full interrupt
  *            @arg @ref UART_IT_TC    Transmission complete interrupt
  *            @arg @ref UART_IT_RXNE  Receive Data register not empty interrupt
  *            @arg @ref UART_IT_RXFNE RXFIFO not empty interrupt
  *            @arg @ref UART_IT_RTO   Receive Timeout interrupt
  *            @arg @ref UART_IT_IDLE  Idle line detection interrupt
  *            @arg @ref UART_IT_PE    Parity Error interrupt
  *            @arg @ref UART_IT_ERR   Error interrupt (Frame error, noise error, overrun error)
  * @retval None
  */
# 1038 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/** @brief  Check whether the specified UART interrupt has occurred or not.
  * @param  __HANDLE__ specifies the UART Handle.
  * @param  __INTERRUPT__ specifies the UART interrupt to check.
  *          This parameter can be one of the following values:
  *            @arg @ref UART_IT_RXFF  RXFIFO Full interrupt
  *            @arg @ref UART_IT_TXFE  TXFIFO Empty interrupt
  *            @arg @ref UART_IT_RXFT  RXFIFO threshold interrupt
  *            @arg @ref UART_IT_TXFT  TXFIFO threshold interrupt
  *            @arg @ref UART_IT_WUF   Wakeup from stop mode interrupt
  *            @arg @ref UART_IT_CM    Character match interrupt
  *            @arg @ref UART_IT_CTS   CTS change interrupt
  *            @arg @ref UART_IT_LBD   LIN Break detection interrupt
  *            @arg @ref UART_IT_TXE   Transmit Data Register empty interrupt
  *            @arg @ref UART_IT_TXFNF TX FIFO not full interrupt
  *            @arg @ref UART_IT_TC    Transmission complete interrupt
  *            @arg @ref UART_IT_RXNE  Receive Data register not empty interrupt
  *            @arg @ref UART_IT_RXFNE RXFIFO not empty interrupt
  *            @arg @ref UART_IT_RTO   Receive Timeout interrupt
  *            @arg @ref UART_IT_IDLE  Idle line detection interrupt
  *            @arg @ref UART_IT_PE    Parity Error interrupt
  *            @arg @ref UART_IT_ERR   Error interrupt (Frame error, noise error, overrun error)
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */



/** @brief  Check whether the specified UART interrupt source is enabled or not.
  * @param  __HANDLE__ specifies the UART Handle.
  * @param  __INTERRUPT__ specifies the UART interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg @ref UART_IT_RXFF  RXFIFO Full interrupt
  *            @arg @ref UART_IT_TXFE  TXFIFO Empty interrupt
  *            @arg @ref UART_IT_RXFT  RXFIFO threshold interrupt
  *            @arg @ref UART_IT_TXFT  TXFIFO threshold interrupt
  *            @arg @ref UART_IT_WUF   Wakeup from stop mode interrupt
  *            @arg @ref UART_IT_CM    Character match interrupt
  *            @arg @ref UART_IT_CTS   CTS change interrupt
  *            @arg @ref UART_IT_LBD   LIN Break detection interrupt
  *            @arg @ref UART_IT_TXE   Transmit Data Register empty interrupt
  *            @arg @ref UART_IT_TXFNF TX FIFO not full interrupt
  *            @arg @ref UART_IT_TC    Transmission complete interrupt
  *            @arg @ref UART_IT_RXNE  Receive Data register not empty interrupt
  *            @arg @ref UART_IT_RXFNE RXFIFO not empty interrupt
  *            @arg @ref UART_IT_RTO   Receive Timeout interrupt
  *            @arg @ref UART_IT_IDLE  Idle line detection interrupt
  *            @arg @ref UART_IT_PE    Parity Error interrupt
  *            @arg @ref UART_IT_ERR   Error interrupt (Frame error, noise error, overrun error)
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */
# 1095 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/** @brief  Clear the specified UART ISR flag, in setting the proper ICR register flag.
  * @param  __HANDLE__ specifies the UART Handle.
  * @param  __IT_CLEAR__ specifies the interrupt clear register flag that needs to be set
  *                       to clear the corresponding interrupt
  *          This parameter can be one of the following values:
  *            @arg @ref UART_CLEAR_PEF    Parity Error Clear Flag
  *            @arg @ref UART_CLEAR_FEF    Framing Error Clear Flag
  *            @arg @ref UART_CLEAR_NEF    Noise detected Clear Flag
  *            @arg @ref UART_CLEAR_OREF   Overrun Error Clear Flag
  *            @arg @ref UART_CLEAR_IDLEF  IDLE line detected Clear Flag
  *            @arg @ref UART_CLEAR_RTOF   Receiver timeout clear flag
  *            @arg @ref UART_CLEAR_TXFECF TXFIFO empty Clear Flag
  *            @arg @ref UART_CLEAR_TCF    Transmission Complete Clear Flag
  *            @arg @ref UART_CLEAR_LBDF   LIN Break Detection Clear Flag
  *            @arg @ref UART_CLEAR_CTSF   CTS Interrupt Clear Flag
  *            @arg @ref UART_CLEAR_CMF    Character Match Clear Flag
  *            @arg @ref UART_CLEAR_WUF    Wake Up from stop mode Clear Flag
  * @retval None
  */


/** @brief  Set a specific UART request flag.
  * @param  __HANDLE__ specifies the UART Handle.
  * @param  __REQ__ specifies the request flag to set
  *          This parameter can be one of the following values:
  *            @arg @ref UART_AUTOBAUD_REQUEST Auto-Baud Rate Request
  *            @arg @ref UART_SENDBREAK_REQUEST Send Break Request
  *            @arg @ref UART_MUTE_MODE_REQUEST Mute Mode Request
  *            @arg @ref UART_RXDATA_FLUSH_REQUEST Receive Data flush Request
  *            @arg @ref UART_TXDATA_FLUSH_REQUEST Transmit data flush Request
  * @retval None
  */


/** @brief  Enable the UART one bit sample method.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Disable the UART one bit sample method.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Enable UART.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Disable UART.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */


/** @brief  Enable CTS flow control.
  * @note   This macro allows to enable CTS hardware flow control for a given UART instance,
  *         without need to call HAL_UART_Init() function.
  *         As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
  * @note   As macro is expected to be used for modifying CTS Hw flow control feature activation, without need
  *         for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
  *           - UART instance should have already been initialised (through call of HAL_UART_Init() )
  *           - macro could only be called when corresponding UART instance is disabled
  *             (i.e. __HAL_UART_DISABLE(__HANDLE__)) and should be followed by an Enable
  *              macro (i.e. __HAL_UART_ENABLE(__HANDLE__)).
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */






/** @brief  Disable CTS flow control.
  * @note   This macro allows to disable CTS hardware flow control for a given UART instance,
  *         without need to call HAL_UART_Init() function.
  *         As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
  * @note   As macro is expected to be used for modifying CTS Hw flow control feature activation, without need
  *         for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
  *           - UART instance should have already been initialised (through call of HAL_UART_Init() )
  *           - macro could only be called when corresponding UART instance is disabled
  *             (i.e. __HAL_UART_DISABLE(__HANDLE__)) and should be followed by an Enable
  *              macro (i.e. __HAL_UART_ENABLE(__HANDLE__)).
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */






/** @brief  Enable RTS flow control.
  * @note   This macro allows to enable RTS hardware flow control for a given UART instance,
  *         without need to call HAL_UART_Init() function.
  *         As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
  * @note   As macro is expected to be used for modifying RTS Hw flow control feature activation, without need
  *         for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
  *           - UART instance should have already been initialised (through call of HAL_UART_Init() )
  *           - macro could only be called when corresponding UART instance is disabled
  *             (i.e. __HAL_UART_DISABLE(__HANDLE__)) and should be followed by an Enable
  *              macro (i.e. __HAL_UART_ENABLE(__HANDLE__)).
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */






/** @brief  Disable RTS flow control.
  * @note   This macro allows to disable RTS hardware flow control for a given UART instance,
  *         without need to call HAL_UART_Init() function.
  *         As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
  * @note   As macro is expected to be used for modifying RTS Hw flow control feature activation, without need
  *         for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
  *           - UART instance should have already been initialised (through call of HAL_UART_Init() )
  *           - macro could only be called when corresponding UART instance is disabled
  *             (i.e. __HAL_UART_DISABLE(__HANDLE__)) and should be followed by an Enable
  *              macro (i.e. __HAL_UART_ENABLE(__HANDLE__)).
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None
  */





/**
  * @}
  */

/* Private macros --------------------------------------------------------*/
/** @defgroup UART_Private_Macros   UART Private Macros
  * @{
  */
/** @brief  Get UART clock division factor from clock prescaler value.
  * @param  __CLOCKPRESCALER__ UART prescaler value.
  * @retval UART clock division factor
  */
# 1253 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/** @brief  BRR division operation to set BRR register with LPUART.
  * @param  __PCLK__ LPUART clock.
  * @param  __BAUD__ Baud rate set by the user.
  * @param  __CLOCKPRESCALER__ UART prescaler value.
  * @retval Division result
  */





/** @brief  BRR division operation to set BRR register in 8-bit oversampling mode.
  * @param  __PCLK__ UART clock.
  * @param  __BAUD__ Baud rate set by the user.
  * @param  __CLOCKPRESCALER__ UART prescaler value.
  * @retval Division result
  */



/** @brief  BRR division operation to set BRR register in 16-bit oversampling mode.
  * @param  __PCLK__ UART clock.
  * @param  __BAUD__ Baud rate set by the user.
  * @param  __CLOCKPRESCALER__ UART prescaler value.
  * @retval Division result
  */



/** @brief  Check whether or not UART instance is Low Power UART.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval SET (instance is LPUART) or RESET (instance isn't LPUART)
  */


/** @brief  Check UART Baud rate.
  * @param  __BAUDRATE__ Baudrate specified by the user.
  *         The maximum Baud Rate is derived from the maximum clock on H7 (i.e. 100 MHz)
  *         divided by the smallest oversampling used on the USART (i.e. 8)
  * @retval SET (__BAUDRATE__ is valid) or RESET (__BAUDRATE__ is invalid)
  */


/** @brief  Check UART assertion time.
  * @param  __TIME__ 5-bit value assertion time.
  * @retval Test result (TRUE or FALSE).
  */


/** @brief  Check UART deassertion time.
  * @param  __TIME__ 5-bit value deassertion time.
  * @retval Test result (TRUE or FALSE).
  */


/**
  * @brief Ensure that UART frame number of stop bits is valid.
  * @param __STOPBITS__ UART frame number of stop bits.
  * @retval SET (__STOPBITS__ is valid) or RESET (__STOPBITS__ is invalid)
  */





/**
  * @brief Ensure that LPUART frame number of stop bits is valid.
  * @param __STOPBITS__ LPUART frame number of stop bits.
  * @retval SET (__STOPBITS__ is valid) or RESET (__STOPBITS__ is invalid)
  */



/**
  * @brief Ensure that UART frame parity is valid.
  * @param __PARITY__ UART frame parity.
  * @retval SET (__PARITY__ is valid) or RESET (__PARITY__ is invalid)
  */




/**
  * @brief Ensure that UART hardware flow control is valid.
  * @param __CONTROL__ UART hardware flow control.
  * @retval SET (__CONTROL__ is valid) or RESET (__CONTROL__ is invalid)
  */






/**
  * @brief Ensure that UART communication mode is valid.
  * @param __MODE__ UART communication mode.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */


/**
  * @brief Ensure that UART state is valid.
  * @param __STATE__ UART state.
  * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid)
  */



/**
  * @brief Ensure that UART oversampling is valid.
  * @param __SAMPLING__ UART oversampling.
  * @retval SET (__SAMPLING__ is valid) or RESET (__SAMPLING__ is invalid)
  */



/**
  * @brief Ensure that UART frame sampling is valid.
  * @param __ONEBIT__ UART frame sampling.
  * @retval SET (__ONEBIT__ is valid) or RESET (__ONEBIT__ is invalid)
  */



/**
  * @brief Ensure that UART auto Baud rate detection mode is valid.
  * @param __MODE__ UART auto Baud rate detection mode.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */





/**
  * @brief Ensure that UART receiver timeout setting is valid.
  * @param __TIMEOUT__ UART receiver timeout setting.
  * @retval SET (__TIMEOUT__ is valid) or RESET (__TIMEOUT__ is invalid)
  */



/** @brief  Check the receiver timeout value.
  * @note   The maximum UART receiver timeout value is 0xFFFFFF.
  * @param  __TIMEOUTVALUE__ receiver timeout value.
  * @retval Test result (TRUE or FALSE)
  */


/**
  * @brief Ensure that UART LIN state is valid.
  * @param __LIN__ UART LIN state.
  * @retval SET (__LIN__ is valid) or RESET (__LIN__ is invalid)
  */



/**
  * @brief Ensure that UART LIN break detection length is valid.
  * @param __LENGTH__ UART LIN break detection length.
  * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
  */



/**
  * @brief Ensure that UART DMA TX state is valid.
  * @param __DMATX__ UART DMA TX state.
  * @retval SET (__DMATX__ is valid) or RESET (__DMATX__ is invalid)
  */



/**
  * @brief Ensure that UART DMA RX state is valid.
  * @param __DMARX__ UART DMA RX state.
  * @retval SET (__DMARX__ is valid) or RESET (__DMARX__ is invalid)
  */



/**
  * @brief Ensure that UART half-duplex state is valid.
  * @param __HDSEL__ UART half-duplex state.
  * @retval SET (__HDSEL__ is valid) or RESET (__HDSEL__ is invalid)
  */



/**
  * @brief Ensure that UART wake-up method is valid.
  * @param __WAKEUP__ UART wake-up method .
  * @retval SET (__WAKEUP__ is valid) or RESET (__WAKEUP__ is invalid)
  */



/**
  * @brief Ensure that UART request parameter is valid.
  * @param __PARAM__ UART request parameter.
  * @retval SET (__PARAM__ is valid) or RESET (__PARAM__ is invalid)
  */






/**
  * @brief Ensure that UART advanced features initialization is valid.
  * @param __INIT__ UART advanced features initialization.
  * @retval SET (__INIT__ is valid) or RESET (__INIT__ is invalid)
  */
# 1476 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @brief Ensure that UART frame TX inversion setting is valid.
  * @param __TXINV__ UART frame TX inversion setting.
  * @retval SET (__TXINV__ is valid) or RESET (__TXINV__ is invalid)
  */



/**
  * @brief Ensure that UART frame RX inversion setting is valid.
  * @param __RXINV__ UART frame RX inversion setting.
  * @retval SET (__RXINV__ is valid) or RESET (__RXINV__ is invalid)
  */



/**
  * @brief Ensure that UART frame data inversion setting is valid.
  * @param __DATAINV__ UART frame data inversion setting.
  * @retval SET (__DATAINV__ is valid) or RESET (__DATAINV__ is invalid)
  */



/**
  * @brief Ensure that UART frame RX/TX pins swap setting is valid.
  * @param __SWAP__ UART frame RX/TX pins swap setting.
  * @retval SET (__SWAP__ is valid) or RESET (__SWAP__ is invalid)
  */



/**
  * @brief Ensure that UART frame overrun setting is valid.
  * @param __OVERRUN__ UART frame overrun setting.
  * @retval SET (__OVERRUN__ is valid) or RESET (__OVERRUN__ is invalid)
  */



/**
  * @brief Ensure that UART auto Baud rate state is valid.
  * @param __AUTOBAUDRATE__ UART auto Baud rate state.
  * @retval SET (__AUTOBAUDRATE__ is valid) or RESET (__AUTOBAUDRATE__ is invalid)
  */




/**
  * @brief Ensure that UART DMA enabling or disabling on error setting is valid.
  * @param __DMA__ UART DMA enabling or disabling on error setting.
  * @retval SET (__DMA__ is valid) or RESET (__DMA__ is invalid)
  */



/**
  * @brief Ensure that UART frame MSB first setting is valid.
  * @param __MSBFIRST__ UART frame MSB first setting.
  * @retval SET (__MSBFIRST__ is valid) or RESET (__MSBFIRST__ is invalid)
  */



/**
  * @brief Ensure that UART stop mode state is valid.
  * @param __STOPMODE__ UART stop mode state.
  * @retval SET (__STOPMODE__ is valid) or RESET (__STOPMODE__ is invalid)
  */



/**
  * @brief Ensure that UART mute mode state is valid.
  * @param __MUTE__ UART mute mode state.
  * @retval SET (__MUTE__ is valid) or RESET (__MUTE__ is invalid)
  */



/**
  * @brief Ensure that UART wake-up selection is valid.
  * @param __WAKE__ UART wake-up selection.
  * @retval SET (__WAKE__ is valid) or RESET (__WAKE__ is invalid)
  */




/**
  * @brief Ensure that UART driver enable polarity is valid.
  * @param __POLARITY__ UART driver enable polarity.
  * @retval SET (__POLARITY__ is valid) or RESET (__POLARITY__ is invalid)
  */



/**
  * @brief Ensure that UART Prescaler is valid.
  * @param __CLOCKPRESCALER__ UART Prescaler value.
  * @retval SET (__CLOCKPRESCALER__ is valid) or RESET (__CLOCKPRESCALER__ is invalid)
  */
# 1592 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/* Include UART HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_uart_ex.h
  * @author  MCD Application Team
  * @brief   Header file of UART HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup UARTEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup UARTEx_Exported_Types UARTEx Exported Types
  * @{
  */

/**
  * @brief  UART wake up from stop mode parameters
  */
typedef struct
{
  uint32_t WakeUpEvent; /*!< Specifies which event will activate the Wakeup from Stop mode flag (WUF).
                                    This parameter can be a value of @ref UART_WakeUp_from_Stop_Selection.
                                    If set to UART_WAKEUP_ON_ADDRESS, the two other fields below must
                                    be filled up. */

  uint16_t AddressLength; /*!< Specifies whether the address is 4 or 7-bit long.
                                    This parameter can be a value of @ref UARTEx_WakeUp_Address_Length.  */

  uint8_t Address;
} UART_WakeUpTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup UARTEx_Exported_Constants UARTEx Exported Constants
  * @{
  */

/** @defgroup UARTEx_Word_Length UARTEx Word Length
  * @{
  */



/**
  * @}
  */

/** @defgroup UARTEx_WakeUp_Address_Length UARTEx WakeUp Address Length
  * @{
  */


/**
  * @}
  */

/** @defgroup UARTEx_FIFO_mode UARTEx FIFO mode
  * @brief    UART FIFO mode
  * @{
  */


/**
  * @}
  */

/** @defgroup UARTEx_TXFIFO_threshold_level UARTEx TXFIFO threshold level
  * @brief    UART TXFIFO threshold level
  * @{
  */






/**
  * @}
  */

/** @defgroup UARTEx_RXFIFO_threshold_level UARTEx RXFIFO threshold level
  * @brief    UART RXFIFO threshold level
  * @{
  */






/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
/** @addtogroup UARTEx_Exported_Functions
  * @{
  */

/** @addtogroup UARTEx_Exported_Functions_Group1
  * @{
  */

/* Initialization and de-initialization functions  ****************************/
HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime,
                                   uint32_t DeassertionTime);

/**
  * @}
  */

/** @addtogroup UARTEx_Exported_Functions_Group2
  * @{
  */

void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart);

void HAL_UARTEx_RxFifoFullCallback(UART_HandleTypeDef *huart);
void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart);

/**
  * @}
  */

/** @addtogroup UARTEx_Exported_Functions_Group3
  * @{
  */

/* Peripheral Control functions  **********************************************/
HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection);
HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart);

HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength);

HAL_StatusTypeDef HAL_UARTEx_EnableFifoMode(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UARTEx_DisableFifoMode(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UARTEx_SetTxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold);
HAL_StatusTypeDef HAL_UARTEx_SetRxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold);

HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen,
                                           uint32_t Timeout);
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);

HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(const UART_HandleTypeDef *huart);


/**
  * @}
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup UARTEx_Private_Macros UARTEx Private Macros
  * @{
  */

/** @brief  Report the UART clock source.
  * @param  __HANDLE__ specifies the UART Handle.
  * @param  __CLOCKSOURCE__ output variable.
  * @retval UART clocking source, written in __CLOCKSOURCE__.
  */
# 760 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart_ex.h"
/** @brief  Report the UART mask to apply to retrieve the received data
  *         according to the word length and to the parity bits activation.
  * @note   If PCE = 1, the parity bit is not included in the data extracted
  *         by the reception API().
  *         This masking operation is not carried out in the case of
  *         DMA transfers.
  * @param  __HANDLE__ specifies the UART Handle.
  * @retval None, the mask to apply to UART RDR register is stored in (__HANDLE__)->Mask field.
  */
# 810 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart_ex.h"
/**
  * @brief Ensure that UART frame length is valid.
  * @param __LENGTH__ UART frame length.
  * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
  */




/**
  * @brief Ensure that UART wake-up address length is valid.
  * @param __ADDRESS__ UART wake-up address length.
  * @retval SET (__ADDRESS__ is valid) or RESET (__ADDRESS__ is invalid)
  */



/**
  * @brief Ensure that UART TXFIFO threshold level is valid.
  * @param __THRESHOLD__ UART TXFIFO threshold level.
  * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
  */







/**
  * @brief Ensure that UART RXFIFO threshold level is valid.
  * @param __THRESHOLD__ UART RXFIFO threshold level.
  * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
  */







/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/

/**
  * @}
  */

/**
  * @}
  */


}
# 1598 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup UART_Exported_Functions UART Exported Functions
  * @{
  */

/** @addtogroup UART_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */

/* Initialization and de-initialization functions  ****************************/
HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength);
HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod);
HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart);
void HAL_UART_MspInit(UART_HandleTypeDef *huart);
void HAL_UART_MspDeInit(UART_HandleTypeDef *huart);

/* Callbacks Register/UnRegister functions  ***********************************/
# 1627 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_uart.h"
/**
  * @}
  */

/** @addtogroup UART_Exported_Functions_Group2 IO operation functions
  * @{
  */

/* IO operation functions *****************************************************/
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart);
/* Transfer Abort functions */
HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart);

void HAL_UART_IRQHandler(UART_HandleTypeDef *huart);
void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart);
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);
void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart);
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart);
void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart);
void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart);
void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart);

void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size);

/**
  * @}
  */

/** @addtogroup UART_Exported_Functions_Group3 Peripheral Control functions
  * @{
  */

/* Peripheral Control functions  ************************************************/
void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue);
HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart);

HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart);
void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart);
HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart);

/**
  * @}
  */

/** @addtogroup UART_Exported_Functions_Group4 Peripheral State and Error functions
  * @{
  */

/* Peripheral State and Errors functions  **************************************************/
HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart);
uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart);

/**
  * @}
  */

/**
  * @}
  */

/* Private functions -----------------------------------------------------------*/
/** @addtogroup UART_Private_Functions UART Private Functions
  * @{
  */



HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart);
HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart);
HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status,
                                              uint32_t Tickstart, uint32_t Timeout);
void UART_AdvFeatureConfig(UART_HandleTypeDef *huart);
HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);

/**
  * @}
  */

/* Private variables -----------------------------------------------------------*/
/** @defgroup UART_Private_variables UART Private variables
  * @{
  */
/* Prescaler Table used in BRR computation macros.
   Declared as extern here to allow use of private UART macros, outside of HAL UART functions */
extern const uint16_t UARTPrescTable[12];
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 471 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_usart.h
  * @author  MCD Application Team
  * @brief   Header file of USART HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup USART
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup USART_Exported_Types USART Exported Types
  * @{
  */

/**
  * @brief USART Init Structure definition
  */
typedef struct
{
  uint32_t BaudRate; /*!< This member configures the Usart communication baud rate.
                                           The baud rate is computed using the following formula:
                                              Baud Rate Register[15:4] = ((2 * fclk_pres) /
                                              ((huart->Init.BaudRate)))[15:4]
                                              Baud Rate Register[3]    = 0
                                              Baud Rate Register[2:0]  =  (((2 * fclk_pres) /
                                              ((huart->Init.BaudRate)))[3:0]) >> 1
                                              where fclk_pres is the USART input clock frequency (fclk)
                                              divided by a prescaler.
                                           @note  Oversampling by 8 is systematically applied to
                                                  achieve high baud rates. */

  uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
                                           This parameter can be a value of @ref USARTEx_Word_Length. */

  uint32_t StopBits; /*!< Specifies the number of stop bits transmitted.
                                           This parameter can be a value of @ref USART_Stop_Bits. */

  uint32_t Parity; /*!< Specifies the parity mode.
                                           This parameter can be a value of @ref USART_Parity
                                           @note When parity is enabled, the computed parity is inserted
                                                 at the MSB position of the transmitted data (9th bit when
                                                 the word length is set to 9 data bits; 8th bit when the
                                                 word length is set to 8 data bits). */

  uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
                                           This parameter can be a value of @ref USART_Mode. */

  uint32_t CLKPolarity; /*!< Specifies the steady state of the serial clock.
                                           This parameter can be a value of @ref USART_Clock_Polarity. */

  uint32_t CLKPhase; /*!< Specifies the clock transition on which the bit capture is made.
                                           This parameter can be a value of @ref USART_Clock_Phase. */

  uint32_t CLKLastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted
                                           data bit (MSB) has to be output on the SCLK pin in synchronous mode.
                                           This parameter can be a value of @ref USART_Last_Bit. */

  uint32_t ClockPrescaler; /*!< Specifies the prescaler value used to divide the USART clock source.
                                           This parameter can be a value of @ref USART_ClockPrescaler. */
} USART_InitTypeDef;

/**
  * @brief HAL USART State structures definition
  */
typedef enum
{
  HAL_USART_STATE_RESET = 0x00U,
  HAL_USART_STATE_READY = 0x01U,
  HAL_USART_STATE_BUSY = 0x02U,
  HAL_USART_STATE_BUSY_TX = 0x12U,
  HAL_USART_STATE_BUSY_RX = 0x22U,
  HAL_USART_STATE_BUSY_TX_RX = 0x32U,
  HAL_USART_STATE_TIMEOUT = 0x03U,
  HAL_USART_STATE_ERROR = 0x04U
} HAL_USART_StateTypeDef;

/**
  * @brief  USART clock sources definitions
  */
typedef enum
{
  USART_CLOCKSOURCE_D2PCLK1 = 0x00U,
  USART_CLOCKSOURCE_D2PCLK2 = 0x01U,
  USART_CLOCKSOURCE_PLL2 = 0x02U,
  USART_CLOCKSOURCE_PLL3 = 0x04U,
  USART_CLOCKSOURCE_HSI = 0x08U,
  USART_CLOCKSOURCE_CSI = 0x10U,
  USART_CLOCKSOURCE_LSE = 0x20U,
  USART_CLOCKSOURCE_UNDEFINED = 0x40U
} USART_ClockSourceTypeDef;

/**
  * @brief  USART handle Structure definition
  */
typedef struct __USART_HandleTypeDef
{
  USART_TypeDef *Instance;

  USART_InitTypeDef Init;

  const uint8_t *pTxBuffPtr;

  uint16_t TxXferSize;

  volatile uint16_t TxXferCount;

  uint8_t *pRxBuffPtr;

  uint16_t RxXferSize;

  volatile uint16_t RxXferCount;

  uint16_t Mask;

  uint16_t NbRxDataToProcess;

  uint16_t NbTxDataToProcess;

  uint32_t SlaveMode; /*!< Enable/Disable USART SPI Slave Mode. This parameter can be a value
                                                              of @ref USARTEx_Slave_Mode */

  uint32_t FifoMode; /*!< Specifies if the FIFO mode will be used. This parameter can be a value
                                                              of @ref USARTEx_FIFO_mode. */

  void (*RxISR)(struct __USART_HandleTypeDef *husart);

  void (*TxISR)(struct __USART_HandleTypeDef *husart);

  DMA_HandleTypeDef *hdmatx;

  DMA_HandleTypeDef *hdmarx;

  HAL_LockTypeDef Lock;

  volatile HAL_USART_StateTypeDef State;

  volatile uint32_t ErrorCode;
# 182 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
} USART_HandleTypeDef;
# 212 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup USART_Exported_Constants USART Exported Constants
  * @{
  */

/** @defgroup USART_Error_Definition   USART Error Definition
  * @{
  */
# 235 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/**
  * @}
  */

/** @defgroup USART_Stop_Bits  USART Number of Stop Bits
  * @{
  */




/**
  * @}
  */

/** @defgroup USART_Parity    USART Parity
  * @{
  */



/**
  * @}
  */

/** @defgroup USART_Mode   USART Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup USART_Clock  USART Clock
  * @{
  */


/**
  * @}
  */

/** @defgroup USART_Clock_Polarity  USART Clock Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup USART_Clock_Phase   USART Clock Phase
  * @{
  */


/**
  * @}
  */

/** @defgroup USART_Last_Bit  USART Last Bit
  * @{
  */


/**
  * @}
  */

/** @defgroup USART_ClockPrescaler  USART Clock Prescaler
  * @{
  */
# 322 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/**
  * @}
  */

/** @defgroup USART_Request_Parameters  USART Request Parameters
  * @{
  */


/**
  * @}
  */

/** @defgroup USART_Flags      USART Flags
  *        Elements values convention: 0xXXXX
  *           - 0xXXXX  : Flag mask in the ISR register
  * @{
  */
# 359 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/**
  * @}
  */

/** @defgroup USART_Interrupt_definition USART Interrupts Definition
  *        Elements values convention: 0000ZZZZ0XXYYYYYb
  *           - YYYYY  : Interrupt source position in the XX register (5bits)
  *           - XX  : Interrupt source register (2bits)
  *                 - 01: CR1 register
  *                 - 10: CR2 register
  *                 - 11: CR3 register
  *           - ZZZZ  : Flag position in the ISR register(4bits)
  * @{
  */
# 390 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/**
  * @}
  */

/** @defgroup USART_IT_CLEAR_Flags    USART Interruption Clear Flags
  * @{
  */
# 406 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/**
  * @}
  */

/** @defgroup USART_Interruption_Mask    USART Interruption Flags Mask
  * @{
  */





/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup USART_Exported_Macros USART Exported Macros
  * @{
  */

/** @brief Reset USART handle state.
  * @param  __HANDLE__ USART handle.
  * @retval None
  */
# 445 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/** @brief  Check whether the specified USART flag is set or not.
  * @param  __HANDLE__ specifies the USART Handle
  * @param  __FLAG__ specifies the flag to check.
  *        This parameter can be one of the following values:
  *            @arg @ref USART_FLAG_TXFT  TXFIFO threshold flag
  *            @arg @ref USART_FLAG_RXFT  RXFIFO threshold flag
  *            @arg @ref USART_FLAG_RXFF  RXFIFO Full flag
  *            @arg @ref USART_FLAG_TXFE  TXFIFO Empty flag
  *            @arg @ref USART_FLAG_REACK Receive enable acknowledge flag
  *            @arg @ref USART_FLAG_TEACK Transmit enable acknowledge flag
  *            @arg @ref USART_FLAG_BUSY  Busy flag
  *            @arg @ref USART_FLAG_UDR   SPI slave underrun error flag
  *            @arg @ref USART_FLAG_TXE   Transmit data register empty flag
  *            @arg @ref USART_FLAG_TXFNF TXFIFO not full flag
  *            @arg @ref USART_FLAG_TC    Transmission Complete flag
  *            @arg @ref USART_FLAG_RXNE  Receive data register not empty flag
  *            @arg @ref USART_FLAG_RXFNE RXFIFO not empty flag
  *            @arg @ref USART_FLAG_RTOF  Receiver Timeout flag
  *            @arg @ref USART_FLAG_IDLE  Idle Line detection flag
  *            @arg @ref USART_FLAG_ORE   OverRun Error flag
  *            @arg @ref USART_FLAG_NE    Noise Error flag
  *            @arg @ref USART_FLAG_FE    Framing Error flag
  *            @arg @ref USART_FLAG_PE    Parity Error flag
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */


/** @brief  Clear the specified USART pending flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be any combination of the following values:
  *            @arg @ref USART_CLEAR_PEF      Parity Error Clear Flag
  *            @arg @ref USART_CLEAR_FEF      Framing Error Clear Flag
  *            @arg @ref USART_CLEAR_NEF      Noise detected Clear Flag
  *            @arg @ref USART_CLEAR_OREF     Overrun Error Clear Flag
  *            @arg @ref USART_CLEAR_IDLEF    IDLE line detected Clear Flag
  *            @arg @ref USART_CLEAR_TXFECF   TXFIFO empty clear Flag
  *            @arg @ref USART_CLEAR_TCF      Transmission Complete Clear Flag
  *            @arg @ref USART_CLEAR_RTOF     Receiver Timeout clear flag
  *            @arg @ref USART_CLEAR_UDRF     SPI slave underrun error Clear Flag
  * @retval None
  */


/** @brief  Clear the USART PE pending flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Clear the USART FE pending flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Clear the USART NE pending flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Clear the USART ORE pending flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Clear the USART IDLE pending flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Clear the USART TX FIFO empty clear flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Clear SPI slave underrun error flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Enable the specified USART interrupt.
  * @param  __HANDLE__ specifies the USART Handle.
  * @param  __INTERRUPT__ specifies the USART interrupt source to enable.
  *          This parameter can be one of the following values:
  *            @arg @ref USART_IT_RXFF  RXFIFO Full interrupt
  *            @arg @ref USART_IT_TXFE  TXFIFO Empty interrupt
  *            @arg @ref USART_IT_RXFT  RXFIFO threshold interrupt
  *            @arg @ref USART_IT_TXFT  TXFIFO threshold interrupt
  *            @arg @ref USART_IT_TXE   Transmit Data Register empty interrupt
  *            @arg @ref USART_IT_TXFNF TX FIFO not full interrupt
  *            @arg @ref USART_IT_TC    Transmission complete interrupt
  *            @arg @ref USART_IT_RXNE  Receive Data register not empty interrupt
  *            @arg @ref USART_IT_RXFNE RXFIFO not empty interrupt
  *            @arg @ref USART_IT_IDLE  Idle line detection interrupt
  *            @arg @ref USART_IT_PE    Parity Error interrupt
  *            @arg @ref USART_IT_ERR   Error interrupt(Frame error, noise error, overrun error)
  * @retval None
  */







/** @brief  Disable the specified USART interrupt.
  * @param  __HANDLE__ specifies the USART Handle.
  * @param  __INTERRUPT__ specifies the USART interrupt source to disable.
  *          This parameter can be one of the following values:
  *            @arg @ref USART_IT_RXFF  RXFIFO Full interrupt
  *            @arg @ref USART_IT_TXFE  TXFIFO Empty interrupt
  *            @arg @ref USART_IT_RXFT  RXFIFO threshold interrupt
  *            @arg @ref USART_IT_TXFT  TXFIFO threshold interrupt
  *            @arg @ref USART_IT_TXE   Transmit Data Register empty interrupt
  *            @arg @ref USART_IT_TXFNF TX FIFO not full interrupt
  *            @arg @ref USART_IT_TC    Transmission complete interrupt
  *            @arg @ref USART_IT_RXNE  Receive Data register not empty interrupt
  *            @arg @ref USART_IT_RXFNE RXFIFO not empty interrupt
  *            @arg @ref USART_IT_IDLE  Idle line detection interrupt
  *            @arg @ref USART_IT_PE    Parity Error interrupt
  *            @arg @ref USART_IT_ERR   Error interrupt(Frame error, noise error, overrun error)
  * @retval None
  */







/** @brief  Check whether the specified USART interrupt has occurred or not.
  * @param  __HANDLE__ specifies the USART Handle.
  * @param  __INTERRUPT__ specifies the USART interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg @ref USART_IT_RXFF  RXFIFO Full interrupt
  *            @arg @ref USART_IT_TXFE  TXFIFO Empty interrupt
  *            @arg @ref USART_IT_RXFT  RXFIFO threshold interrupt
  *            @arg @ref USART_IT_TXFT  TXFIFO threshold interrupt
  *            @arg @ref USART_IT_TXE   Transmit Data Register empty interrupt
  *            @arg @ref USART_IT_TXFNF TX FIFO not full interrupt
  *            @arg @ref USART_IT_TC    Transmission complete interrupt
  *            @arg @ref USART_IT_RXNE  Receive Data register not empty interrupt
  *            @arg @ref USART_IT_RXFNE RXFIFO not empty interrupt
  *            @arg @ref USART_IT_IDLE  Idle line detection interrupt
  *            @arg @ref USART_IT_ORE   OverRun Error interrupt
  *            @arg @ref USART_IT_NE    Noise Error interrupt
  *            @arg @ref USART_IT_FE    Framing Error interrupt
  *            @arg @ref USART_IT_PE    Parity Error interrupt
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */




/** @brief  Check whether the specified USART interrupt source is enabled or not.
  * @param  __HANDLE__ specifies the USART Handle.
  * @param  __INTERRUPT__ specifies the USART interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg @ref USART_IT_RXFF  RXFIFO Full interrupt
  *            @arg @ref USART_IT_TXFE  TXFIFO Empty interrupt
  *            @arg @ref USART_IT_RXFT  RXFIFO threshold interrupt
  *            @arg @ref USART_IT_TXFT  TXFIFO threshold interrupt
  *            @arg @ref USART_IT_TXE   Transmit Data Register empty interrupt
  *            @arg @ref USART_IT_TXFNF TX FIFO not full interrupt
  *            @arg @ref USART_IT_TC    Transmission complete interrupt
  *            @arg @ref USART_IT_RXNE  Receive Data register not empty interrupt
  *            @arg @ref USART_IT_RXFNE RXFIFO not empty interrupt
  *            @arg @ref USART_IT_IDLE  Idle line detection interrupt
  *            @arg @ref USART_IT_ORE   OverRun Error interrupt
  *            @arg @ref USART_IT_NE    Noise Error interrupt
  *            @arg @ref USART_IT_FE    Framing Error interrupt
  *            @arg @ref USART_IT_PE    Parity Error interrupt
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */
# 633 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/** @brief  Clear the specified USART ISR flag, in setting the proper ICR register flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @param  __IT_CLEAR__ specifies the interrupt clear register flag that needs to be set
  *                       to clear the corresponding interrupt.
  *          This parameter can be one of the following values:
  *            @arg @ref USART_CLEAR_PEF      Parity Error Clear Flag
  *            @arg @ref USART_CLEAR_FEF      Framing Error Clear Flag
  *            @arg @ref USART_CLEAR_NEF      Noise detected Clear Flag
  *            @arg @ref USART_CLEAR_OREF     Overrun Error Clear Flag
  *            @arg @ref USART_CLEAR_IDLEF    IDLE line detected Clear Flag
  *            @arg @ref USART_CLEAR_RTOF     Receiver timeout clear flag
  *            @arg @ref USART_CLEAR_TXFECF   TXFIFO empty clear Flag
  *            @arg @ref USART_CLEAR_TCF      Transmission Complete Clear Flag
  * @retval None
  */


/** @brief  Set a specific USART request flag.
  * @param  __HANDLE__ specifies the USART Handle.
  * @param  __REQ__ specifies the request flag to set.
  *          This parameter can be one of the following values:
  *            @arg @ref USART_RXDATA_FLUSH_REQUEST Receive Data flush Request
  *            @arg @ref USART_TXDATA_FLUSH_REQUEST Transmit data flush Request
  *
  * @retval None
  */


/** @brief  Enable the USART one bit sample method.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Disable the USART one bit sample method.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Enable USART.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/** @brief  Disable USART.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None
  */


/**
  * @}
  */

/* Private macros --------------------------------------------------------*/
/** @defgroup USART_Private_Macros   USART Private Macros
  * @{
  */

/** @brief  Get USART clock division factor from clock prescaler value.
  * @param  __CLOCKPRESCALER__ USART prescaler value.
  * @retval USART clock division factor
  */
# 711 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/** @brief  BRR division operation to set BRR register in 8-bit oversampling mode.
  * @param  __PCLK__ USART clock.
  * @param  __BAUD__ Baud rate set by the user.
  * @param  __CLOCKPRESCALER__ USART prescaler value.
  * @retval Division result
  */




/** @brief  Report the USART clock source.
  * @param  __HANDLE__ specifies the USART Handle.
  * @param  __CLOCKSOURCE__ output variable.
  * @retval the USART clocking source, written in __CLOCKSOURCE__.
  */
# 987 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/** @brief  Check USART Baud rate.
  * @param  __BAUDRATE__ Baudrate specified by the user.
  *         The maximum Baud Rate is derived from the maximum clock on H7 (i.e. 100 MHz)
  *         divided by the smallest oversampling used on the USART (i.e. 8)
  * @retval SET (__BAUDRATE__ is valid) or RESET (__BAUDRATE__ is invalid)  */


/**
  * @brief Ensure that USART frame number of stop bits is valid.
  * @param __STOPBITS__ USART frame number of stop bits.
  * @retval SET (__STOPBITS__ is valid) or RESET (__STOPBITS__ is invalid)
  */





/**
  * @brief Ensure that USART frame parity is valid.
  * @param __PARITY__ USART frame parity.
  * @retval SET (__PARITY__ is valid) or RESET (__PARITY__ is invalid)
  */




/**
  * @brief Ensure that USART communication mode is valid.
  * @param __MODE__ USART communication mode.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */


/**
  * @brief Ensure that USART clock state is valid.
  * @param __CLOCK__ USART clock state.
  * @retval SET (__CLOCK__ is valid) or RESET (__CLOCK__ is invalid)
  */



/**
  * @brief Ensure that USART frame polarity is valid.
  * @param __CPOL__ USART frame polarity.
  * @retval SET (__CPOL__ is valid) or RESET (__CPOL__ is invalid)
  */


/**
  * @brief Ensure that USART frame phase is valid.
  * @param __CPHA__ USART frame phase.
  * @retval SET (__CPHA__ is valid) or RESET (__CPHA__ is invalid)
  */


/**
  * @brief Ensure that USART frame last bit clock pulse setting is valid.
  * @param __LASTBIT__ USART frame last bit clock pulse setting.
  * @retval SET (__LASTBIT__ is valid) or RESET (__LASTBIT__ is invalid)
  */



/**
  * @brief Ensure that USART request parameter is valid.
  * @param __PARAM__ USART request parameter.
  * @retval SET (__PARAM__ is valid) or RESET (__PARAM__ is invalid)
  */



/**
  * @brief Ensure that USART Prescaler is valid.
  * @param __CLOCKPRESCALER__ USART Prescaler value.
  * @retval SET (__CLOCKPRESCALER__ is valid) or RESET (__CLOCKPRESCALER__ is invalid)
  */
# 1076 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h"
/**
  * @}
  */

/* Include USART HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_usart_ex.h
  * @author  MCD Application Team
  * @brief   Header file of USART HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup USARTEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup USARTEx_Exported_Constants USARTEx Exported Constants
  * @{
  */

/** @defgroup USARTEx_Word_Length USARTEx Word Length
  * @{
  */



/**
  * @}
  */

/** @defgroup USARTEx_Slave_Select_management USARTEx Slave Select Management
  * @{
  */


/**
  * @}
  */


/** @defgroup USARTEx_Slave_Mode USARTEx Synchronous Slave mode enable
  * @brief    USART SLAVE mode
  * @{
  */


/**
  * @}
  */

/** @defgroup USARTEx_FIFO_mode USARTEx FIFO  mode
  * @brief    USART FIFO  mode
  * @{
  */


/**
  * @}
  */

/** @defgroup USARTEx_TXFIFO_threshold_level USARTEx TXFIFO threshold level
  * @brief    USART TXFIFO level
  * @{
  */






/**
  * @}
  */

/** @defgroup USARTEx_RXFIFO_threshold_level USARTEx RXFIFO threshold level
  * @brief    USART RXFIFO level
  * @{
  */






/**
  * @}
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup USARTEx_Private_Macros USARTEx Private Macros
  * @{
  */

/** @brief  Compute the USART mask to apply to retrieve the received data
  *         according to the word length and to the parity bits activation.
  * @note   If PCE = 1, the parity bit is not included in the data extracted
  *         by the reception API().
  *         This masking operation is not carried out in the case of
  *         DMA transfers.
  * @param  __HANDLE__ specifies the USART Handle.
  * @retval None, the mask to apply to USART RDR register is stored in (__HANDLE__)->Mask field.
  */
# 171 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart_ex.h"
/**
  * @brief Ensure that USART frame length is valid.
  * @param __LENGTH__ USART frame length.
  * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
  */




/**
  * @brief Ensure that USART Negative Slave Select (NSS) pin management is valid.
  * @param __NSS__ USART Negative Slave Select pin management.
  * @retval SET (__NSS__ is valid) or RESET (__NSS__ is invalid)
  */



/**
  * @brief Ensure that USART Slave Mode is valid.
  * @param __STATE__ USART Slave Mode.
  * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid)
  */



/**
  * @brief Ensure that USART FIFO mode is valid.
  * @param __STATE__ USART FIFO mode.
  * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid)
  */



/**
  * @brief Ensure that USART TXFIFO threshold level is valid.
  * @param __THRESHOLD__ USART TXFIFO threshold level.
  * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
  */







/**
  * @brief Ensure that USART RXFIFO threshold level is valid.
  * @param __THRESHOLD__ USART RXFIFO threshold level.
  * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
  */






/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup USARTEx_Exported_Functions
  * @{
  */

/** @addtogroup USARTEx_Exported_Functions_Group1
  * @{
  */

/* IO operation functions *****************************************************/
void HAL_USARTEx_RxFifoFullCallback(USART_HandleTypeDef *husart);
void HAL_USARTEx_TxFifoEmptyCallback(USART_HandleTypeDef *husart);

/**
  * @}
  */

/** @addtogroup USARTEx_Exported_Functions_Group2
  * @{
  */

/* Peripheral Control functions ***********************************************/
HAL_StatusTypeDef HAL_USARTEx_EnableSlaveMode(USART_HandleTypeDef *husart);
HAL_StatusTypeDef HAL_USARTEx_DisableSlaveMode(USART_HandleTypeDef *husart);
HAL_StatusTypeDef HAL_USARTEx_ConfigNSS(USART_HandleTypeDef *husart, uint32_t NSSConfig);
HAL_StatusTypeDef HAL_USARTEx_EnableFifoMode(USART_HandleTypeDef *husart);
HAL_StatusTypeDef HAL_USARTEx_DisableFifoMode(USART_HandleTypeDef *husart);
HAL_StatusTypeDef HAL_USARTEx_SetTxFifoThreshold(USART_HandleTypeDef *husart, uint32_t Threshold);
HAL_StatusTypeDef HAL_USARTEx_SetRxFifoThreshold(USART_HandleTypeDef *husart, uint32_t Threshold);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 1082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_usart.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup USART_Exported_Functions USART Exported Functions
  * @{
  */

/** @addtogroup USART_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */

/* Initialization and de-initialization functions  ****************************/
HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart);
HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart);
void HAL_USART_MspInit(USART_HandleTypeDef *husart);
void HAL_USART_MspDeInit(USART_HandleTypeDef *husart);

/* Callbacks Register/UnRegister functions  ***********************************/






/**
  * @}
  */

/** @addtogroup USART_Exported_Functions_Group2 IO operation functions
  * @{
  */

/* IO operation functions *****************************************************/
HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size,
                                     uint32_t Timeout);
HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData,
                                            uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size);
HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size);
HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData,
                                               uint16_t Size);
HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size);
HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size);
HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData,
                                                uint16_t Size);
HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart);
HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart);
HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart);
/* Transfer Abort functions */
HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart);
HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart);

void HAL_USART_IRQHandler(USART_HandleTypeDef *husart);
void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart);
void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart);
void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart);
void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart);
void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart);
void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart);
void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart);

/**
  * @}
  */

/** @addtogroup USART_Exported_Functions_Group4 Peripheral State and Error functions
  * @{
  */

/* Peripheral State and Error functions ***************************************/
HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart);
uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 475 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_irda.h
  * @author  MCD Application Team
  * @brief   Header file of IRDA HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup IRDA
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup IRDA_Exported_Types IRDA Exported Types
  * @{
  */

/**
  * @brief IRDA Init Structure definition
  */
typedef struct
{
  uint32_t BaudRate; /*!< This member configures the IRDA communication baud rate.
                                           The baud rate register is computed using the following formula:
                                              Baud Rate Register = ((usart_ker_ckpres) / ((hirda->Init.BaudRate)))
                                           where usart_ker_ckpres is the IRDA input clock divided by a prescaler */

  uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
                                           This parameter can be a value of @ref IRDAEx_Word_Length */

  uint32_t Parity; /*!< Specifies the parity mode.
                                           This parameter can be a value of @ref IRDA_Parity
                                           @note When parity is enabled, the computed parity is inserted
                                                 at the MSB position of the transmitted data (9th bit when
                                                 the word length is set to 9 data bits; 8th bit when the
                                                 word length is set to 8 data bits). */

  uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
                                           This parameter can be a value of @ref IRDA_Transfer_Mode */

  uint8_t Prescaler; /*!< Specifies the Prescaler value for dividing the UART/USART source clock
                                           to achieve low-power frequency.
                                           @note Prescaler value 0 is forbidden */

  uint16_t PowerMode; /*!< Specifies the IRDA power mode.
                                           This parameter can be a value of @ref IRDA_Low_Power */

  uint32_t ClockPrescaler; /*!< Specifies the prescaler value used to divide the IRDA clock source.
                                           This parameter can be a value of @ref IRDA_ClockPrescaler. */

} IRDA_InitTypeDef;

/**
  * @brief HAL IRDA State definition
  * @note  HAL IRDA State value is a combination of 2 different substates:
  *        gState and RxState (see @ref IRDA_State_Definition).
  *        - gState contains IRDA state information related to global Handle management
  *          and also information related to Tx operations.
  *          gState value coding follow below described bitmap :
  *          b7-b6  Error information
  *             00 : No Error
  *             01 : (Not Used)
  *             10 : Timeout
  *             11 : Error
  *          b5     Peripheral initialization status
  *             0  : Reset (Peripheral not initialized)
  *             1  : Init done (Peripheral initialized. HAL IRDA Init function already called)
  *          b4-b3  (not used)
  *             xx : Should be set to 00
  *          b2     Intrinsic process state
  *             0  : Ready
  *             1  : Busy (Peripheral busy with some configuration or internal operations)
  *          b1     (not used)
  *             x  : Should be set to 0
  *          b0     Tx state
  *             0  : Ready (no Tx operation ongoing)
  *             1  : Busy (Tx operation ongoing)
  *        - RxState contains information related to Rx operations.
  *          RxState value coding follow below described bitmap :
  *          b7-b6  (not used)
  *             xx : Should be set to 00
  *          b5     Peripheral initialization status
  *             0  : Reset (Peripheral not initialized)
  *             1  : Init done (Peripheral initialized)
  *          b4-b2  (not used)
  *            xxx : Should be set to 000
  *          b1     Rx state
  *             0  : Ready (no Rx operation ongoing)
  *             1  : Busy (Rx operation ongoing)
  *          b0     (not used)
  *             x  : Should be set to 0.
  */
typedef uint32_t HAL_IRDA_StateTypeDef;

/**
  * @brief IRDA clock sources definition
  */
typedef enum
{
  IRDA_CLOCKSOURCE_D2PCLK1 = 0x11U,
  IRDA_CLOCKSOURCE_D2PCLK2 = 0x12U,
  IRDA_CLOCKSOURCE_PLL2Q = 0x14U,
  IRDA_CLOCKSOURCE_PLL3Q = 0x18U,
  IRDA_CLOCKSOURCE_HSI = 0x02U,
  IRDA_CLOCKSOURCE_CSI = 0x08U,
  IRDA_CLOCKSOURCE_LSE = 0x10U,
  IRDA_CLOCKSOURCE_UNDEFINED = 0x20U
} IRDA_ClockSourceTypeDef;

/**
  * @brief  IRDA handle Structure definition
  */



typedef struct

{
  USART_TypeDef *Instance;

  IRDA_InitTypeDef Init;

  const uint8_t *pTxBuffPtr;

  uint16_t TxXferSize;

  volatile uint16_t TxXferCount;

  uint8_t *pRxBuffPtr;

  uint16_t RxXferSize;

  volatile uint16_t RxXferCount;

  uint16_t Mask;

  DMA_HandleTypeDef *hdmatx;

  DMA_HandleTypeDef *hdmarx;

  HAL_LockTypeDef Lock;

  volatile HAL_IRDA_StateTypeDef gState; /*!< IRDA state information related to global Handle management
                                                  and also related to Tx operations.
                                                  This parameter can be a value of @ref HAL_IRDA_StateTypeDef */

  volatile HAL_IRDA_StateTypeDef RxState; /*!< IRDA state information related to Rx operations.
                                                  This parameter can be a value of @ref HAL_IRDA_StateTypeDef */

  volatile uint32_t ErrorCode;
# 200 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
} IRDA_HandleTypeDef;
# 229 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup IRDA_Exported_Constants IRDA Exported Constants
  * @{
  */

/** @defgroup IRDA_State_Definition IRDA State Code Definition
  * @{
  */
# 259 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/**
  * @}
  */

/** @defgroup IRDA_Error_Definition IRDA Error Code Definition
  * @{
  */
# 276 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/**
  * @}
  */

/** @defgroup IRDA_Parity IRDA Parity
  * @{
  */



/**
  * @}
  */

/** @defgroup IRDA_Transfer_Mode IRDA Transfer Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup IRDA_Low_Power IRDA Low Power
  * @{
  */


/**
  * @}
  */

/** @defgroup IRDA_ClockPrescaler IRDA Clock Prescaler
  * @{
  */
# 324 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/**
  * @}
  */

/** @defgroup IRDA_State IRDA State
  * @{
  */


/**
  * @}
  */

/** @defgroup IRDA_Mode IRDA Mode
  * @{
  */


/**
  * @}
  */

/** @defgroup IRDA_One_Bit IRDA One Bit Sampling
  * @{
  */


/**
  * @}
  */

/** @defgroup IRDA_DMA_Tx IRDA DMA Tx
  * @{
  */


/**
  * @}
  */

/** @defgroup IRDA_DMA_Rx IRDA DMA Rx
  * @{
  */


/**
  * @}
  */

/** @defgroup IRDA_Request_Parameters IRDA Request Parameters
  * @{
  */



/**
  * @}
  */

/** @defgroup IRDA_Flags IRDA Flags
  *        Elements values convention: 0xXXXX
  *           - 0xXXXX  : Flag mask in the ISR register
  * @{
  */
# 400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/**
  * @}
  */

/** @defgroup IRDA_Interrupt_definition IRDA Interrupts Definition
  *        Elements values convention: 0000ZZZZ0XXYYYYYb
  *           - YYYYY  : Interrupt source position in the XX register (5bits)
  *           - XX  : Interrupt source register (2bits)
  *                 - 01: CR1 register
  *                 - 10: CR2 register
  *                 - 11: CR3 register
  *           - ZZZZ  : Flag position in the ISR register(4bits)
  * @{
  */






/*       Elements values convention: 000000000XXYYYYYb
             - YYYYY  : Interrupt source position in the XX register (5bits)
             - XX  : Interrupt source register (2bits)
                   - 01: CR1 register
                   - 10: CR2 register
                   - 11: CR3 register */


/*       Elements values convention: 0000ZZZZ00000000b
             - ZZZZ  : Flag position in the ISR register(4bits) */



/**
  * @}
  */

/** @defgroup IRDA_IT_CLEAR_Flags IRDA Interruption Clear Flags
  * @{
  */






/**
  * @}
  */

/** @defgroup IRDA_Interruption_Mask IRDA interruptions flags mask
  * @{
  */





/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup IRDA_Exported_Macros IRDA Exported Macros
  * @{
  */

/** @brief  Reset IRDA handle state.
  * @param  __HANDLE__ IRDA handle.
  * @retval None
  */
# 489 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/** @brief  Flush the IRDA DR register.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */






/** @brief  Clear the specified IRDA pending flag.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be any combination of the following values:
  *            @arg @ref IRDA_CLEAR_PEF
  *            @arg @ref IRDA_CLEAR_FEF
  *            @arg @ref IRDA_CLEAR_NEF
  *            @arg @ref IRDA_CLEAR_OREF
  *            @arg @ref IRDA_CLEAR_TCF
  *            @arg @ref IRDA_CLEAR_IDLEF
  * @retval None
  */


/** @brief  Clear the IRDA PE pending flag.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */



/** @brief  Clear the IRDA FE pending flag.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */


/** @brief  Clear the IRDA NE pending flag.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */


/** @brief  Clear the IRDA ORE pending flag.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */


/** @brief  Clear the IRDA IDLE pending flag.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */


/** @brief  Check whether the specified IRDA flag is set or not.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @param  __FLAG__ specifies the flag to check.
  *        This parameter can be one of the following values:
  *            @arg @ref IRDA_FLAG_REACK Receive enable acknowledge flag
  *            @arg @ref IRDA_FLAG_TEACK Transmit enable acknowledge flag
  *            @arg @ref IRDA_FLAG_BUSY  Busy flag
  *            @arg @ref IRDA_FLAG_ABRF  Auto Baud rate detection flag
  *            @arg @ref IRDA_FLAG_ABRE  Auto Baud rate detection error flag
  *            @arg @ref IRDA_FLAG_TXE   Transmit data register empty flag
  *            @arg @ref IRDA_FLAG_TC    Transmission Complete flag
  *            @arg @ref IRDA_FLAG_RXNE  Receive data register not empty flag
  *            @arg @ref IRDA_FLAG_ORE   OverRun Error flag
  *            @arg @ref IRDA_FLAG_NE    Noise Error flag
  *            @arg @ref IRDA_FLAG_FE    Framing Error flag
  *            @arg @ref IRDA_FLAG_PE    Parity Error flag
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */



/** @brief  Enable the specified IRDA interrupt.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @param  __INTERRUPT__ specifies the IRDA interrupt source to enable.
  *          This parameter can be one of the following values:
  *            @arg @ref IRDA_IT_TXE  Transmit Data Register empty interrupt
  *            @arg @ref IRDA_IT_TC   Transmission complete interrupt
  *            @arg @ref IRDA_IT_RXNE Receive Data register not empty interrupt
  *            @arg @ref IRDA_IT_IDLE Idle line detection interrupt
  *            @arg @ref IRDA_IT_PE   Parity Error interrupt
  *            @arg @ref IRDA_IT_ERR  Error interrupt(Frame error, noise error, overrun error)
  * @retval None
  */
# 586 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/** @brief  Disable the specified IRDA interrupt.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @param  __INTERRUPT__ specifies the IRDA interrupt source to disable.
  *          This parameter can be one of the following values:
  *            @arg @ref IRDA_IT_TXE  Transmit Data Register empty interrupt
  *            @arg @ref IRDA_IT_TC   Transmission complete interrupt
  *            @arg @ref IRDA_IT_RXNE Receive Data register not empty interrupt
  *            @arg @ref IRDA_IT_IDLE Idle line detection interrupt
  *            @arg @ref IRDA_IT_PE   Parity Error interrupt
  *            @arg @ref IRDA_IT_ERR  Error interrupt(Frame error, noise error, overrun error)
  * @retval None
  */
# 607 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/** @brief  Check whether the specified IRDA interrupt has occurred or not.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @param  __INTERRUPT__ specifies the IRDA interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg @ref IRDA_IT_TXE Transmit Data Register empty interrupt
  *            @arg @ref IRDA_IT_TC  Transmission complete interrupt
  *            @arg @ref IRDA_IT_RXNE Receive Data register not empty interrupt
  *            @arg @ref IRDA_IT_IDLE Idle line detection interrupt
  *            @arg @ref IRDA_IT_ORE OverRun Error interrupt
  *            @arg @ref IRDA_IT_NE Noise Error interrupt
  *            @arg @ref IRDA_IT_FE Framing Error interrupt
  *            @arg @ref IRDA_IT_PE Parity Error interrupt
  * @retval The new state of __IT__ (SET or RESET).
  */



/** @brief  Check whether the specified IRDA interrupt source is enabled or not.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @param  __INTERRUPT__ specifies the IRDA interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg @ref IRDA_IT_TXE Transmit Data Register empty interrupt
  *            @arg @ref IRDA_IT_TC  Transmission complete interrupt
  *            @arg @ref IRDA_IT_RXNE Receive Data register not empty interrupt
  *            @arg @ref IRDA_IT_IDLE Idle line detection interrupt
  *            @arg @ref IRDA_IT_ERR Framing, overrun or noise error interrupt
  *            @arg @ref IRDA_IT_PE Parity Error interrupt
  * @retval The new state of __IT__ (SET or RESET).
  */





/** @brief  Clear the specified IRDA ISR flag, in setting the proper ICR register flag.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @param  __IT_CLEAR__ specifies the interrupt clear register flag that needs to be set
  *                       to clear the corresponding interrupt
  *          This parameter can be one of the following values:
  *            @arg @ref IRDA_CLEAR_PEF Parity Error Clear Flag
  *            @arg @ref IRDA_CLEAR_FEF Framing Error Clear Flag
  *            @arg @ref IRDA_CLEAR_NEF Noise detected Clear Flag
  *            @arg @ref IRDA_CLEAR_OREF OverRun Error Clear Flag
  *            @arg @ref IRDA_CLEAR_TCF Transmission Complete Clear Flag
  * @retval None
  */



/** @brief  Set a specific IRDA request flag.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @param  __REQ__ specifies the request flag to set
  *          This parameter can be one of the following values:
  *            @arg @ref IRDA_AUTOBAUD_REQUEST Auto-Baud Rate Request
  *            @arg @ref IRDA_RXDATA_FLUSH_REQUEST Receive Data flush Request
  *            @arg @ref IRDA_TXDATA_FLUSH_REQUEST Transmit data flush Request
  * @retval None
  */


/** @brief  Enable the IRDA one bit sample method.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */


/** @brief  Disable the IRDA one bit sample method.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */



/** @brief  Enable UART/USART associated to IRDA Handle.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */


/** @brief  Disable UART/USART associated to IRDA Handle.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None
  */


/**
  * @}
  */

/* Private macros --------------------------------------------------------*/
/** @addtogroup IRDA_Private_Macros
  * @{
  */

/** @brief  Ensure that IRDA Baud rate is less or equal to maximum value.
  * @param  __BAUDRATE__ specifies the IRDA Baudrate set by the user.
  * @retval True or False
  */


/** @brief  Ensure that IRDA prescaler value is strictly larger than 0.
  * @param  __PRESCALER__ specifies the IRDA prescaler value set by the user.
  * @retval True or False
  */


/** @brief Ensure that IRDA frame parity is valid.
  * @param __PARITY__ IRDA frame parity.
  * @retval SET (__PARITY__ is valid) or RESET (__PARITY__ is invalid)
  */




/** @brief Ensure that IRDA communication mode is valid.
  * @param __MODE__ IRDA communication mode.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */



/** @brief Ensure that IRDA power mode is valid.
  * @param __MODE__ IRDA power mode.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */



/** @brief Ensure that IRDA clock Prescaler is valid.
  * @param __CLOCKPRESCALER__ IRDA clock Prescaler value.
  * @retval SET (__CLOCKPRESCALER__ is valid) or RESET (__CLOCKPRESCALER__ is invalid)
  */
# 752 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/** @brief Ensure that IRDA state is valid.
  * @param __STATE__ IRDA state mode.
  * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid)
  */



/** @brief Ensure that IRDA associated UART/USART mode is valid.
  * @param __MODE__ IRDA associated UART/USART mode.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */



/** @brief Ensure that IRDA sampling rate is valid.
  * @param __ONEBIT__ IRDA sampling rate.
  * @retval SET (__ONEBIT__ is valid) or RESET (__ONEBIT__ is invalid)
  */



/** @brief Ensure that IRDA DMA TX mode is valid.
  * @param __DMATX__ IRDA DMA TX mode.
  * @retval SET (__DMATX__ is valid) or RESET (__DMATX__ is invalid)
  */



/** @brief Ensure that IRDA DMA RX mode is valid.
  * @param __DMARX__ IRDA DMA RX mode.
  * @retval SET (__DMARX__ is valid) or RESET (__DMARX__ is invalid)
  */



/** @brief Ensure that IRDA request is valid.
  * @param __PARAM__ IRDA request.
  * @retval SET (__PARAM__ is valid) or RESET (__PARAM__ is invalid)
  */



/**
  * @}
  */

/* Include IRDA HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_irda_ex.h
  * @author  MCD Application Team
  * @brief   Header file of IRDA HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @defgroup IRDAEx IRDAEx
  * @brief IRDA Extended HAL module driver
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup IRDAEx_Extended_Exported_Constants IRDAEx Extended Exported Constants
  * @{
  */

/** @defgroup IRDAEx_Word_Length IRDAEx Word Length
  * @{
  */



/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/

/* Private macros ------------------------------------------------------------*/

/** @defgroup IRDAEx_Private_Macros IRDAEx Private Macros
  * @{
  */

/** @brief  Report the IRDA clock source.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @param  __CLOCKSOURCE__ output variable.
  * @retval IRDA clocking source, written in __CLOCKSOURCE__.
  */
# 576 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda_ex.h"
/** @brief  Compute the mask to apply to retrieve the received data
  *         according to the word length and to the parity bits activation.
  * @param  __HANDLE__ specifies the IRDA Handle.
  * @retval None, the mask to apply to the associated UART RDR register is stored in (__HANDLE__)->Mask field.
  */
# 622 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda_ex.h"
/** @brief Ensure that IRDA frame length is valid.
  * @param __LENGTH__ IRDA frame length.
  * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
  */



/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/

/**
  * @}
  */

/**
  * @}
  */


}
# 800 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup IRDA_Exported_Functions IRDA Exported Functions
  * @{
  */

/** @addtogroup IRDA_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */

/* Initialization and de-initialization functions  ****************************/
HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda);
# 823 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_irda.h"
/**
  * @}
  */

/** @addtogroup IRDA_Exported_Functions_Group2 IO operation functions
  * @{
  */

/* IO operation functions *****************************************************/
HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, const uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda);
/* Transfer Abort functions */
HAL_StatusTypeDef HAL_IRDA_Abort(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_AbortTransmit(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_AbortReceive(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_Abort_IT(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_AbortTransmit_IT(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_AbortReceive_IT(IRDA_HandleTypeDef *hirda);

void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_AbortCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_AbortTransmitCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_AbortReceiveCpltCallback(IRDA_HandleTypeDef *hirda);

/**
  * @}
  */

/* Peripheral Control functions  ************************************************/

/** @addtogroup IRDA_Exported_Functions_Group4 Peripheral State and Error functions
  * @{
  */

/* Peripheral State and Error functions ***************************************/
HAL_IRDA_StateTypeDef HAL_IRDA_GetState(const IRDA_HandleTypeDef *hirda);
uint32_t HAL_IRDA_GetError(const IRDA_HandleTypeDef *hirda);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 479 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_smartcard.h
  * @author  MCD Application Team
  * @brief   Header file of SMARTCARD HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup SMARTCARD
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SMARTCARD_Exported_Types SMARTCARD Exported Types
  * @{
  */

/**
  * @brief SMARTCARD Init Structure definition
  */
typedef struct
{
  uint32_t BaudRate; /*!< Configures the SmartCard communication baud rate.
                                           The baud rate register is computed using the following formula:
                                              Baud Rate Register = ((usart_ker_ckpres) / ((hsmartcard->Init.BaudRate)))
                                           where usart_ker_ckpres is the USART input clock divided by a prescaler */

  uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
                                           This parameter @ref SMARTCARD_Word_Length can only be
                                           set to 9 (8 data + 1 parity bits). */

  uint32_t StopBits; /*!< Specifies the number of stop bits.
                                           This parameter can be a value of @ref SMARTCARD_Stop_Bits. */

  uint16_t Parity; /*!< Specifies the parity mode.
                                           This parameter can be a value of @ref SMARTCARD_Parity
                                           @note The parity is enabled by default (PCE is forced to 1).
                                                 Since the WordLength is forced to 8 bits + parity, M is
                                                 forced to 1 and the parity bit is the 9th bit. */

  uint16_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
                                           This parameter can be a value of @ref SMARTCARD_Mode */

  uint16_t CLKPolarity; /*!< Specifies the steady state of the serial clock.
                                           This parameter can be a value of @ref SMARTCARD_Clock_Polarity */

  uint16_t CLKPhase; /*!< Specifies the clock transition on which the bit capture is made.
                                           This parameter can be a value of @ref SMARTCARD_Clock_Phase */

  uint16_t CLKLastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted
                                           data bit (MSB) has to be output on the SCLK pin in synchronous mode.
                                           This parameter can be a value of @ref SMARTCARD_Last_Bit */

  uint16_t OneBitSampling; /*!< Specifies whether a single sample or three samples' majority vote
                                           is selected. Selecting the single sample method increases
                                           the receiver tolerance to clock deviations. This parameter can be a value
                                           of @ref SMARTCARD_OneBit_Sampling. */

  uint8_t Prescaler; /*!< Specifies the SmartCard Prescaler.
                                           This parameter can be any value from 0x01 to 0x1F. Prescaler value is
                                           multiplied by 2 to give the division factor of the source clock frequency */

  uint8_t GuardTime;

  uint16_t NACKEnable; /*!< Specifies whether the SmartCard NACK transmission is enabled
                                           in case of parity error.
                                           This parameter can be a value of @ref SMARTCARD_NACK_Enable */

  uint32_t TimeOutEnable; /*!< Specifies whether the receiver timeout is enabled.
                                            This parameter can be a value of @ref SMARTCARD_Timeout_Enable*/

  uint32_t TimeOutValue; /*!< Specifies the receiver time out value in number of baud blocks:
                                           it is used to implement the Character Wait Time (CWT) and
                                           Block Wait Time (BWT). It is coded over 24 bits. */

  uint8_t BlockLength; /*!< Specifies the SmartCard Block Length in T=1 Reception mode.
                                           This parameter can be any value from 0x0 to 0xFF */

  uint8_t AutoRetryCount; /*!< Specifies the SmartCard auto-retry count (number of retries in
                                            receive and transmit mode). When set to 0, retransmission is
                                            disabled. Otherwise, its maximum value is 7 (before signalling
                                            an error) */

  uint32_t ClockPrescaler; /*!< Specifies the prescaler value used to divide the USART clock source.
                                           This parameter can be a value of @ref SMARTCARD_ClockPrescaler. */

} SMARTCARD_InitTypeDef;

/**
  * @brief  SMARTCARD advanced features initialization structure definition
  */
typedef struct
{
  uint32_t AdvFeatureInit; /*!< Specifies which advanced SMARTCARD features is initialized. Several
                                           advanced features may be initialized at the same time. This parameter
                                           can be a value of @ref SMARTCARDEx_Advanced_Features_Initialization_Type */

  uint32_t TxPinLevelInvert; /*!< Specifies whether the TX pin active level is inverted.
                                           This parameter can be a value of @ref SMARTCARD_Tx_Inv  */

  uint32_t RxPinLevelInvert; /*!< Specifies whether the RX pin active level is inverted.
                                           This parameter can be a value of @ref SMARTCARD_Rx_Inv  */

  uint32_t DataInvert; /*!< Specifies whether data are inverted (positive/direct logic
                                           vs negative/inverted logic).
                                           This parameter can be a value of @ref SMARTCARD_Data_Inv */

  uint32_t Swap; /*!< Specifies whether TX and RX pins are swapped.
                                           This parameter can be a value of @ref SMARTCARD_Rx_Tx_Swap */

  uint32_t OverrunDisable; /*!< Specifies whether the reception overrun detection is disabled.
                                           This parameter can be a value of @ref SMARTCARD_Overrun_Disable */

  uint32_t DMADisableonRxError; /*!< Specifies whether the DMA is disabled in case of reception error.
                                           This parameter can be a value of @ref SMARTCARD_DMA_Disable_on_Rx_Error */

  uint32_t MSBFirst; /*!< Specifies whether MSB is sent first on UART line.
                                           This parameter can be a value of @ref SMARTCARD_MSB_First */

  uint16_t TxCompletionIndication; /*!< Specifies which transmission completion indication is used: before (when
                                           relevant flag is available) or once guard time period has elapsed.
                                           This parameter can be a value
                                           of @ref SMARTCARDEx_Transmission_Completion_Indication. */
} SMARTCARD_AdvFeatureInitTypeDef;

/**
  * @brief HAL SMARTCARD State definition
  * @note  HAL SMARTCARD State value is a combination of 2 different substates:
  *        gState and RxState (see @ref SMARTCARD_State_Definition).
  *        - gState contains SMARTCARD state information related to global Handle management
  *          and also information related to Tx operations.
  *          gState value coding follow below described bitmap :
  *          b7-b6  Error information
  *             00 : No Error
  *             01 : (Not Used)
  *             10 : Timeout
  *             11 : Error
  *          b5     Peripheral initialization status
  *             0  : Reset (Peripheral not initialized)
  *             1  : Init done (Peripheral initialized. HAL SMARTCARD Init function already called)
  *          b4-b3  (not used)
  *             xx : Should be set to 00
  *          b2     Intrinsic process state
  *             0  : Ready
  *             1  : Busy (Peripheral busy with some configuration or internal operations)
  *          b1     (not used)
  *             x  : Should be set to 0
  *          b0     Tx state
  *             0  : Ready (no Tx operation ongoing)
  *             1  : Busy (Tx operation ongoing)
  *        - RxState contains information related to Rx operations.
  *          RxState value coding follow below described bitmap :
  *          b7-b6  (not used)
  *             xx : Should be set to 00
  *          b5     Peripheral initialization status
  *             0  : Reset (Peripheral not initialized)
  *             1  : Init done (Peripheral initialized)
  *          b4-b2  (not used)
  *            xxx : Should be set to 000
  *          b1     Rx state
  *             0  : Ready (no Rx operation ongoing)
  *             1  : Busy (Rx operation ongoing)
  *          b0     (not used)
  *             x  : Should be set to 0.
  */
typedef uint32_t HAL_SMARTCARD_StateTypeDef;

/**
  * @brief  SMARTCARD handle Structure definition
  */
typedef struct __SMARTCARD_HandleTypeDef
{
  USART_TypeDef *Instance;

  SMARTCARD_InitTypeDef Init;

  SMARTCARD_AdvFeatureInitTypeDef AdvancedInit;

  const uint8_t *pTxBuffPtr;

  uint16_t TxXferSize;

  volatile uint16_t TxXferCount;

  uint8_t *pRxBuffPtr;

  uint16_t RxXferSize;

  volatile uint16_t RxXferCount;

  uint16_t NbRxDataToProcess;

  uint16_t NbTxDataToProcess;

  uint32_t FifoMode; /*!< Specifies if the FIFO mode will be used.
                                                                This parameter can be a value of
                                                                @ref SMARTCARDEx_FIFO_mode.                           */

  void (*RxISR)(struct __SMARTCARD_HandleTypeDef *huart);

  void (*TxISR)(struct __SMARTCARD_HandleTypeDef *huart);

  DMA_HandleTypeDef *hdmatx;

  DMA_HandleTypeDef *hdmarx;

  HAL_LockTypeDef Lock;

  volatile HAL_SMARTCARD_StateTypeDef gState; /*!< SmartCard state information related to global
                                                                Handle management and also related to Tx operations.
                                                                This parameter can be a value
                                                                of @ref HAL_SMARTCARD_StateTypeDef                    */

  volatile HAL_SMARTCARD_StateTypeDef RxState; /*!< SmartCard state information related to Rx operations.
                                                                This parameter can be a value
                                                                of @ref HAL_SMARTCARD_StateTypeDef                    */

  volatile uint32_t ErrorCode;
# 267 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
} SMARTCARD_HandleTypeDef;
# 296 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/**
  * @brief  SMARTCARD clock sources
  */
typedef enum
{
  SMARTCARD_CLOCKSOURCE_D2PCLK1 = 0x00U,
  SMARTCARD_CLOCKSOURCE_D2PCLK2 = 0x01U,
  SMARTCARD_CLOCKSOURCE_HSI = 0x04U,
  SMARTCARD_CLOCKSOURCE_CSI = 0x08U,
  SMARTCARD_CLOCKSOURCE_LSE = 0x20U,
  SMARTCARD_CLOCKSOURCE_PLL2Q = 0x40U,
  SMARTCARD_CLOCKSOURCE_PLL3Q = 0x80U,
  SMARTCARD_CLOCKSOURCE_UNDEFINED = 0x10U
} SMARTCARD_ClockSourceTypeDef;

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup SMARTCARD_Exported_Constants  SMARTCARD Exported Constants
  * @{
  */

/** @defgroup SMARTCARD_State_Definition SMARTCARD State Code Definition
  * @{
  */
# 343 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/**
  * @}
  */

/** @defgroup SMARTCARD_Error_Definition SMARTCARD Error Code Definition
  * @{
  */
# 360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/**
  * @}
  */

/** @defgroup SMARTCARD_Word_Length SMARTCARD Word Length
  * @{
  */

/**
  * @}
  */

/** @defgroup SMARTCARD_Stop_Bits SMARTCARD Number of Stop Bits
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Parity SMARTCARD Parity
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Mode SMARTCARD Transfer Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup SMARTCARD_Clock_Polarity SMARTCARD Clock Polarity
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Clock_Phase SMARTCARD Clock Phase
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Last_Bit SMARTCARD Last Bit
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_OneBit_Sampling SMARTCARD One Bit Sampling Method
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_NACK_Enable SMARTCARD NACK Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Timeout_Enable SMARTCARD Timeout Enable
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_ClockPrescaler  SMARTCARD Clock Prescaler
  * @{
  */
# 469 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/**
  * @}
  */

/** @defgroup SMARTCARD_Tx_Inv SMARTCARD advanced feature TX pin active level inversion
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Rx_Inv SMARTCARD advanced feature RX pin active level inversion
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Data_Inv SMARTCARD advanced feature Binary Data inversion
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Rx_Tx_Swap SMARTCARD advanced feature RX TX pins swap
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Overrun_Disable SMARTCARD advanced feature Overrun Disable
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_DMA_Disable_on_Rx_Error SMARTCARD advanced feature DMA Disable on Rx Error
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_MSB_First   SMARTCARD advanced feature MSB first
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Request_Parameters SMARTCARD Request Parameters
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARD_Interruption_Mask SMARTCARD interruptions flags mask
  * @{
  */





/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup SMARTCARD_Exported_Macros  SMARTCARD Exported Macros
  * @{
  */

/** @brief  Reset SMARTCARD handle states.
  * @param  __HANDLE__ SMARTCARD handle.
  * @retval None
  */
# 584 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/** @brief  Flush the Smartcard Data registers.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */






/** @brief  Clear the specified SMARTCARD pending flag.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @param  __FLAG__ specifies the flag to check.
  *          This parameter can be any combination of the following values:
  *            @arg @ref SMARTCARD_CLEAR_PEF    Parity error clear flag
  *            @arg @ref SMARTCARD_CLEAR_FEF    Framing error clear flag
  *            @arg @ref SMARTCARD_CLEAR_NEF    Noise detected clear flag
  *            @arg @ref SMARTCARD_CLEAR_OREF   OverRun error clear flag
  *            @arg @ref SMARTCARD_CLEAR_IDLEF  Idle line detected clear flag
  *            @arg @ref SMARTCARD_CLEAR_TCF    Transmission complete clear flag
  *            @arg @ref SMARTCARD_CLEAR_TCBGTF Transmission complete before guard time clear flag
  *            @arg @ref SMARTCARD_CLEAR_RTOF   Receiver timeout clear flag
  *            @arg @ref SMARTCARD_CLEAR_EOBF   End of block clear flag
  *            @arg @ref SMARTCARD_CLEAR_TXFECF TXFIFO empty Clear flag
  * @retval None
  */


/** @brief  Clear the SMARTCARD PE pending flag.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */


/** @brief  Clear the SMARTCARD FE pending flag.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */


/** @brief  Clear the SMARTCARD NE pending flag.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */


/** @brief  Clear the SMARTCARD ORE pending flag.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */


/** @brief  Clear the SMARTCARD IDLE pending flag.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */


/** @brief  Check whether the specified Smartcard flag is set or not.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @param  __FLAG__ specifies the flag to check.
  *        This parameter can be one of the following values:
  *            @arg @ref SMARTCARD_FLAG_TCBGT Transmission complete before guard time flag (when flag available)
  *            @arg @ref SMARTCARD_FLAG_REACK Receive enable acknowledge flag
  *            @arg @ref SMARTCARD_FLAG_TEACK Transmit enable acknowledge flag
  *            @arg @ref SMARTCARD_FLAG_BUSY  Busy flag
  *            @arg @ref SMARTCARD_FLAG_EOBF  End of block flag
  *            @arg @ref SMARTCARD_FLAG_RTOF  Receiver timeout flag
  *            @arg @ref SMARTCARD_FLAG_TXE   Transmit data register empty flag
  *            @arg @ref SMARTCARD_FLAG_TC    Transmission complete flag
  *            @arg @ref SMARTCARD_FLAG_RXNE  Receive data register not empty flag
  *            @arg @ref SMARTCARD_FLAG_IDLE  Idle line detection flag
  *            @arg @ref SMARTCARD_FLAG_ORE   Overrun error flag
  *            @arg @ref SMARTCARD_FLAG_NE    Noise error flag
  *            @arg @ref SMARTCARD_FLAG_FE    Framing error flag
  *            @arg @ref SMARTCARD_FLAG_PE    Parity error flag
  *            @arg @ref SMARTCARD_FLAG_TXFNF TXFIFO not full flag
  *            @arg @ref SMARTCARD_FLAG_RXFNE RXFIFO not empty flag
  *            @arg @ref SMARTCARD_FLAG_TXFE  TXFIFO Empty flag
  *            @arg @ref SMARTCARD_FLAG_RXFF  RXFIFO Full flag
  *            @arg @ref SMARTCARD_FLAG_RXFT  SMARTCARD RXFIFO threshold flag
  *            @arg @ref SMARTCARD_FLAG_TXFT  SMARTCARD TXFIFO threshold flag
  * @retval The new state of __FLAG__ (TRUE or FALSE).
  */


/** @brief  Enable the specified SmartCard interrupt.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @param  __INTERRUPT__ specifies the SMARTCARD interrupt to enable.
  *          This parameter can be one of the following values:
  *            @arg @ref SMARTCARD_IT_EOB    End of block interrupt
  *            @arg @ref SMARTCARD_IT_RTO    Receive timeout interrupt
  *            @arg @ref SMARTCARD_IT_TXE    Transmit data register empty interrupt
  *            @arg @ref SMARTCARD_IT_TC     Transmission complete interrupt
  *            @arg @ref SMARTCARD_IT_TCBGT  Transmission complete before
  *                                          guard time interrupt (when interruption available)
  *            @arg @ref SMARTCARD_IT_RXNE   Receive data register not empty interrupt
  *            @arg @ref SMARTCARD_IT_IDLE   Idle line detection interrupt
  *            @arg @ref SMARTCARD_IT_PE     Parity error interrupt
  *            @arg @ref SMARTCARD_IT_ERR    Error interrupt(frame error, noise error, overrun error)
  *            @arg @ref SMARTCARD_IT_TXFNF  TX FIFO not full interruption
  *            @arg @ref SMARTCARD_IT_RXFNE  RXFIFO not empty interruption
  *            @arg @ref SMARTCARD_IT_RXFF   RXFIFO full interruption
  *            @arg @ref SMARTCARD_IT_TXFE   TXFIFO empty interruption
  *            @arg @ref SMARTCARD_IT_RXFT   RXFIFO threshold reached interruption
  *            @arg @ref SMARTCARD_IT_TXFT   TXFIFO threshold reached interruption
  * @retval None
  */
# 703 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/** @brief  Disable the specified SmartCard interrupt.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @param  __INTERRUPT__ specifies the SMARTCARD interrupt to disable.
  *          This parameter can be one of the following values:
  *            @arg @ref SMARTCARD_IT_EOB    End of block interrupt
  *            @arg @ref SMARTCARD_IT_RTO    Receive timeout interrupt
  *            @arg @ref SMARTCARD_IT_TXE    Transmit data register empty interrupt
  *            @arg @ref SMARTCARD_IT_TC     Transmission complete interrupt
  *            @arg @ref SMARTCARD_IT_TCBGT  Transmission complete before guard
  *                                          time interrupt (when interruption available)
  *            @arg @ref SMARTCARD_IT_RXNE   Receive data register not empty interrupt
  *            @arg @ref SMARTCARD_IT_IDLE   Idle line detection interrupt
  *            @arg @ref SMARTCARD_IT_PE     Parity error interrupt
  *            @arg @ref SMARTCARD_IT_ERR    Error interrupt(frame error, noise error, overrun error)
  *            @arg @ref SMARTCARD_IT_TXFNF  TX FIFO not full interruption
  *            @arg @ref SMARTCARD_IT_RXFNE  RXFIFO not empty interruption
  *            @arg @ref SMARTCARD_IT_RXFF   RXFIFO full interruption
  *            @arg @ref SMARTCARD_IT_TXFE   TXFIFO empty interruption
  *            @arg @ref SMARTCARD_IT_RXFT   RXFIFO threshold reached interruption
  *            @arg @ref SMARTCARD_IT_TXFT   TXFIFO threshold reached interruption
  * @retval None
  */
# 736 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/** @brief  Check whether the specified SmartCard interrupt has occurred or not.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @param  __INTERRUPT__ specifies the SMARTCARD interrupt to check.
  *          This parameter can be one of the following values:
  *            @arg @ref SMARTCARD_IT_EOB    End of block interrupt
  *            @arg @ref SMARTCARD_IT_RTO    Receive timeout interrupt
  *            @arg @ref SMARTCARD_IT_TXE    Transmit data register empty interrupt
  *            @arg @ref SMARTCARD_IT_TC     Transmission complete interrupt
  *            @arg @ref SMARTCARD_IT_TCBGT  Transmission complete before guard time
  *                                          interrupt (when interruption available)
  *            @arg @ref SMARTCARD_IT_RXNE   Receive data register not empty interrupt
  *            @arg @ref SMARTCARD_IT_IDLE   Idle line detection interrupt
  *            @arg @ref SMARTCARD_IT_PE     Parity error interrupt
  *            @arg @ref SMARTCARD_IT_ERR    Error interrupt(frame error, noise error, overrun error)
  *            @arg @ref SMARTCARD_IT_TXFNF  TX FIFO not full interruption
  *            @arg @ref SMARTCARD_IT_RXFNE  RXFIFO not empty interruption
  *            @arg @ref SMARTCARD_IT_RXFF   RXFIFO full interruption
  *            @arg @ref SMARTCARD_IT_TXFE   TXFIFO empty interruption
  *            @arg @ref SMARTCARD_IT_RXFT   RXFIFO threshold reached interruption
  *            @arg @ref SMARTCARD_IT_TXFT   TXFIFO threshold reached interruption
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */





/** @brief  Check whether the specified SmartCard interrupt source is enabled or not.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @param  __INTERRUPT__ specifies the SMARTCARD interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg @ref SMARTCARD_IT_EOB    End of block interrupt
  *            @arg @ref SMARTCARD_IT_RTO    Receive timeout interrupt
  *            @arg @ref SMARTCARD_IT_TXE    Transmit data register empty interrupt
  *            @arg @ref SMARTCARD_IT_TC     Transmission complete interrupt
  *            @arg @ref SMARTCARD_IT_TCBGT  Transmission complete before guard time
  *                                          interrupt (when interruption available)
  *            @arg @ref SMARTCARD_IT_RXNE   Receive data register not empty interrupt
  *            @arg @ref SMARTCARD_IT_IDLE   Idle line detection interrupt
  *            @arg @ref SMARTCARD_IT_PE     Parity error interrupt
  *            @arg @ref SMARTCARD_IT_ERR    Error interrupt(frame error, noise error, overrun error)
  *            @arg @ref SMARTCARD_IT_TXFNF  TX FIFO not full interruption
  *            @arg @ref SMARTCARD_IT_RXFNE  RXFIFO not empty interruption
  *            @arg @ref SMARTCARD_IT_RXFF   RXFIFO full interruption
  *            @arg @ref SMARTCARD_IT_TXFE   TXFIFO empty interruption
  *            @arg @ref SMARTCARD_IT_RXFT   RXFIFO threshold reached interruption
  *            @arg @ref SMARTCARD_IT_TXFT   TXFIFO threshold reached interruption
  * @retval The new state of __INTERRUPT__ (SET or RESET).
  */
# 796 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/** @brief  Clear the specified SMARTCARD ISR flag, in setting the proper ICR register flag.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @param  __IT_CLEAR__ specifies the interrupt clear register flag that needs to be set
  *                       to clear the corresponding interrupt.
  *          This parameter can be one of the following values:
  *            @arg @ref SMARTCARD_CLEAR_PEF    Parity error clear flag
  *            @arg @ref SMARTCARD_CLEAR_FEF    Framing error clear flag
  *            @arg @ref SMARTCARD_CLEAR_NEF    Noise detected clear flag
  *            @arg @ref SMARTCARD_CLEAR_OREF   OverRun error clear flag
  *            @arg @ref SMARTCARD_CLEAR_IDLEF  Idle line detection clear flag
  *            @arg @ref SMARTCARD_CLEAR_TXFECF TXFIFO empty Clear Flag
  *            @arg @ref SMARTCARD_CLEAR_TCF    Transmission complete clear flag
  *            @arg @ref SMARTCARD_CLEAR_TCBGTF Transmission complete before guard time clear flag (when flag available)
  *            @arg @ref SMARTCARD_CLEAR_RTOF   Receiver timeout clear flag
  *            @arg @ref SMARTCARD_CLEAR_EOBF   End of block clear flag
  * @retval None
  */


/** @brief  Set a specific SMARTCARD request flag.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @param  __REQ__ specifies the request flag to set
  *          This parameter can be one of the following values:
  *            @arg @ref SMARTCARD_RXDATA_FLUSH_REQUEST Receive data flush Request
  *            @arg @ref SMARTCARD_TXDATA_FLUSH_REQUEST Transmit data flush Request
  * @retval None
  */


/** @brief  Enable the SMARTCARD one bit sample method.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */


/** @brief  Disable the SMARTCARD one bit sample method.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */



/** @brief  Enable the USART associated to the SMARTCARD Handle.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */


/** @brief  Disable the USART associated to the SMARTCARD Handle
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @retval None
  */


/**
  * @}
  */

/* Private macros -------------------------------------------------------------*/
/** @defgroup SMARTCARD_Private_Macros SMARTCARD Private Macros
  * @{
  */

/** @brief  Report the SMARTCARD clock source.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @param  __CLOCKSOURCE__ output variable.
  * @retval the SMARTCARD clocking source, written in __CLOCKSOURCE__.
  */
# 1125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/** @brief  Check the Baud rate range.
  * @note   The maximum Baud Rate is derived from the maximum clock on H7 (100 MHz)
  *         divided by the oversampling used on the SMARTCARD (i.e. 16).
  * @param  __BAUDRATE__ Baud rate set by the configuration function.
  * @retval Test result (TRUE or FALSE)
  */


/** @brief  Check the block length range.
  * @note   The maximum SMARTCARD block length is 0xFF.
  * @param  __LENGTH__ block length.
  * @retval Test result (TRUE or FALSE)
  */


/** @brief  Check the receiver timeout value.
  * @note   The maximum SMARTCARD receiver timeout value is 0xFFFFFF.
  * @param  __TIMEOUTVALUE__ receiver timeout value.
  * @retval Test result (TRUE or FALSE)
  */


/** @brief  Check the SMARTCARD autoretry counter value.
  * @note   The maximum number of retransmissions is 0x7.
  * @param  __COUNT__ number of retransmissions.
  * @retval Test result (TRUE or FALSE)
  */


/** @brief Ensure that SMARTCARD frame length is valid.
  * @param __LENGTH__ SMARTCARD frame length.
  * @retval SET (__LENGTH__ is valid) or RESET (__LENGTH__ is invalid)
  */


/** @brief Ensure that SMARTCARD frame number of stop bits is valid.
  * @param __STOPBITS__ SMARTCARD frame number of stop bits.
  * @retval SET (__STOPBITS__ is valid) or RESET (__STOPBITS__ is invalid)
  */



/** @brief Ensure that SMARTCARD frame parity is valid.
  * @param __PARITY__ SMARTCARD frame parity.
  * @retval SET (__PARITY__ is valid) or RESET (__PARITY__ is invalid)
  */



/** @brief Ensure that SMARTCARD communication mode is valid.
  * @param __MODE__ SMARTCARD communication mode.
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
  */


/** @brief Ensure that SMARTCARD frame polarity is valid.
  * @param __CPOL__ SMARTCARD frame polarity.
  * @retval SET (__CPOL__ is valid) or RESET (__CPOL__ is invalid)
  */



/** @brief Ensure that SMARTCARD frame phase is valid.
  * @param __CPHA__ SMARTCARD frame phase.
  * @retval SET (__CPHA__ is valid) or RESET (__CPHA__ is invalid)
  */


/** @brief Ensure that SMARTCARD frame last bit clock pulse setting is valid.
  * @param __LASTBIT__ SMARTCARD frame last bit clock pulse setting.
  * @retval SET (__LASTBIT__ is valid) or RESET (__LASTBIT__ is invalid)
  */



/** @brief Ensure that SMARTCARD frame sampling is valid.
  * @param __ONEBIT__ SMARTCARD frame sampling.
  * @retval SET (__ONEBIT__ is valid) or RESET (__ONEBIT__ is invalid)
  */



/** @brief Ensure that SMARTCARD NACK transmission setting is valid.
  * @param __NACK__ SMARTCARD NACK transmission setting.
  * @retval SET (__NACK__ is valid) or RESET (__NACK__ is invalid)
  */



/** @brief Ensure that SMARTCARD receiver timeout setting is valid.
  * @param __TIMEOUT__ SMARTCARD receiver timeout setting.
  * @retval SET (__TIMEOUT__ is valid) or RESET (__TIMEOUT__ is invalid)
  */



/** @brief Ensure that SMARTCARD clock Prescaler is valid.
  * @param __CLOCKPRESCALER__ SMARTCARD clock Prescaler value.
  * @retval SET (__CLOCKPRESCALER__ is valid) or RESET (__CLOCKPRESCALER__ is invalid)
  */
# 1238 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/** @brief Ensure that SMARTCARD advanced features initialization is valid.
  * @param __INIT__ SMARTCARD advanced features initialization.
  * @retval SET (__INIT__ is valid) or RESET (__INIT__ is invalid)
  */
# 1251 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/** @brief Ensure that SMARTCARD frame TX inversion setting is valid.
  * @param __TXINV__ SMARTCARD frame TX inversion setting.
  * @retval SET (__TXINV__ is valid) or RESET (__TXINV__ is invalid)
  */



/** @brief Ensure that SMARTCARD frame RX inversion setting is valid.
  * @param __RXINV__ SMARTCARD frame RX inversion setting.
  * @retval SET (__RXINV__ is valid) or RESET (__RXINV__ is invalid)
  */



/** @brief Ensure that SMARTCARD frame data inversion setting is valid.
  * @param __DATAINV__ SMARTCARD frame data inversion setting.
  * @retval SET (__DATAINV__ is valid) or RESET (__DATAINV__ is invalid)
  */



/** @brief Ensure that SMARTCARD frame RX/TX pins swap setting is valid.
  * @param __SWAP__ SMARTCARD frame RX/TX pins swap setting.
  * @retval SET (__SWAP__ is valid) or RESET (__SWAP__ is invalid)
  */



/** @brief Ensure that SMARTCARD frame overrun setting is valid.
  * @param __OVERRUN__ SMARTCARD frame overrun setting.
  * @retval SET (__OVERRUN__ is valid) or RESET (__OVERRUN__ is invalid)
  */



/** @brief Ensure that SMARTCARD DMA enabling or disabling on error setting is valid.
  * @param __DMA__ SMARTCARD DMA enabling or disabling on error setting.
  * @retval SET (__DMA__ is valid) or RESET (__DMA__ is invalid)
  */



/** @brief Ensure that SMARTCARD frame MSB first setting is valid.
  * @param __MSBFIRST__ SMARTCARD frame MSB first setting.
  * @retval SET (__MSBFIRST__ is valid) or RESET (__MSBFIRST__ is invalid)
  */



/** @brief Ensure that SMARTCARD request parameter is valid.
  * @param __PARAM__ SMARTCARD request parameter.
  * @retval SET (__PARAM__ is valid) or RESET (__PARAM__ is invalid)
  */



/**
  * @}
  */

/* Include SMARTCARD HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_smartcard_ex.h
  * @author  MCD Application Team
  * @brief   Header file of SMARTCARD HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup SMARTCARDEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/

/** @addtogroup SMARTCARDEx_Exported_Constants  SMARTCARD Extended Exported Constants
  * @{
  */

/** @defgroup SMARTCARDEx_Transmission_Completion_Indication SMARTCARD Transmission Completion Indication
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARDEx_Advanced_Features_Initialization_Type SMARTCARD advanced feature initialization type
  * @{
  */
# 66 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard_ex.h"
/**
  * @}
  */

/** @defgroup SMARTCARDEx_FIFO_mode SMARTCARD FIFO mode
  * @brief    SMARTCARD FIFO mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SMARTCARDEx_TXFIFO_threshold_level SMARTCARD TXFIFO threshold level
  * @brief    SMARTCARD TXFIFO level
  * @{
  */






/**
  * @}
  */

/** @defgroup SMARTCARDEx_RXFIFO_threshold_level SMARTCARD RXFIFO threshold level
  * @brief    SMARTCARD RXFIFO level
  * @{
  */






/**
  * @}
  */

/** @defgroup SMARTCARDEx_Flags SMARTCARD Flags
  *        Elements values convention: 0xXXXX
  *           - 0xXXXX  : Flag mask in the ISR register
  * @{
  */
# 133 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard_ex.h"
/**
  * @}
  */

/** @defgroup SMARTCARDEx_Interrupt_definition SMARTCARD Interrupts Definition
  *        Elements values convention: 000ZZZZZ0XXYYYYYb
  *           - YYYYY  : Interrupt source position in the XX register (5 bits)
  *           - XX  : Interrupt source register (2 bits)
  *                 - 01: CR1 register
  *                 - 10: CR2 register
  *                 - 11: CR3 register
  *           - ZZZZZ  : Flag position in the ISR register(5 bits)
  * @{
  */
# 168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard_ex.h"
/**
  * @}
  */

/** @defgroup SMARTCARDEx_IT_CLEAR_Flags SMARTCARD Interruption Clear Flags
  * @{
  */
# 185 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard_ex.h"
/**
  * @}
  */

/**
  * @}
  */
/* Exported macros -----------------------------------------------------------*/
/* Private macros ------------------------------------------------------------*/
/** @defgroup SMARTCARDEx_Private_Macros SMARTCARD Extended Private Macros
  * @{
  */

/** @brief  Set the Transmission Completion flag
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @note  If TCBGT (Transmission Complete Before Guard Time) flag is not available or if
  *        AdvancedInit.TxCompletionIndication is not already filled, the latter is forced
  *        to SMARTCARD_TC (transmission completion indication when guard time has elapsed).
  * @retval None
  */
# 217 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard_ex.h"
/** @brief  Return the transmission completion flag.
  * @param  __HANDLE__ specifies the SMARTCARD Handle.
  * @note  Based on AdvancedInit.TxCompletionIndication setting, return TC or TCBGT flag.
  *        When TCBGT flag (Transmission Complete Before Guard Time) is not available, TC flag is
  *        reported.
  * @retval Transmission completion flag
  */




/** @brief Ensure that SMARTCARD frame transmission completion used flag is valid.
  * @param __TXCOMPLETE__ SMARTCARD frame transmission completion used flag.
  * @retval SET (__TXCOMPLETE__ is valid) or RESET (__TXCOMPLETE__ is invalid)
  */



/** @brief Ensure that SMARTCARD FIFO mode is valid.
  * @param __STATE__ SMARTCARD FIFO mode.
  * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid)
  */



/** @brief Ensure that SMARTCARD TXFIFO threshold level is valid.
  * @param __THRESHOLD__ SMARTCARD TXFIFO threshold level.
  * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
  */







/** @brief Ensure that SMARTCARD RXFIFO threshold level is valid.
  * @param __THRESHOLD__ SMARTCARD RXFIFO threshold level.
  * @retval SET (__THRESHOLD__ is valid) or RESET (__THRESHOLD__ is invalid)
  */







/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SMARTCARDEx_Exported_Functions
  * @{
  */

/* Initialization and de-initialization functions  ****************************/
/* IO operation methods *******************************************************/

/** @addtogroup SMARTCARDEx_Exported_Functions_Group1
  * @{
  */

/* Peripheral Control functions ***********************************************/
void HAL_SMARTCARDEx_BlockLength_Config(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t BlockLength);
void HAL_SMARTCARDEx_TimeOut_Config(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t TimeOutValue);
HAL_StatusTypeDef HAL_SMARTCARDEx_EnableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARDEx_DisableReceiverTimeOut(SMARTCARD_HandleTypeDef *hsmartcard);

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SMARTCARDEx_Exported_Functions_Group2
  * @{
  */

/* IO operation functions *****************************************************/
void HAL_SMARTCARDEx_RxFifoFullCallback(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARDEx_TxFifoEmptyCallback(SMARTCARD_HandleTypeDef *hsmartcard);

/**
  * @}
  */

/** @addtogroup SMARTCARDEx_Exported_Functions_Group3
  * @{
  */

/* Peripheral Control functions ***********************************************/
HAL_StatusTypeDef HAL_SMARTCARDEx_EnableFifoMode(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARDEx_DisableFifoMode(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARDEx_SetTxFifoThreshold(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t Threshold);
HAL_StatusTypeDef HAL_SMARTCARDEx_SetRxFifoThreshold(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t Threshold);

/**
  * @}
  */

/**
  * @}
  */

/* Private functions ---------------------------------------------------------*/

/**
  * @}
  */

/**
  * @}
  */


}
# 1313 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SMARTCARD_Exported_Functions
  * @{
  */

/* Initialization and de-initialization functions  ****************************/
/** @addtogroup SMARTCARD_Exported_Functions_Group1
  * @{
  */

HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARD_DeInit(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_MspInit(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsmartcard);
# 1338 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smartcard.h"
/**
  * @}
  */

/* IO operation functions *****************************************************/
/** @addtogroup SMARTCARD_Exported_Functions_Group2
  * @{
  */

HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsmartcard, const uint8_t *pData, uint16_t Size,
                                         uint32_t Timeout);
HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size,
                                        uint32_t Timeout);
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsmartcard, const uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsmartcard, const uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
/* Transfer Abort functions */
HAL_StatusTypeDef HAL_SMARTCARD_Abort(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARD_Abort_IT(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive_IT(SMARTCARD_HandleTypeDef *hsmartcard);

void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_AbortCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_AbortTransmitCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_AbortReceiveCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard);

/**
  * @}
  */

/* Peripheral State and Error functions ***************************************/
/** @addtogroup SMARTCARD_Exported_Functions_Group4
  * @{
  */

HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState(const SMARTCARD_HandleTypeDef *hsmartcard);
uint32_t HAL_SMARTCARD_GetError(const SMARTCARD_HandleTypeDef *hsmartcard);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 483 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_smbus.h
  * @author  MCD Application Team
  * @brief   Header file of SMBUS HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup SMBUS
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup SMBUS_Exported_Types SMBUS Exported Types
  * @{
  */

/** @defgroup SMBUS_Configuration_Structure_definition SMBUS Configuration Structure definition
  * @brief  SMBUS Configuration Structure definition
  * @{
  */
typedef struct
{
  uint32_t Timing; /*!< Specifies the SMBUS_TIMINGR_register value.
                                        This parameter calculated by referring to SMBUS initialization section
                                        in Reference manual */
  uint32_t AnalogFilter; /*!< Specifies if Analog Filter is enable or not.
                                        This parameter can be a value of @ref SMBUS_Analog_Filter */

  uint32_t OwnAddress1; /*!< Specifies the first device own address.
                                        This parameter can be a 7-bit or 10-bit address. */

  uint32_t AddressingMode; /*!< Specifies if 7-bit or 10-bit addressing mode for master is selected.
                                        This parameter can be a value of @ref SMBUS_addressing_mode */

  uint32_t DualAddressMode; /*!< Specifies if dual addressing mode is selected.
                                        This parameter can be a value of @ref SMBUS_dual_addressing_mode */

  uint32_t OwnAddress2; /*!< Specifies the second device own address if dual addressing mode is selected
                                        This parameter can be a 7-bit address. */

  uint32_t OwnAddress2Masks; /*!< Specifies the acknowledge mask address second device own address
                                        if dual addressing mode is selected
                                        This parameter can be a value of @ref SMBUS_own_address2_masks. */

  uint32_t GeneralCallMode; /*!< Specifies if general call mode is selected.
                                        This parameter can be a value of @ref SMBUS_general_call_addressing_mode. */

  uint32_t NoStretchMode; /*!< Specifies if nostretch mode is selected.
                                        This parameter can be a value of @ref SMBUS_nostretch_mode */

  uint32_t PacketErrorCheckMode; /*!< Specifies if Packet Error Check mode is selected.
                                        This parameter can be a value of @ref SMBUS_packet_error_check_mode */

  uint32_t PeripheralMode; /*!< Specifies which mode of Periphal is selected.
                                        This parameter can be a value of @ref SMBUS_peripheral_mode */

  uint32_t SMBusTimeout; /*!< Specifies the content of the 32 Bits SMBUS_TIMEOUT_register value.
                                        (Enable bits and different timeout values)
                                        This parameter calculated by referring to SMBUS initialization section
                                        in Reference manual */
} SMBUS_InitTypeDef;
/**
  * @}
  */

/** @defgroup HAL_state_definition HAL state definition
  * @brief  HAL State definition
  * @{
  */
# 104 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/**
  * @}
  */

/** @defgroup SMBUS_Error_Code_definition SMBUS Error Code definition
  * @brief  SMBUS Error Code definition
  * @{
  */
# 125 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/**
  * @}
  */

/** @defgroup SMBUS_handle_Structure_definition SMBUS handle Structure definition
  * @brief  SMBUS handle Structure definition
  * @{
  */



typedef struct

{
  I2C_TypeDef *Instance;

  SMBUS_InitTypeDef Init;

  uint8_t *pBuffPtr;

  uint16_t XferSize;

  volatile uint16_t XferCount;

  volatile uint32_t XferOptions;

  volatile uint32_t PreviousState;

  HAL_LockTypeDef Lock;

  volatile uint32_t State;

  volatile uint32_t ErrorCode;
# 182 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
} SMBUS_HandleTypeDef;
# 212 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/**
  * @}
  */

/**
  * @}
  */
/* Exported constants --------------------------------------------------------*/

/** @defgroup SMBUS_Exported_Constants SMBUS Exported Constants
  * @{
  */

/** @defgroup SMBUS_Analog_Filter SMBUS Analog Filter
  * @{
  */


/**
  * @}
  */

/** @defgroup SMBUS_addressing_mode SMBUS addressing mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SMBUS_dual_addressing_mode SMBUS dual addressing mode
  * @{
  */



/**
  * @}
  */

/** @defgroup SMBUS_own_address2_masks SMBUS ownaddress2 masks
  * @{
  */
# 265 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/**
  * @}
  */


/** @defgroup SMBUS_general_call_addressing_mode SMBUS general call addressing mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SMBUS_nostretch_mode SMBUS nostretch mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SMBUS_packet_error_check_mode SMBUS packet error check mode
  * @{
  */


/**
  * @}
  */

/** @defgroup SMBUS_peripheral_mode SMBUS peripheral mode
  * @{
  */



/**
  * @}
  */

/** @defgroup SMBUS_ReloadEndMode_definition SMBUS ReloadEndMode definition
  * @{
  */





/**
  * @}
  */

/** @defgroup SMBUS_StartStopMode_definition SMBUS StartStopMode definition
  * @{
  */





/**
  * @}
  */

/** @defgroup SMBUS_XferOptions_definition SMBUS XferOptions definition
  * @{
  */

/* List of XferOptions in usage of :
 * 1- Restart condition when direction change
 * 2- No Restart condition in other use cases
 */
# 347 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/* List of XferOptions in usage of :
 * 1- Restart condition in all use cases (direction change or not)
 */




/**
  * @}
  */

/** @defgroup SMBUS_Interrupt_configuration_definition SMBUS Interrupt configuration definition
  * @brief SMBUS Interrupt definition
  *        Elements values convention: 0xXXXXXXXX
  *           - XXXXXXXX  : Interrupt control mask
  * @{
  */
# 377 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/**
  * @}
  */

/** @defgroup SMBUS_Flag_definition SMBUS Flag definition
  * @brief Flag definition
  *        Elements values convention: 0xXXXXYYYY
  *           - XXXXXXXX  : Flag mask
  * @{
  */
# 404 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macros ------------------------------------------------------------*/
/** @defgroup SMBUS_Exported_Macros SMBUS Exported Macros
  * @{
  */

/** @brief  Reset SMBUS handle state.
  * @param  __HANDLE__ specifies the SMBUS Handle.
  * @retval None
  */
# 431 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/** @brief  Enable the specified SMBUS interrupts.
  * @param  __HANDLE__ specifies the SMBUS Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to enable.
  *        This parameter can be one of the following values:
  *            @arg @ref SMBUS_IT_ERRI  Errors interrupt enable
  *            @arg @ref SMBUS_IT_TCI   Transfer complete interrupt enable
  *            @arg @ref SMBUS_IT_STOPI STOP detection interrupt enable
  *            @arg @ref SMBUS_IT_NACKI NACK received interrupt enable
  *            @arg @ref SMBUS_IT_ADDRI Address match interrupt enable
  *            @arg @ref SMBUS_IT_RXI   RX interrupt enable
  *            @arg @ref SMBUS_IT_TXI   TX interrupt enable
  *
  * @retval None
  */


/** @brief  Disable the specified SMBUS interrupts.
  * @param  __HANDLE__ specifies the SMBUS Handle.
  * @param  __INTERRUPT__ specifies the interrupt source to disable.
  *        This parameter can be one of the following values:
  *            @arg @ref SMBUS_IT_ERRI  Errors interrupt enable
  *            @arg @ref SMBUS_IT_TCI   Transfer complete interrupt enable
  *            @arg @ref SMBUS_IT_STOPI STOP detection interrupt enable
  *            @arg @ref SMBUS_IT_NACKI NACK received interrupt enable
  *            @arg @ref SMBUS_IT_ADDRI Address match interrupt enable
  *            @arg @ref SMBUS_IT_RXI   RX interrupt enable
  *            @arg @ref SMBUS_IT_TXI   TX interrupt enable
  *
  * @retval None
  */


/** @brief  Check whether the specified SMBUS interrupt source is enabled or not.
  * @param  __HANDLE__ specifies the SMBUS Handle.
  * @param  __INTERRUPT__ specifies the SMBUS interrupt source to check.
  *          This parameter can be one of the following values:
  *            @arg @ref SMBUS_IT_ERRI  Errors interrupt enable
  *            @arg @ref SMBUS_IT_TCI   Transfer complete interrupt enable
  *            @arg @ref SMBUS_IT_STOPI STOP detection interrupt enable
  *            @arg @ref SMBUS_IT_NACKI NACK received interrupt enable
  *            @arg @ref SMBUS_IT_ADDRI Address match interrupt enable
  *            @arg @ref SMBUS_IT_RXI   RX interrupt enable
  *            @arg @ref SMBUS_IT_TXI   TX interrupt enable
  *
  * @retval The new state of __IT__ (SET or RESET).
  */



/** @brief  Check whether the specified SMBUS flag is set or not.
  * @param  __HANDLE__ specifies the SMBUS Handle.
  * @param  __FLAG__ specifies the flag to check.
  *        This parameter can be one of the following values:
  *            @arg @ref SMBUS_FLAG_TXE     Transmit data register empty
  *            @arg @ref SMBUS_FLAG_TXIS    Transmit interrupt status
  *            @arg @ref SMBUS_FLAG_RXNE    Receive data register not empty
  *            @arg @ref SMBUS_FLAG_ADDR    Address matched (slave mode)
  *            @arg @ref SMBUS_FLAG_AF      NACK received flag
  *            @arg @ref SMBUS_FLAG_STOPF   STOP detection flag
  *            @arg @ref SMBUS_FLAG_TC      Transfer complete (master mode)
  *            @arg @ref SMBUS_FLAG_TCR     Transfer complete reload
  *            @arg @ref SMBUS_FLAG_BERR    Bus error
  *            @arg @ref SMBUS_FLAG_ARLO    Arbitration lost
  *            @arg @ref SMBUS_FLAG_OVR     Overrun/Underrun
  *            @arg @ref SMBUS_FLAG_PECERR  PEC error in reception
  *            @arg @ref SMBUS_FLAG_TIMEOUT Timeout or Tlow detection flag
  *            @arg @ref SMBUS_FLAG_ALERT   SMBus alert
  *            @arg @ref SMBUS_FLAG_BUSY    Bus busy
  *            @arg @ref SMBUS_FLAG_DIR     Transfer direction (slave mode)
  *
  * @retval The new state of __FLAG__ (SET or RESET).
  */





/** @brief  Clear the SMBUS pending flags which are cleared by writing 1 in a specific bit.
  * @param  __HANDLE__ specifies the SMBUS Handle.
  * @param  __FLAG__ specifies the flag to clear.
  *          This parameter can be any combination of the following values:
  *            @arg @ref SMBUS_FLAG_TXE     Transmit data register empty
  *            @arg @ref SMBUS_FLAG_ADDR    Address matched (slave mode)
  *            @arg @ref SMBUS_FLAG_AF      NACK received flag
  *            @arg @ref SMBUS_FLAG_STOPF   STOP detection flag
  *            @arg @ref SMBUS_FLAG_BERR    Bus error
  *            @arg @ref SMBUS_FLAG_ARLO    Arbitration lost
  *            @arg @ref SMBUS_FLAG_OVR     Overrun/Underrun
  *            @arg @ref SMBUS_FLAG_PECERR  PEC error in reception
  *            @arg @ref SMBUS_FLAG_TIMEOUT Timeout or Tlow detection flag
  *            @arg @ref SMBUS_FLAG_ALERT   SMBus alert
  *
  * @retval None
  */




/** @brief  Enable the specified SMBUS peripheral.
  * @param  __HANDLE__ specifies the SMBUS Handle.
  * @retval None
  */


/** @brief  Disable the specified SMBUS peripheral.
  * @param  __HANDLE__ specifies the SMBUS Handle.
  * @retval None
  */


/** @brief  Generate a Non-Acknowledge SMBUS peripheral in Slave mode.
  * @param  __HANDLE__ specifies the SMBUS Handle.
  * @retval None
  */


/**
  * @}
  */


/* Private constants ---------------------------------------------------------*/

/* Private macros ------------------------------------------------------------*/
/** @defgroup SMBUS_Private_Macro SMBUS Private Macros
  * @{
  */
# 652 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/**
  * @}
  */

/* Include SMBUS HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_smbus_ex.h
  * @author  MCD Application Team
  * @brief   Header file of SMBUS HAL Extended module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus_ex.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup SMBUSEx
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup SMBUSEx_Exported_Constants SMBUS Extended Exported Constants
  * @{
  */

/** @defgroup SMBUSEx_FastModePlus SMBUS Extended Fast Mode Plus
  * @{
  */
# 61 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus_ex.h"
/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup SMBUSEx_Exported_Macros SMBUS Extended Exported Macros
  * @{
  */

/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SMBUSEx_Exported_Functions SMBUS Extended Exported Functions
  * @{
  */

/** @addtogroup SMBUSEx_Exported_Functions_Group2 WakeUp Mode Functions
  * @{
  */
/* Peripheral Control functions  ************************************************/
HAL_StatusTypeDef HAL_SMBUSEx_EnableWakeUp(SMBUS_HandleTypeDef *hsmbus);
HAL_StatusTypeDef HAL_SMBUSEx_DisableWakeUp(SMBUS_HandleTypeDef *hsmbus);
/**
  * @}
  */

/** @addtogroup SMBUSEx_Exported_Functions_Group3 Fast Mode Plus Functions
  * @{
  */
void HAL_SMBUSEx_EnableFastModePlus(uint32_t ConfigFastModePlus);
void HAL_SMBUSEx_DisableFastModePlus(uint32_t ConfigFastModePlus);
/**
  * @}
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup SMBUSEx_Private_Constants SMBUS Extended Private Constants
  * @{
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup SMBUSEx_Private_Macro SMBUS Extended Private Macros
  * @{
  */
# 127 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus_ex.h"
/**
  * @}
  */

/* Private Functions ---------------------------------------------------------*/
/** @defgroup SMBUSEx_Private_Functions SMBUS Extended Private Functions
  * @{
  */
/* Private functions are defined in stm32h7xx_hal_smbus_ex.c file */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 658 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h" 2

/* Exported functions --------------------------------------------------------*/
/** @addtogroup SMBUS_Exported_Functions SMBUS Exported Functions
  * @{
  */

/** @addtogroup SMBUS_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */

/* Initialization and de-initialization functions  ****************************/
HAL_StatusTypeDef HAL_SMBUS_Init(SMBUS_HandleTypeDef *hsmbus);
HAL_StatusTypeDef HAL_SMBUS_DeInit(SMBUS_HandleTypeDef *hsmbus);
void HAL_SMBUS_MspInit(SMBUS_HandleTypeDef *hsmbus);
void HAL_SMBUS_MspDeInit(SMBUS_HandleTypeDef *hsmbus);
HAL_StatusTypeDef HAL_SMBUS_ConfigAnalogFilter(SMBUS_HandleTypeDef *hsmbus, uint32_t AnalogFilter);
HAL_StatusTypeDef HAL_SMBUS_ConfigDigitalFilter(SMBUS_HandleTypeDef *hsmbus, uint32_t DigitalFilter);

/* Callbacks Register/UnRegister functions  ***********************************/
# 688 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_smbus.h"
/**
  * @}
  */

/** @addtogroup SMBUS_Exported_Functions_Group2 Input and Output operation functions
  * @{
  */

/* IO operation functions  *****************************************************/
/** @addtogroup Blocking_mode_Polling Blocking mode Polling
  * @{
  */
/******* Blocking mode: Polling */
HAL_StatusTypeDef HAL_SMBUS_IsDeviceReady(SMBUS_HandleTypeDef *hsmbus, uint16_t DevAddress, uint32_t Trials,
                                          uint32_t Timeout);
/**
  * @}
  */

/** @addtogroup Non-Blocking_mode_Interrupt Non-Blocking mode Interrupt
  * @{
  */
/******* Non-Blocking mode: Interrupt */
HAL_StatusTypeDef HAL_SMBUS_Master_Transmit_IT(SMBUS_HandleTypeDef *hsmbus, uint16_t DevAddress,
                                               uint8_t *pData, uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_SMBUS_Master_Receive_IT(SMBUS_HandleTypeDef *hsmbus, uint16_t DevAddress,
                                              uint8_t *pData, uint16_t Size, uint32_t XferOptions);
HAL_StatusTypeDef HAL_SMBUS_Master_Abort_IT(SMBUS_HandleTypeDef *hsmbus, uint16_t DevAddress);
HAL_StatusTypeDef HAL_SMBUS_Slave_Transmit_IT(SMBUS_HandleTypeDef *hsmbus, uint8_t *pData, uint16_t Size,
                                              uint32_t XferOptions);
HAL_StatusTypeDef HAL_SMBUS_Slave_Receive_IT(SMBUS_HandleTypeDef *hsmbus, uint8_t *pData, uint16_t Size,
                                             uint32_t XferOptions);

HAL_StatusTypeDef HAL_SMBUS_EnableAlert_IT(SMBUS_HandleTypeDef *hsmbus);
HAL_StatusTypeDef HAL_SMBUS_DisableAlert_IT(SMBUS_HandleTypeDef *hsmbus);
HAL_StatusTypeDef HAL_SMBUS_EnableListen_IT(SMBUS_HandleTypeDef *hsmbus);
HAL_StatusTypeDef HAL_SMBUS_DisableListen_IT(SMBUS_HandleTypeDef *hsmbus);
/**
  * @}
  */

/** @addtogroup SMBUS_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
  * @{
  */
/******* SMBUS IRQHandler and Callbacks used in non blocking modes (Interrupt) */
void HAL_SMBUS_EV_IRQHandler(SMBUS_HandleTypeDef *hsmbus);
void HAL_SMBUS_ER_IRQHandler(SMBUS_HandleTypeDef *hsmbus);
void HAL_SMBUS_MasterTxCpltCallback(SMBUS_HandleTypeDef *hsmbus);
void HAL_SMBUS_MasterRxCpltCallback(SMBUS_HandleTypeDef *hsmbus);
void HAL_SMBUS_SlaveTxCpltCallback(SMBUS_HandleTypeDef *hsmbus);
void HAL_SMBUS_SlaveRxCpltCallback(SMBUS_HandleTypeDef *hsmbus);
void HAL_SMBUS_AddrCallback(SMBUS_HandleTypeDef *hsmbus, uint8_t TransferDirection, uint16_t AddrMatchCode);
void HAL_SMBUS_ListenCpltCallback(SMBUS_HandleTypeDef *hsmbus);
void HAL_SMBUS_ErrorCallback(SMBUS_HandleTypeDef *hsmbus);

/**
  * @}
  */

/** @addtogroup SMBUS_Exported_Functions_Group3 Peripheral State and Errors functions
  *  @{
  */

/* Peripheral State and Errors functions  **************************************************/
uint32_t HAL_SMBUS_GetState(const SMBUS_HandleTypeDef *hsmbus);
uint32_t HAL_SMBUS_GetError(const SMBUS_HandleTypeDef *hsmbus);

/**
  * @}
  */

/**
  * @}
  */

/* Private Functions ---------------------------------------------------------*/
/** @defgroup SMBUS_Private_Functions SMBUS Private Functions
  * @{
  */
/* Private functions are defined in stm32h7xx_hal_smbus.c file */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 487 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_wwdg.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_wwdg.h
  * @author  MCD Application Team
  * @brief   Header file of WWDG HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_wwdg.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup WWDG
  * @{
  */

/* Exported types ------------------------------------------------------------*/

/** @defgroup WWDG_Exported_Types WWDG Exported Types
  * @{
  */

/**
  * @brief  WWDG Init structure definition
  */
typedef struct
{
  uint32_t Prescaler; /*!< Specifies the prescaler value of the WWDG.
                               This parameter can be a value of @ref WWDG_Prescaler */

  uint32_t Window; /*!< Specifies the WWDG window value to be compared to the downcounter.
                               This parameter must be a number Min_Data = 0x40 and Max_Data = 0x7F */

  uint32_t Counter; /*!< Specifies the WWDG free-running downcounter  value.
                               This parameter must be a number between Min_Data = 0x40 and Max_Data = 0x7F */

  uint32_t EWIMode ; /*!< Specifies if WWDG Early Wakeup Interrupt is enable or not.
                               This parameter can be a value of @ref WWDG_EWI_Mode */

} WWDG_InitTypeDef;

/**
  * @brief  WWDG handle Structure definition
  */



typedef struct

{
  WWDG_TypeDef *Instance;

  WWDG_InitTypeDef Init;






} WWDG_HandleTypeDef;
# 99 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_wwdg.h"
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/

/** @defgroup WWDG_Exported_Constants WWDG Exported Constants
  * @{
  */

/** @defgroup WWDG_Interrupt_definition WWDG Interrupt definition
  * @{
  */

/**
  * @}
  */

/** @defgroup WWDG_Flag_definition WWDG Flag definition
  * @brief WWDG Flag definition
  * @{
  */

/**
  * @}
  */

/** @defgroup WWDG_Prescaler WWDG Prescaler
  * @{
  */
# 137 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_wwdg.h"
/**
  * @}
  */

/** @defgroup WWDG_EWI_Mode WWDG Early Wakeup Interrupt Mode
  * @{
  */


/**
  * @}
  */

/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/

/** @defgroup WWDG_Private_Macros WWDG Private Macros
  * @{
  */
# 174 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_wwdg.h"
/**
  * @}
  */


/* Exported macros ------------------------------------------------------------*/

/** @defgroup WWDG_Exported_Macros WWDG Exported Macros
  * @{
  */

/**
  * @brief  Enable the WWDG peripheral.
  * @param  __HANDLE__  WWDG handle
  * @retval None
  */


/**
  * @brief  Enable the WWDG early wakeup interrupt.
  * @param  __HANDLE__: WWDG handle
  * @param  __INTERRUPT__  specifies the interrupt to enable.
  *         This parameter can be one of the following values:
  *            @arg WWDG_IT_EWI: Early wakeup interrupt
  * @note   Once enabled this interrupt cannot be disabled except by a system reset.
  * @retval None
  */


/**
  * @brief  Check whether the selected WWDG interrupt has occurred or not.
  * @param  __HANDLE__  WWDG handle
  * @param  __INTERRUPT__  specifies the it to check.
  *        This parameter can be one of the following values:
  *            @arg WWDG_FLAG_EWIF: Early wakeup interrupt IT
  * @retval The new state of WWDG_FLAG (SET or RESET).
  */


/** @brief  Clear the WWDG interrupt pending bits.
  *         bits to clear the selected interrupt pending bits.
  * @param  __HANDLE__  WWDG handle
  * @param  __INTERRUPT__  specifies the interrupt pending bit to clear.
  *         This parameter can be one of the following values:
  *            @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
  */


/**
  * @brief  Check whether the specified WWDG flag is set or not.
  * @param  __HANDLE__  WWDG handle
  * @param  __FLAG__  specifies the flag to check.
  *         This parameter can be one of the following values:
  *            @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
  * @retval The new state of WWDG_FLAG (SET or RESET).
  */


/**
  * @brief  Clear the WWDG's pending flags.
  * @param  __HANDLE__  WWDG handle
  * @param  __FLAG__  specifies the flag to clear.
  *         This parameter can be one of the following values:
  *            @arg WWDG_FLAG_EWIF: Early wakeup interrupt flag
  * @retval None
  */


/** @brief  Check whether the specified WWDG interrupt source is enabled or not.
  * @param  __HANDLE__  WWDG Handle.
  * @param  __INTERRUPT__  specifies the WWDG interrupt source to check.
  *         This parameter can be one of the following values:
  *            @arg WWDG_IT_EWI: Early Wakeup Interrupt
  * @retval state of __INTERRUPT__ (TRUE or FALSE).
  */



/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/

/** @addtogroup WWDG_Exported_Functions
  * @{
  */

/** @addtogroup WWDG_Exported_Functions_Group1
  * @{
  */
/* Initialization/de-initialization functions  **********************************/
HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg);
void HAL_WWDG_MspInit(WWDG_HandleTypeDef *hwwdg);
/* Callbacks Register/UnRegister functions  ***********************************/






/**
  * @}
  */

/** @addtogroup WWDG_Exported_Functions_Group2
  * @{
  */
/* I/O operation functions ******************************************************/
HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg);
void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg);
void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg);
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pcd.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_pcd.h
  * @author  MCD Application Team
  * @brief   Header file of PCD HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_usb.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_usb.h
  * @author  MCD Application Team
  * @brief   Header file of USB Low Layer HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_usb.h" 2


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup USB_LL
  * @{
  */

/* Exported types ------------------------------------------------------------*/
# 48 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_usb.h"
/**
  * @brief  USB Mode definition
  */

typedef enum
{
  USB_DEVICE_MODE = 0,
  USB_HOST_MODE = 1,
  USB_DRD_MODE = 2
} USB_ModeTypeDef;

/**
  * @brief  URB States definition
  */
typedef enum
{
  URB_IDLE = 0,
  URB_DONE,
  URB_NOTREADY,
  URB_NYET,
  URB_ERROR,
  URB_STALL
} USB_URBStateTypeDef;

/**
  * @brief  Host channel States  definition
  */
typedef enum
{
  HC_IDLE = 0,
  HC_XFRC,
  HC_HALTED,
  HC_ACK,
  HC_NAK,
  HC_NYET,
  HC_STALL,
  HC_XACTERR,
  HC_BBLERR,
  HC_DATATGLERR
} USB_HCStateTypeDef;


/**
  * @brief  USB Instance Initialization Structure definition
  */
typedef struct
{
  uint8_t dev_endpoints; /*!< Device Endpoints number.
                                         This parameter depends on the used USB core.
                                         This parameter must be a number between Min_Data = 1 and Max_Data = 15 */

  uint8_t Host_channels; /*!< Host Channels number.
                                         This parameter Depends on the used USB core.
                                         This parameter must be a number between Min_Data = 1 and Max_Data = 15 */

  uint8_t dma_enable; /*!< USB DMA state.
                                         If DMA is not supported this parameter shall be set by default to zero */

  uint8_t speed; /*!< USB Core speed.
                                        This parameter can be any value of @ref PCD_Speed/HCD_Speed
                                                                                (HCD_SPEED_xxx, HCD_SPEED_xxx) */

  uint8_t ep0_mps;

  uint8_t phy_itface; /*!< Select the used PHY interface.
                                        This parameter can be any value of @ref PCD_PHY_Module/HCD_PHY_Module  */

  uint8_t Sof_enable;

  uint8_t low_power_enable;

  uint8_t lpm_enable;

  uint8_t battery_charging_enable;

  uint8_t vbus_sensing_enable;

  uint8_t use_dedicated_ep1;

  uint8_t use_external_vbus;

} USB_CfgTypeDef;

typedef struct
{
  uint8_t num; /*!< Endpoint number
                                       This parameter must be a number between Min_Data = 1 and Max_Data = 15   */

  uint8_t is_in; /*!< Endpoint direction
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */

  uint8_t is_stall; /*!< Endpoint stall condition
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */

  uint8_t is_iso_incomplete; /*!< Endpoint isoc condition
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */

  uint8_t type; /*!< Endpoint type
                                       This parameter can be any value of @ref USB_LL_EP_Type                   */

  uint8_t data_pid_start; /*!< Initial data PID
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */

  uint32_t maxpacket; /*!< Endpoint Max packet size
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */

  uint8_t *xfer_buff;

  uint32_t xfer_len;

  uint32_t xfer_count;

  uint8_t even_odd_frame; /*!< IFrame parity
                                       This parameter must be a number between Min_Data = 0 and Max_Data = 1    */

  uint16_t tx_fifo_num; /*!< Transmission FIFO number
                                       This parameter must be a number between Min_Data = 1 and Max_Data = 15   */

  uint32_t dma_addr;

  uint32_t xfer_size;
} USB_EPTypeDef;

typedef struct
{
  uint8_t dev_addr; /*!< USB device address.
                                     This parameter must be a number between Min_Data = 1 and Max_Data = 255    */

  uint8_t ch_num; /*!< Host channel number.
                                     This parameter must be a number between Min_Data = 1 and Max_Data = 15     */

  uint8_t ep_num; /*!< Endpoint number.
                                     This parameter must be a number between Min_Data = 1 and Max_Data = 15     */

  uint8_t ep_is_in; /*!< Endpoint direction
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 1      */

  uint8_t speed; /*!< USB Host Channel speed.
                                     This parameter can be any value of @ref HCD_Device_Speed:
                                                                             (HCD_DEVICE_SPEED_xxx)             */

  uint8_t do_ping;
  uint8_t do_ssplit;
  uint8_t do_csplit;
  uint8_t ep_ss_schedule;
  uint32_t iso_splt_xactPos;

  uint8_t hub_port_nbr;
  uint8_t hub_addr;

  uint8_t ep_type; /*!< Endpoint Type.
                                     This parameter can be any value of @ref USB_LL_EP_Type                     */

  uint16_t max_packet; /*!< Endpoint Max packet size.
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 64KB   */

  uint8_t data_pid; /*!< Initial data PID.
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 1      */

  uint8_t *xfer_buff;

  uint32_t XferSize;

  uint32_t xfer_len;

  uint32_t xfer_count;

  uint8_t toggle_in; /*!< IN transfer current toggle flag.
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 1      */

  uint8_t toggle_out; /*!< OUT transfer current toggle flag
                                     This parameter must be a number between Min_Data = 0 and Max_Data = 1      */

  uint32_t dma_addr;

  uint32_t ErrCnt;
  uint32_t NyetErrCnt;

  USB_URBStateTypeDef urb_state; /*!< URB state.
                                       This parameter can be any value of @ref USB_URBStateTypeDef              */

  USB_HCStateTypeDef state; /*!< Host Channel state.
                                       This parameter can be any value of @ref USB_HCStateTypeDef               */
} USB_HCTypeDef;

typedef USB_ModeTypeDef USB_OTG_ModeTypeDef;
typedef USB_CfgTypeDef USB_OTG_CfgTypeDef;
typedef USB_EPTypeDef USB_OTG_EPTypeDef;
typedef USB_URBStateTypeDef USB_OTG_URBStateTypeDef;
typedef USB_HCStateTypeDef USB_OTG_HCStateTypeDef;
typedef USB_HCTypeDef USB_OTG_HCTypeDef;

/* Exported constants --------------------------------------------------------*/

/** @defgroup PCD_Exported_Constants PCD Exported Constants
  * @{
  */


/** @defgroup USB_OTG_CORE VERSION ID
  * @{
  */


/**
  * @}
  */

/** @defgroup USB_Core_Mode_ USB Core Mode
  * @{
  */



/**
  * @}
  */

/** @defgroup USB_LL_Core_Speed USB Low Layer Core Speed
  * @{
  */



/**
  * @}
  */

/** @defgroup USB_LL_Core_PHY USB Low Layer Core PHY
  * @{
  */


/**
  * @}
  */

/** @defgroup USB_LL_Turnaround_Timeout Turnaround Timeout Value
  * @{
  */







/**
  * @}
  */

/** @defgroup USB_LL_Core_MPS USB Low Layer Core MPS
  * @{
  */



/**
  * @}
  */

/** @defgroup USB_LL_Core_PHY_Frequency USB Low Layer Core PHY Frequency
  * @{
  */



/**
  * @}
  */

/** @defgroup USB_LL_CORE_Frame_Interval USB Low Layer Core Frame Interval
  * @{
  */




/**
  * @}
  */

/** @defgroup USB_LL_EP0_MPS USB Low Layer EP0 MPS
  * @{
  */




/**
  * @}
  */

/** @defgroup USB_LL_EP_Type USB Low Layer EP Type
  * @{
  */





/**
  * @}
  */

/** @defgroup USB_LL_EP_Speed USB Low Layer EP Speed
  * @{
  */



/**
  * @}
  */

/** @defgroup USB_LL_CH_PID_Type USB Low Layer Channel PID Type
  * @{
  */




/**
  * @}
  */

/** @defgroup USB_LL Device Speed
  * @{
  */





/**
  * @}
  */


/** @defgroup USB_LL_STS_Defines USB Low Layer STS Defines
  * @{
  */





/**
  * @}
  */

/** @defgroup USB_LL_HCFG_SPEED_Defines USB Low Layer HCFG Speed Defines
  * @{
  */



/**
  * @}
  */

/** @defgroup USB_LL_HFIR_Defines USB Low Layer frame interval Defines
  * @{
  */



/**
  * @}
  */

/** @defgroup USB_LL_HPRT0_PRTSPD_SPEED_Defines USB Low Layer HPRT0 PRTSPD Speed Defines
  * @{
  */



/**
  * @}
  */
# 475 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_usb.h"
/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup USB_LL_Exported_Macros USB Low Layer Exported Macros
  * @{
  */







/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup USB_LL_Exported_Functions USB Low Layer Exported Functions
  * @{
  */

HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_SetTurnaroundTime(USB_OTG_GlobalTypeDef *USBx, uint32_t hclk, uint8_t speed);
HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx, USB_OTG_ModeTypeDef mode);
HAL_StatusTypeDef USB_SetDevSpeed(const USB_OTG_GlobalTypeDef *USBx, uint8_t speed);
HAL_StatusTypeDef USB_FlushRxFifo(USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_FlushTxFifo(USB_OTG_GlobalTypeDef *USBx, uint32_t num);
HAL_StatusTypeDef USB_ActivateEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
HAL_StatusTypeDef USB_DeactivateEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
HAL_StatusTypeDef USB_ActivateDedicatedEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
HAL_StatusTypeDef USB_DeactivateDedicatedEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma);
HAL_StatusTypeDef USB_WritePacket(const USB_OTG_GlobalTypeDef *USBx, uint8_t *src,
                                  uint8_t ch_ep_num, uint16_t len, uint8_t dma);

void *USB_ReadPacket(const USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len);
HAL_StatusTypeDef USB_EPSetStall(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
HAL_StatusTypeDef USB_EPClearStall(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep);
HAL_StatusTypeDef USB_EPStopXfer(const USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep);
HAL_StatusTypeDef USB_SetDevAddress(const USB_OTG_GlobalTypeDef *USBx, uint8_t address);
HAL_StatusTypeDef USB_DevConnect(const USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_DevDisconnect(const USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_ActivateSetup(const USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_EP0_OutStart(const USB_OTG_GlobalTypeDef *USBx, uint8_t dma, const uint8_t *psetup);
uint8_t USB_GetDevSpeed(const USB_OTG_GlobalTypeDef *USBx);
uint32_t USB_GetMode(const USB_OTG_GlobalTypeDef *USBx);
uint32_t USB_ReadInterrupts(USB_OTG_GlobalTypeDef const *USBx);
uint32_t USB_ReadChInterrupts(const USB_OTG_GlobalTypeDef *USBx, uint8_t chnum);
uint32_t USB_ReadDevAllOutEpInterrupt(const USB_OTG_GlobalTypeDef *USBx);
uint32_t USB_ReadDevOutEPInterrupt(const USB_OTG_GlobalTypeDef *USBx, uint8_t epnum);
uint32_t USB_ReadDevAllInEpInterrupt(const USB_OTG_GlobalTypeDef *USBx);
uint32_t USB_ReadDevInEPInterrupt(const USB_OTG_GlobalTypeDef *USBx, uint8_t epnum);
void USB_ClearInterrupts(USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt);

HAL_StatusTypeDef USB_HostInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
HAL_StatusTypeDef USB_InitFSLSPClkSel(const USB_OTG_GlobalTypeDef *USBx, uint8_t freq);
HAL_StatusTypeDef USB_ResetPort(const USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_DriveVbus(const USB_OTG_GlobalTypeDef *USBx, uint8_t state);
uint32_t USB_GetHostSpeed(USB_OTG_GlobalTypeDef const *USBx);
uint32_t USB_GetCurrentFrame(USB_OTG_GlobalTypeDef const *USBx);
HAL_StatusTypeDef USB_HC_Init(USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num,
                              uint8_t epnum, uint8_t dev_address, uint8_t speed,
                              uint8_t ep_type, uint16_t mps);
HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx,
                                   USB_OTG_HCTypeDef *hc, uint8_t dma);

uint32_t USB_HC_ReadInterrupt(const USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_HC_Halt(const USB_OTG_GlobalTypeDef *USBx, uint8_t hc_num);
HAL_StatusTypeDef USB_DoPing(const USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num);
HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_ActivateRemoteWakeup(const USB_OTG_GlobalTypeDef *USBx);
HAL_StatusTypeDef USB_DeActivateRemoteWakeup(const USB_OTG_GlobalTypeDef *USBx);


/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pcd.h" 2



/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup PCD
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup PCD_Exported_Types PCD Exported Types
  * @{
  */

/**
  * @brief  PCD State structure definition
  */
typedef enum
{
  HAL_PCD_STATE_RESET = 0x00,
  HAL_PCD_STATE_READY = 0x01,
  HAL_PCD_STATE_ERROR = 0x02,
  HAL_PCD_STATE_BUSY = 0x03,
  HAL_PCD_STATE_TIMEOUT = 0x04
} PCD_StateTypeDef;

/* Device LPM suspend state */
typedef enum
{
  LPM_L0 = 0x00,
  LPM_L1 = 0x01,
  LPM_L2 = 0x02,
  LPM_L3 = 0x03,
} PCD_LPM_StateTypeDef;

typedef enum
{
  PCD_LPM_L0_ACTIVE = 0x00,
  PCD_LPM_L1_ACTIVE = 0x01,
} PCD_LPM_MsgTypeDef;

typedef enum
{
  PCD_BCD_ERROR = 0xFF,
  PCD_BCD_CONTACT_DETECTION = 0xFE,
  PCD_BCD_STD_DOWNSTREAM_PORT = 0xFD,
  PCD_BCD_CHARGING_DOWNSTREAM_PORT = 0xFC,
  PCD_BCD_DEDICATED_CHARGING_PORT = 0xFB,
  PCD_BCD_DISCOVERY_COMPLETED = 0x00,

} PCD_BCD_MsgTypeDef;


typedef USB_OTG_GlobalTypeDef PCD_TypeDef;
typedef USB_OTG_CfgTypeDef PCD_InitTypeDef;
typedef USB_OTG_EPTypeDef PCD_EPTypeDef;


/**
  * @brief  PCD Handle Structure definition
  */



typedef struct

{
  PCD_TypeDef *Instance;
  PCD_InitTypeDef Init;
  volatile uint8_t USB_Address;
  PCD_EPTypeDef IN_ep[16];
  PCD_EPTypeDef OUT_ep[16];
  HAL_LockTypeDef Lock;
  volatile PCD_StateTypeDef State;
  volatile uint32_t ErrorCode;
  uint32_t Setup[12];
  PCD_LPM_StateTypeDef LPM_State;
  uint32_t BESL;
  uint32_t FrameNumber;


  uint32_t lpm_active; /*!< Enable or disable the Link Power Management .
                                       This parameter can be set to ENABLE or DISABLE        */

  uint32_t battery_charging_active; /*!< Enable or disable Battery charging.
                                       This parameter can be set to ENABLE or DISABLE        */
  void *pData;
# 138 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pcd.h"
} PCD_HandleTypeDef;

/**
  * @}
  */

/* Include PCD HAL Extended module */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pcd_ex.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_pcd_ex.h
  * @author  MCD Application Team
  * @brief   Header file of PCD HAL Extension module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_def.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_def.h
  * @author  MCD Application Team
  * @brief   This file contains HAL common defines, enumeration, macros and
  *          structures definitions.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pcd_ex.h" 2


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup PCDEx
  * @{
  */
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Exported macros -----------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
/** @addtogroup PCDEx_Exported_Functions PCDEx Exported Functions
  * @{
  */
/** @addtogroup PCDEx_Exported_Functions_Group1 Peripheral Control functions
  * @{
  */

HAL_StatusTypeDef HAL_PCDEx_SetTxFiFo(PCD_HandleTypeDef *hpcd, uint8_t fifo, uint16_t size);
HAL_StatusTypeDef HAL_PCDEx_SetRxFiFo(PCD_HandleTypeDef *hpcd, uint16_t size);



HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd);
HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd);


HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd);
HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd);
void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd);

void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg);
void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg);

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 146 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pcd.h" 2

/* Exported constants --------------------------------------------------------*/
/** @defgroup PCD_Exported_Constants PCD Exported Constants
  * @{
  */

/** @defgroup PCD_Speed PCD Speed
  * @{
  */



/**
  * @}
  */

/** @defgroup PCD_PHY_Module PCD PHY Module
  * @{
  */



/**
  * @}
  */

/** @defgroup PCD_Error_Code_definition PCD Error Code definition
  * @brief  PCD Error Code definition
  * @{
  */




/**
  * @}
  */

/**
  * @}
  */

/* Exported macros -----------------------------------------------------------*/
/** @defgroup PCD_Exported_Macros PCD Exported Macros
  *  @brief macros to handle interrupts and specific clock configurations
  * @{
  */
# 219 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pcd.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup PCD_Exported_Functions PCD Exported Functions
  * @{
  */

/* Initialization/de-initialization functions  ********************************/
/** @addtogroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */
HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd);
HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd);
void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd);
void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd);
# 308 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pcd.h"
/**
  * @}
  */

/* I/O operation functions  ***************************************************/
/* Non-Blocking mode: Interrupt */
/** @addtogroup PCD_Exported_Functions_Group2 Input and Output operation functions
  * @{
  */
HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd);
HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd);
void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd);

void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd);
void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd);
void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd);
void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd);
void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd);
void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd);
void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd);

void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum);
/**
  * @}
  */

/* Peripheral Control functions  **********************************************/
/** @addtogroup PCD_Exported_Functions_Group3 Peripheral Control functions
  * @{
  */
HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd);
HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd);
HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address);
HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type);
HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);
HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd);

HAL_StatusTypeDef HAL_PCD_SetTestMode(const PCD_HandleTypeDef *hpcd, uint8_t testmode);


uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef const *hpcd, uint8_t ep_addr);
/**
  * @}
  */

/* Peripheral State functions  ************************************************/
/** @addtogroup PCD_Exported_Functions_Group4 Peripheral State functions
  * @{
  */
PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef const *hpcd);
/**
  * @}
  */

/**
  * @}
  */

/* Private constants ---------------------------------------------------------*/
/** @defgroup PCD_Private_Constants PCD Private Constants
  * @{
  */
/** @defgroup USB_EXTI_Line_Interrupt USB EXTI line interrupt
  * @{
  */






/**
  * @}
  */
/**
  * @}
  */
# 422 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_pcd.h"
/* Private macros ------------------------------------------------------------*/
/** @defgroup PCD_Private_Macros PCD Private Macros
  * @{
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */



}
# 495 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hcd.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_hal_hcd.h
  * @author  MCD Application Team
  * @brief   Header file of HCD HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/




extern "C" {


/* Includes ------------------------------------------------------------------*/
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_ll_usb.h" 1
/**
  ******************************************************************************
  * @file    stm32h7xx_ll_usb.h
  * @author  MCD Application Team
  * @brief   Header file of USB Low Layer HAL module.
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2017 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hcd.h" 2


/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup HCD HCD
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup HCD_Exported_Types HCD Exported Types
  * @{
  */

/** @defgroup HCD_Exported_Types_Group1 HCD State Structure definition
  * @{
  */
typedef enum
{
  HAL_HCD_STATE_RESET = 0x00,
  HAL_HCD_STATE_READY = 0x01,
  HAL_HCD_STATE_ERROR = 0x02,
  HAL_HCD_STATE_BUSY = 0x03,
  HAL_HCD_STATE_TIMEOUT = 0x04
} HCD_StateTypeDef;

typedef USB_OTG_GlobalTypeDef HCD_TypeDef;
typedef USB_OTG_CfgTypeDef HCD_InitTypeDef;
typedef USB_OTG_HCTypeDef HCD_HCTypeDef;
typedef USB_OTG_URBStateTypeDef HCD_URBStateTypeDef;
typedef USB_OTG_HCStateTypeDef HCD_HCStateTypeDef;
/**
  * @}
  */

/** @defgroup HCD_Exported_Types_Group2 HCD Handle Structure definition
  * @{
  */



typedef struct

{
  HCD_TypeDef *Instance;
  HCD_InitTypeDef Init;
  HCD_HCTypeDef hc[16];
  HAL_LockTypeDef Lock;
  volatile HCD_StateTypeDef State;
  volatile uint32_t ErrorCode;
  void *pData;
# 93 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hcd.h"
} HCD_HandleTypeDef;
/**
  * @}
  */

/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup HCD_Exported_Constants HCD Exported Constants
  * @{
  */

/** @defgroup HCD_Speed HCD Speed
  * @{
  */



/**
  * @}
  */

/** @defgroup HCD_Device_Speed HCD Device Speed
  * @{
  */



/**
  * @}
  */

/** @defgroup HCD_PHY_Module HCD PHY Module
  * @{
  */


/**
  * @}
  */

/** @defgroup HCD_Error_Code_definition HCD Error Code definition
  * @brief  HCD Error Code definition
  * @{
  */




/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup HCD_Exported_Macros HCD Exported Macros
  *  @brief macros to handle interrupts and specific clock configurations
  * @{
  */
# 177 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hcd.h"
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @addtogroup HCD_Exported_Functions HCD Exported Functions
  * @{
  */

/** @defgroup HCD_Exported_Functions_Group1 Initialization and de-initialization functions
  * @{
  */
HAL_StatusTypeDef HAL_HCD_Init(HCD_HandleTypeDef *hhcd);
HAL_StatusTypeDef HAL_HCD_DeInit(HCD_HandleTypeDef *hhcd);
HAL_StatusTypeDef HAL_HCD_HC_Init(HCD_HandleTypeDef *hhcd, uint8_t ch_num,
                                  uint8_t epnum, uint8_t dev_address,
                                  uint8_t speed, uint8_t ep_type, uint16_t mps);

HAL_StatusTypeDef HAL_HCD_HC_Halt(HCD_HandleTypeDef *hhcd, uint8_t ch_num);
void HAL_HCD_MspInit(HCD_HandleTypeDef *hhcd);
void HAL_HCD_MspDeInit(HCD_HandleTypeDef *hhcd);
# 245 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_hcd.h"
/**
  * @}
  */

/* I/O operation functions  ***************************************************/
/** @addtogroup HCD_Exported_Functions_Group2 Input and Output operation functions
  * @{
  */
HAL_StatusTypeDef HAL_HCD_HC_SubmitRequest(HCD_HandleTypeDef *hhcd, uint8_t ch_num,
                                           uint8_t direction, uint8_t ep_type,
                                           uint8_t token, uint8_t *pbuff,
                                           uint16_t length, uint8_t do_ping);

HAL_StatusTypeDef HAL_HCD_HC_SetHubInfo(HCD_HandleTypeDef *hhcd, uint8_t ch_num,
                                        uint8_t addr, uint8_t PortNbr);

HAL_StatusTypeDef HAL_HCD_HC_ClearHubInfo(HCD_HandleTypeDef *hhcd, uint8_t ch_num);

/* Non-Blocking mode: Interrupt */
void HAL_HCD_IRQHandler(HCD_HandleTypeDef *hhcd);
void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd);
void HAL_HCD_Connect_Callback(HCD_HandleTypeDef *hhcd);
void HAL_HCD_Disconnect_Callback(HCD_HandleTypeDef *hhcd);
void HAL_HCD_PortEnabled_Callback(HCD_HandleTypeDef *hhcd);
void HAL_HCD_PortDisabled_Callback(HCD_HandleTypeDef *hhcd);
void HAL_HCD_HC_NotifyURBChange_Callback(HCD_HandleTypeDef *hhcd, uint8_t chnum,
                                         HCD_URBStateTypeDef urb_state);
/**
  * @}
  */

/* Peripheral Control functions  **********************************************/
/** @addtogroup HCD_Exported_Functions_Group3 Peripheral Control functions
  * @{
  */
HAL_StatusTypeDef HAL_HCD_ResetPort(HCD_HandleTypeDef *hhcd);
HAL_StatusTypeDef HAL_HCD_Start(HCD_HandleTypeDef *hhcd);
HAL_StatusTypeDef HAL_HCD_Stop(HCD_HandleTypeDef *hhcd);
/**
  * @}
  */

/* Peripheral State functions  ************************************************/
/** @addtogroup HCD_Exported_Functions_Group4 Peripheral State functions
  * @{
  */
HCD_StateTypeDef HAL_HCD_GetState(HCD_HandleTypeDef const *hhcd);
HCD_URBStateTypeDef HAL_HCD_HC_GetURBState(HCD_HandleTypeDef const *hhcd, uint8_t chnum);
HCD_HCStateTypeDef HAL_HCD_HC_GetState(HCD_HandleTypeDef const *hhcd, uint8_t chnum);
uint32_t HAL_HCD_HC_GetXferCount(HCD_HandleTypeDef const *hhcd, uint8_t chnum);
uint32_t HAL_HCD_GetCurrentFrame(HCD_HandleTypeDef *hhcd);
uint32_t HAL_HCD_GetCurrentSpeed(HCD_HandleTypeDef *hhcd);


/**
  * @}
  */

/* Private macros ------------------------------------------------------------*/
/** @defgroup HCD_Private_Macros HCD Private Macros
  * @{
  */
/**
  * @}
  */
/* Private functions prototypes ----------------------------------------------*/

/**
  * @}
  */
/**
  * @}
  */
/**
  * @}
  */



}
# 499 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h" 2


/* Exported macro ------------------------------------------------------------*/
# 519 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal_conf.h"
}
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h" 2

/** @addtogroup STM32H7xx_HAL_Driver
  * @{
  */

/** @addtogroup HAL
  * @{
  */

/* Exported types ------------------------------------------------------------*/
/** @defgroup HAL_TICK_FREQ Tick Frequency
  * @{
  */
typedef enum
{
  HAL_TICK_FREQ_10HZ = 100U,
  HAL_TICK_FREQ_100HZ = 10U,
  HAL_TICK_FREQ_1KHZ = 1U,
  HAL_TICK_FREQ_DEFAULT = HAL_TICK_FREQ_1KHZ
} HAL_TickFreqTypeDef;
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/** @defgroup HAL_Exported_Constants HAL Exported Constants
  * @{
  */
/** @defgroup REV_ID device revision ID
  * @{
  */
# 72 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/**
  * @}
  */

/** @defgroup SYSCFG_Exported_Constants SYSCFG Exported Constants
  * @{
  */

/** @defgroup SYSCFG_VREFBUF_VoltageScale VREFBUF Voltage Scale
  * @{
  */
# 95 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/**
  * @}
  */

/** @defgroup SYSCFG_VREFBUF_HighImpedance VREFBUF High Impedance
  * @{
  */
# 110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/**
  * @}
  */
# 160 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/** @defgroup SYSCFG_Ethernet_Config  Ethernet Config
  * @{
  */






/**
  * @}
  */


/** @defgroup SYSCFG_Analog_Switch_Config  Analog Switch Config
  * @{
  */
# 194 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/**
  * @}
  */
# 214 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/** @defgroup SYSCFG_Boot_Config  Boot Config
  * @{
  */
# 225 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/**
  * @}
  */


/** @defgroup SYSCFG_IOCompenstionCell_Config  IOCompenstionCell Config
  * @{
  */
# 241 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/**
  * @}
  */

/**
  * @}
  */


/** @defgroup EXTI_Event_Input_Config  Event Input Config
  * @{
  */
# 308 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/* EXTI_LINE45 Reserved */
# 355 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/* EXTI_LINE81   Reserved */





/* EXTI_LINE83   Reserved */
# 695 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/**
  * @}
  */


/** @defgroup FMC_SwapBankMapping_Config  SwapBankMapping Config
  * @{
  */







/**
  * @}
  */
/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/** @defgroup HAL_Exported_Macros HAL Exported Macros
  * @{
  */

/** @defgroup ART_Exported_Macros ART Exported Macros
  * @{
  */

/** @brief  ART Enable Macro.
  *         Enable the Cortex-M4 ART cache.
  */


/** @brief  ART Disable Macro.
  *         Disable the Cortex-M4 ART cache.
  */


/** @brief  ART Cache BaseAddress Config.
  *         Configure the Cortex-M4 ART cache Base Address.
  */


/**
  * @}
  */


/** @defgroup SYSCFG_Exported_Macros SYSCFG Exported Macros
  * @{
  */

/** @brief  SYSCFG Break AXIRAM double ECC lock.
  *         Enable and lock the connection of AXIRAM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break ITCM double ECC lock.
  *         Enable and lock the connection of ITCM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break DTCM double ECC lock.
  *         Enable and lock the connection of DTCM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break SRAM1 double ECC lock.
  *         Enable and lock the connection of SRAM1 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break SRAM2 double ECC lock.
  *         Enable and lock the connection of SRAM2 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break SRAM3 double ECC lock.
  *         Enable and lock the connection of SRAM3 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break SRAM4 double ECC lock.
  *         Enable and lock the connection of SRAM4 double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break Backup SRAM double ECC lock.
  *         Enable and lock the connection of Backup SRAM double ECC error to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break Cortex-M7 Lockup lock.
  *         Enable and lock the connection of Cortex-M7 LOCKUP output to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break FLASH double ECC lock.
  *         Enable and lock the connection of Flash double ECC error connection to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */


/** @brief  SYSCFG Break PVD lock.
  *         Enable and lock the PVD connection to Timer1/8/15/16/17 and HRTIMER Break input, as well as the PVDE and PLS[2:0] in the PWR_CR1 register.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */



/** @brief  SYSCFG Break Cortex-M4 Lockup lock.
  *         Enable and lock the connection of Cortex-M4 LOCKUP output to TIM1/8/15/16/17 and HRTIMER Break input.
  * @note   The selected configuration is locked and can be unlocked only by system reset.
            This feature is available on STM32H7 rev.B and above.
  */
# 853 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/**
  * @}
  */

/** @defgroup DBG_Exported_Macros DBG Exported Macros
  * @{
  */

/** @brief  Freeze/Unfreeze Peripherals in Debug mode
  */
# 1028 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
/**
  * @}
  */
/**
  * @}
  */

/** @defgroup HAL_Private_Macros HAL Private Macros
  * @{
  */



/**
  * @}
  */

/* Exported variables --------------------------------------------------------*/

/** @addtogroup HAL_Exported_Variables
  * @{
  */
extern volatile uint32_t uwTick;
extern uint32_t uwTickPrio;
extern HAL_TickFreqTypeDef uwTickFreq;
/**
  * @}
  */

/* Exported functions --------------------------------------------------------*/
/** @defgroup HAL_Exported_Functions HAL Exported Functions
  * @{
  */
/* Initialization and de-initialization functions  ******************************/
/** @defgroup HAL_Group1 Initialization and de-initialization Functions
  * @{
  */
HAL_StatusTypeDef HAL_Init(void);
HAL_StatusTypeDef HAL_DeInit(void);
void HAL_MspInit(void);
void HAL_MspDeInit(void);
HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority);

/**
  * @}
  */

/* Peripheral Control functions  ************************************************/
/** @defgroup HAL_Group2 HAL Control functions
 *
 */
void HAL_IncTick(void);
void HAL_Delay(uint32_t Delay);
uint32_t HAL_GetTick(void);
uint32_t HAL_GetTickPrio(void);
HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq);
HAL_TickFreqTypeDef HAL_GetTickFreq(void);
void HAL_SuspendTick(void);
void HAL_ResumeTick(void);
uint32_t HAL_GetHalVersion(void);
uint32_t HAL_GetREVID(void);
uint32_t HAL_GetDEVID(void);
uint32_t HAL_GetUIDw0(void);
uint32_t HAL_GetUIDw1(void);
uint32_t HAL_GetUIDw2(void);

void HAL_SYSCFG_ETHInterfaceSelect(uint32_t SYSCFG_ETHInterface);

void HAL_SYSCFG_AnalogSwitchConfig(uint32_t SYSCFG_AnalogSwitch , uint32_t SYSCFG_SwitchState );

void HAL_SYSCFG_EnableBOOST(void);
void HAL_SYSCFG_DisableBOOST(void);



void HAL_SYSCFG_CM7BootAddConfig(uint32_t BootRegister, uint32_t BootAddress);



void HAL_SYSCFG_CM4BootAddConfig(uint32_t BootRegister, uint32_t BootAddress);
void HAL_SYSCFG_EnableCM7BOOT(void);
void HAL_SYSCFG_DisableCM7BOOT(void);
void HAL_SYSCFG_EnableCM4BOOT(void);
void HAL_SYSCFG_DisableCM4BOOT(void);

void HAL_EnableCompensationCell(void);
void HAL_DisableCompensationCell(void);
void HAL_SYSCFG_EnableIOSpeedOptimize(void);
void HAL_SYSCFG_DisableIOSpeedOptimize(void);
void HAL_SYSCFG_CompensationCodeSelect(uint32_t SYSCFG_CompCode);
void HAL_SYSCFG_CompensationCodeConfig(uint32_t SYSCFG_PMOSCode, uint32_t SYSCFG_NMOSCode);



void HAL_DBGMCU_EnableDBGSleepMode(void);
void HAL_DBGMCU_DisableDBGSleepMode(void);
void HAL_DBGMCU_EnableDBGStopMode(void);
void HAL_DBGMCU_DisableDBGStopMode(void);
void HAL_DBGMCU_EnableDBGStandbyMode(void);
void HAL_DBGMCU_DisableDBGStandbyMode(void);

void HAL_EnableDomain2DBGSleepMode(void);
void HAL_DisableDomain2DBGSleepMode(void);
void HAL_EnableDomain2DBGStopMode(void);
void HAL_DisableDomain2DBGStopMode(void);
void HAL_EnableDomain2DBGStandbyMode(void);
void HAL_DisableDomain2DBGStandbyMode(void);
# 1144 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/drivers/include/stm32h7xx_hal.h"
void HAL_EXTI_EdgeConfig(uint32_t EXTI_Line , uint32_t EXTI_Edge );
void HAL_EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);

void HAL_EXTI_D2_ClearFlag(uint32_t EXTI_Line);

void HAL_EXTI_D1_ClearFlag(uint32_t EXTI_Line);
void HAL_EXTI_D1_EventInputConfig(uint32_t EXTI_Line , uint32_t EXTI_Mode, uint32_t EXTI_LineCmd);

void HAL_EXTI_D2_EventInputConfig(uint32_t EXTI_Line , uint32_t EXTI_Mode, uint32_t EXTI_LineCmd);

void HAL_EXTI_D3_EventInputConfig(uint32_t EXTI_Line, uint32_t EXTI_LineCmd , uint32_t EXTI_ClearSrc);
void HAL_SetFMCMemorySwappingConfig(uint32_t BankMapConfig);
uint32_t HAL_GetFMCMemorySwappingConfig(void);
void HAL_SYSCFG_VREFBUF_VoltageScalingConfig(uint32_t VoltageScaling);
void HAL_SYSCFG_VREFBUF_HighImpedanceConfig(uint32_t Mode);
void HAL_SYSCFG_VREFBUF_TrimmingConfig(uint32_t TrimmingValue);
HAL_StatusTypeDef HAL_SYSCFG_EnableVREFBUF(void);
void HAL_SYSCFG_DisableVREFBUF(void);







/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */


}
# 284 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/modules/hal/stm32/stm32cube/stm32h7xx/soc/stm32h7xx.h" 2




}



/**
  * @}
  */

/**
  * @}
  */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/soc/st/stm32/stm32h7x/./soc.h" 2
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/modules/cmsis/./cmsis_core_m.h" 2
# 39 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/modules/cmsis/./cmsis_core_m.h"
/* VTOR is only optional on armv6-m and armv8-m baseline. __VTOR_PRESENT is often
 * left undefined on platform where it is not optional.
 */





/* Some platform’s sdk incorrectly define __DSP_PRESENT for Cortex-M4 & Cortex-M7
 * DSP extension. __ARM_FEATURE_DSP is set by the compiler for these. So ignore
 * __DSP_PRESENT discrepancy when __ARM_FEATURE_DSP is defined.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/modules/cmsis/./cmsis_core.h" 2
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline_gcc.h" 2






extern "C" {


/* On ARMv7-M and ARMv8-M Mainline CPUs, this function prevents regular
 * exceptions (i.e. with interrupt priority lower than or equal to
 * _EXC_IRQ_DEFAULT_PRIO) from interrupting the CPU. NMI, Faults, SVC,
 * and Zero Latency IRQs (if supported) may still interrupt the CPU.
 *
 * On ARMv6-M and ARMv8-M Baseline CPUs, this function reads the value of
 * PRIMASK which shows if interrupts are enabled, then disables all interrupts
 * except NMI.
 */

static inline __attribute__((always_inline)) unsigned int arch_irq_lock(void)
{
 unsigned int key;
# 56 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline_gcc.h"
 key = __get_BASEPRI();
 __set_BASEPRI_MAX(((((1 + 0)) << (8 - 4)) & 0xff));
 __ISB();
# 72 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline_gcc.h"
 return key;
}


/* On Cortex-M0/M0+, this enables all interrupts if they were not
 * previously disabled.
 */

static inline __attribute__((always_inline)) void arch_irq_unlock(unsigned int key)
{







 __set_BASEPRI(key);
 __ISB();
# 100 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline_gcc.h"
}

static inline __attribute__((always_inline)) bool arch_irq_unlocked(unsigned int key)
{
 /* This convention works for both PRIMASK and BASEPRI */
 return key == 0U;
}


}
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/asm_inline.h" 2
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/sys_bitops.h" 1
/*
 * Copyright (c) 2020, Wind River Systems, Inc.
 * Copyright (c) 2017, Oticon A/S
 * Copyright (c) 2020, Synopsys
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/* Memory bits manipulation functions in non-arch-specific C code */






# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/sys_bitops.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/sys_bitops.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_io.h" 1
/* Port and memory mapped registers I/O operations */

/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/sys_bitops.h" 2


extern "C" {


static inline __attribute__((always_inline)) void sys_set_bit(mem_addr_t addr, unsigned int bit)
{
 uint32_t temp = *(volatile uint32_t *)addr;

 *(volatile uint32_t *)addr = temp | (1 << bit);
}

static inline __attribute__((always_inline)) void sys_clear_bit(mem_addr_t addr, unsigned int bit)
{
 uint32_t temp = *(volatile uint32_t *)addr;

 *(volatile uint32_t *)addr = temp & ~(1 << bit);
}

static inline __attribute__((always_inline)) int sys_test_bit(mem_addr_t addr, unsigned int bit)
{
 uint32_t temp = *(volatile uint32_t *)addr;

 return temp & (1 << bit);
}

static inline __attribute__((always_inline)) void sys_set_bits(mem_addr_t addr, unsigned int mask)
{
 uint32_t temp = *(volatile uint32_t *)addr;

 *(volatile uint32_t *)addr = temp | mask;
}

static inline __attribute__((always_inline)) void sys_clear_bits(mem_addr_t addr, unsigned int mask)
{
 uint32_t temp = *(volatile uint32_t *)addr;

 *(volatile uint32_t *)addr = temp & ~mask;
}

static inline __attribute__((always_inline))
 void sys_bitfield_set_bit(mem_addr_t addr, unsigned int bit)
{
 /* Doing memory offsets in terms of 32-bit values to prevent
	 * alignment issues
	 */
 sys_set_bit(addr + ((bit >> 5) << 2), bit & 0x1F);
}

static inline __attribute__((always_inline))
 void sys_bitfield_clear_bit(mem_addr_t addr, unsigned int bit)
{
 sys_clear_bit(addr + ((bit >> 5) << 2), bit & 0x1F);
}

static inline __attribute__((always_inline))
 int sys_bitfield_test_bit(mem_addr_t addr, unsigned int bit)
{
 return sys_test_bit(addr + ((bit >> 5) << 2), bit & 0x1F);
}

static inline __attribute__((always_inline))
 int sys_test_and_set_bit(mem_addr_t addr, unsigned int bit)
{
 int ret;

 ret = sys_test_bit(addr, bit);
 sys_set_bit(addr, bit);

 return ret;
}

static inline __attribute__((always_inline))
 int sys_test_and_clear_bit(mem_addr_t addr, unsigned int bit)
{
 int ret;

 ret = sys_test_bit(addr, bit);
 sys_clear_bit(addr, bit);

 return ret;
}

static inline __attribute__((always_inline))
 int sys_bitfield_test_and_set_bit(mem_addr_t addr, unsigned int bit)
{
 int ret;

 ret = sys_bitfield_test_bit(addr, bit);
 sys_bitfield_set_bit(addr, bit);

 return ret;
}

static inline __attribute__((always_inline))
 int sys_bitfield_test_and_clear_bit(mem_addr_t addr, unsigned int bit)
{
 int ret;

 ret = sys_bitfield_test_bit(addr, bit);
 sys_bitfield_clear_bit(addr, bit);

 return ret;
}


}
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/cpu.h" 1
/*
 * Copyright (c) 2015, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/cpu.h"
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/cpu.h" 2



# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/cpu.h"
extern "C" {


/* CP10 Access Bits */







/* CP11 Access Bits */
# 79 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/cpu.h"
}
# 38 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/memory_map.h" 1
/*
 * Copyright (c) 2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM CORTEX-M memory map
 *
 * This module contains definitions for the memory map of the CORTEX-M series of
 * processors.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/memory_map.h" 2

/* 0x00000000 -> 0x1fffffff: Code in ROM [0.5 GB] */



/* 0x20000000 -> 0x3fffffff: SRAM [0.5GB] */







/* 0x40000000 -> 0x5fffffff: Peripherals [0.5GB] */







/* 0x60000000 -> 0x9fffffff: external RAM [1GB] */



/* 0xa0000000 -> 0xdfffffff: external devices [1GB] */



/* 0xe0000000 -> 0xffffffff: varies by processor (see below) */

/* 0xe0000000 -> 0xe00fffff: private peripheral bus */
/* 0xe0000000 -> 0xe003ffff: internal [256KB] */
# 80 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/memory_map.h"
/* 0xe0000000 -> 0xe00fffff: private peripheral bus */
/* 0xe0040000 -> 0xe00fffff: external [768K] */
# 110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/cortex_m/memory_map.h"
/* 0xe0100000 -> 0xffffffff: vendor-specific [0.5GB-1MB or 511MB]  */
# 39 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/sys_io.h" 1
/*
 * Copyright (c) 2015, Wind River Systems, Inc.
 * Copyright (c) 2017, Oticon A/S
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/* Memory mapped registers I/O functions in non-arch-specific C code */






# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/sys_io.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/sys_io.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/sys_io.h" 1
/* Port and memory mapped registers I/O operations */

/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/sys_io.h" 2


extern "C" {


static inline __attribute__((always_inline)) uint8_t sys_read8(mem_addr_t addr)
{
 return *(volatile uint8_t *)addr;
}

static inline __attribute__((always_inline)) void sys_write8(uint8_t data, mem_addr_t addr)
{
 *(volatile uint8_t *)addr = data;
}

static inline __attribute__((always_inline)) uint16_t sys_read16(mem_addr_t addr)
{
 return *(volatile uint16_t *)addr;
}

static inline __attribute__((always_inline)) void sys_write16(uint16_t data, mem_addr_t addr)
{
 *(volatile uint16_t *)addr = data;
}

static inline __attribute__((always_inline)) uint32_t sys_read32(mem_addr_t addr)
{
 return *(volatile uint32_t *)addr;
}

static inline __attribute__((always_inline)) void sys_write32(uint32_t data, mem_addr_t addr)
{
 *(volatile uint32_t *)addr = data;
}

static inline __attribute__((always_inline)) uint64_t sys_read64(mem_addr_t addr)
{
 return *(volatile uint64_t *)addr;
}

static inline __attribute__((always_inline)) void sys_write64(uint64_t data, mem_addr_t addr)
{
 *(volatile uint64_t *)addr = data;
}


}
# 40 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2
# 52 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h"
extern "C" {




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/fatal_types.h" 1
/*
 * Copyright (c) 2023 CSIRO.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/** @file
 *  @brief Fatal base type definitions
 */





extern "C" {


/**
 * @defgroup fatal_types Fatal error base types
 * @ingroup fatal_apis
 * @{
 */

enum k_fatal_error_reason {
 /** Generic CPU exception, not covered by other codes */
 K_ERR_CPU_EXCEPTION,

 /** Unhandled hardware interrupt */
 K_ERR_SPURIOUS_IRQ,

 /** Faulting context overflowed its stack buffer */
 K_ERR_STACK_CHK_FAIL,

 /** Moderate severity software error */
 K_ERR_KERNEL_OOPS,

 /** High severity software error */
 K_ERR_KERNEL_PANIC,

 /** Arch specific fatal errors */
 K_ERR_ARCH_START = 16
};

/** @} */


}
# 58 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h" 2

enum k_fatal_error_reason_arch {
 /* Cortex-M MEMFAULT exceptions */
 K_ERR_ARM_MEM_GENERIC = K_ERR_ARCH_START,
 K_ERR_ARM_MEM_STACKING,
 K_ERR_ARM_MEM_UNSTACKING,
 K_ERR_ARM_MEM_DATA_ACCESS,
 K_ERR_ARM_MEM_INSTRUCTION_ACCESS,
 K_ERR_ARM_MEM_FP_LAZY_STATE_PRESERVATION,

 /* Cortex-M BUSFAULT exceptions */
 K_ERR_ARM_BUS_GENERIC,
 K_ERR_ARM_BUS_STACKING,
 K_ERR_ARM_BUS_UNSTACKING,
 K_ERR_ARM_BUS_PRECISE_DATA_BUS,
 K_ERR_ARM_BUS_IMPRECISE_DATA_BUS,
 K_ERR_ARM_BUS_INSTRUCTION_BUS,
 K_ERR_ARM_BUS_FP_LAZY_STATE_PRESERVATION,

 /* Cortex-M USAGEFAULT exceptions */
 K_ERR_ARM_USAGE_GENERIC,
 K_ERR_ARM_USAGE_DIV_0,
 K_ERR_ARM_USAGE_UNALIGNED_ACCESS,
 K_ERR_ARM_USAGE_STACK_OVERFLOW,
 K_ERR_ARM_USAGE_NO_COPROCESSOR,
 K_ERR_ARM_USAGE_ILLEGAL_EXC_RETURN,
 K_ERR_ARM_USAGE_ILLEGAL_EPSR,
 K_ERR_ARM_USAGE_UNDEFINED_INSTRUCTION,

 /* Cortex-M SECURE exceptions */
 K_ERR_ARM_SECURE_GENERIC,
 K_ERR_ARM_SECURE_ENTRY_POINT,
 K_ERR_ARM_SECURE_INTEGRITY_SIGNATURE,
 K_ERR_ARM_SECURE_EXCEPTION_RETURN,
 K_ERR_ARM_SECURE_ATTRIBUTION_UNIT,
 K_ERR_ARM_SECURE_TRANSITION,
 K_ERR_ARM_SECURE_LAZY_STATE_PRESERVATION,
 K_ERR_ARM_SECURE_LAZY_STATE_ERROR,

 /* Cortex-A/R exceptions*/
 K_ERR_ARM_UNDEFINED_INSTRUCTION,
 K_ERR_ARM_ALIGNMENT_FAULT,
 K_ERR_ARM_BACKGROUND_FAULT,
 K_ERR_ARM_PERMISSION_FAULT,
 K_ERR_ARM_SYNC_EXTERNAL_ABORT,
 K_ERR_ARM_ASYNC_EXTERNAL_ABORT,
 K_ERR_ARM_SYNC_PARITY_ERROR,
 K_ERR_ARM_ASYNC_PARITY_ERROR,
 K_ERR_ARM_DEBUG_EVENT,
 K_ERR_ARM_TRANSLATION_FAULT,
 K_ERR_ARM_UNSUPPORTED_EXCLUSIVE_ACCESS_FAULT
};



/**
 * @brief Declare the ARCH_STACK_PTR_ALIGN
 *
 * Denotes the required alignment of the stack pointer on public API
 * boundaries
 *
 */






/**
 * @brief Declare the minimum alignment for a thread stack
 *
 * Denotes the minimum required alignment of a thread stack.
 *
 * Note:
 * User thread stacks must respect the minimum MPU region
 * alignment requirement.
 */
# 143 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h"
/**
 * @brief Declare a minimum MPU guard alignment and size
 *
 * This specifies the minimum MPU guard alignment/size for the MPU. This
 * will be used to denote the guard section of the stack, if it exists.
 *
 * One key note is that this guard results in extra bytes being added to
 * the stack. APIs which give the stack ptr and stack size will take this
 * guard size into account.
 *
 * Stack is allocated, but initial stack pointer is at the end
 * (highest address).  Stack grows down to the actual allocation
 * address (lowest address).  Stack guard, if present, will comprise
 * the lowest MPU_GUARD_ALIGN_AND_SIZE bytes of the stack.
 *
 * The guard region must include enough space for an exception frame
 * below the trapping region as a stack fault will end up storing
 * the exception data (0x20 bytes) onto the stack below wherever
 * the stack pointer refers, even if that is within the guard region,
 * so we make sure the region is strictly larger than this size by
 * setting it to 0x40 (to respect any power-of-two requirements).
 *
 * As the stack grows down, it will reach the end of the stack when it
 * encounters either the stack guard region, or the stack allocation
 * address.
 *
 * ----------------------- <---- Stack allocation address + stack size +
 * |                     |            MPU_GUARD_ALIGN_AND_SIZE
 * |  Some thread data   | <---- Defined when thread is created
 * |        ...          |
 * |---------------------| <---- Actual initial stack ptr
 * |  Initial Stack Ptr  |       aligned to ARCH_STACK_PTR_ALIGN
 * |        ...          |
 * |        ...          |
 * |        ...          |
 * |        ...          |
 * |        ...          |
 * |        ...          |
 * |        ...          |
 * |        ...          |
 * |  Stack Ends         |
 * |---------------------- <---- Stack Buffer Ptr from API
 * |  MPU Guard,         |
 * |     if present      |
 * ----------------------- <---- Stack Allocation address
 *
 */
# 201 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h"
/**
 * @brief Declare the MPU guard alignment and size for a thread stack
 *        that is using the Floating Point services.
 *
 * For threads that are using the Floating Point services under Shared
 * Registers (CONFIG_FPU_SHARING=y) mode, the exception stack frame may
 * contain both the basic stack frame and the FP caller-saved context,
 * upon exception entry. Therefore, a wide guard region is required to
 * guarantee that stack-overflow detection will always be successful.
 */
# 222 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h"
/**
 * @brief Define alignment of an MPU guard
 *
 * Minimum alignment of the start address of an MPU guard, depending on
 * whether the MPU architecture enforces a size (and power-of-two) alignment
 * requirement.
 */
# 262 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h"
/* On arm, all MPU guards are carve-outs. */


/* Legacy case: retain containing extern "C" with C++ */
# 279 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/arch.h"
}
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/cpu.h" 2
# 37 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/rb.h" 1
/*
 * Copyright (c) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @defgroup rbtree_apis Balanced Red/Black Tree
 * @ingroup datastructure_apis
 *
 * @brief Balanced Red/Black Tree implementation
 *
 * This implements an intrusive balanced tree that guarantees
 * O(log2(N)) runtime for all operations and amortized O(1) behavior
 * for creation and destruction of whole trees. The algorithms and
 * naming are conventional per existing academic and didactic
 * implementations, c.f.:
 *
 * https://en.wikipedia.org/wiki/Red%E2%80%93black_tree
 *
 * The implementation is size-optimized to prioritize runtime memory
 * usage. The data structure is intrusive, which is to say the @ref
 * rbnode handle is intended to be placed in a separate struct, in the
 * same way as with other such structures (e.g. Zephyr's @ref
 * doubly-linked-list_apis), and requires no data pointer to be stored
 * in the node. The color bit is unioned with a pointer (fairly common
 * for such libraries). Most notably, there is no "parent" pointer
 * stored in the node, the upper structure of the tree being generated
 * dynamically via a stack as the tree is recursed. So the overall
 * memory overhead of a node is just two pointers, identical with a
 * doubly-linked list.
 *
 * @{
 */
# 38 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h" 1
/*
 * Copyright (c) 2014-2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Variables needed for system clock
 *
 *
 * Declare variables used by both system timer device driver and kernel
 * components that use timer functionality.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 1
/*
 * Copyright (c) 2013-2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @defgroup doubly-linked-list_apis Doubly-linked list
 * @ingroup datastructure_apis
 *
 * @brief Doubly-linked list implementation
 *
 * Doubly-linked list implementation using inline macros/functions.
 * This API is not thread safe, and thus if a list is used across threads,
 * calls to functions must be protected with synchronization primitives.
 *
 * The lists are expected to be initialized such that both the head and tail
 * pointers point to the list itself.  Initializing the lists in such a fashion
 * simplifies the adding and removing of nodes to/from the list.
 *
 * @{
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h" 1
/*
 * Copyright (c) 2019 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h" 2


extern "C" {


/**
 * @addtogroup clock_apis
 * @{
 */

/**
 * @brief Tick precision used in timeout APIs
 *
 * This type defines the word size of the timeout values used in
 * k_timeout_t objects, and thus defines an upper bound on maximum
 * timeout length (or equivalently minimum tick duration).  Note that
 * this does not affect the size of the system uptime counter, which
 * is always a 64 bit count of ticks.
 */

typedef int64_t k_ticks_t;






/**
 * @brief Kernel timeout type
 *
 * Timeout arguments presented to kernel APIs are stored in this
 * opaque type, which is capable of representing times in various
 * formats and units.  It should be constructed from application data
 * using one of the macros defined for this purpose (e.g. `K_MSEC()`,
 * `K_TIMEOUT_ABS_TICKS()`, etc...), or be one of the two constants
 * K_NO_WAIT or K_FOREVER.  Applications should not inspect the
 * internal data once constructed.  Timeout values may be compared for
 * equality with the `K_TIMEOUT_EQ()` macro.
 */
typedef struct {
 k_ticks_t ticks;
} k_timeout_t;

/**
 * @brief Compare timeouts for equality
 *
 * The k_timeout_t object is an opaque struct that should not be
 * inspected by application code.  This macro exists so that users can
 * test timeout objects for equality with known constants
 * (e.g. K_NO_WAIT and K_FOREVER) when implementing their own APIs in
 * terms of Zephyr timeout constants.
 *
 * @return True if the timeout objects are identical
 */


/** number of nanoseconds per microsecond */


/** number of nanoseconds per millisecond */


/** number of microseconds per millisecond */


/** number of milliseconds per second */


/** number of seconds per minute */


/** number of seconds per hour */


/** number of seconds per day */


/** number of minutes per hour */


/** number of hours per day */


/** number of microseconds per second */


/** number of nanoseconds per second */


/** @} */

/** @cond INTERNAL_HIDDEN */
# 142 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h"
/* Converts between absolute timeout expiration values (packed into
 * the negative space below K_TICKS_FOREVER) and (non-negative) delta
 * timeout values.  If the result of Z_TICK_ABS(t) is >= 0, then the
 * value was an absolute timeout with the returned expiration time.
 * Note that this macro is bidirectional: Z_TICK_ABS(Z_TICK_ABS(t)) ==
 * t for all inputs, and that the representation of K_TICKS_FOREVER is
 * the same value in both spaces!  Clever, huh?
 */


/* Test for relative timeout */






/* added tick needed to account for tick in progress */


/** @endcond */
# 171 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h"
/* kernel clocks */

/*
 * We default to using 64-bit intermediates in timescale conversions,
 * but if the HW timer cycles/sec, ticks/sec and ms/sec are all known
 * to be nicely related, then we can cheat with 32 bits instead.
 */
/**
 * @addtogroup clock_apis
 * @{
 */
# 193 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h"
/**
 * SYS_CLOCK_HW_CYCLES_TO_NS_AVG converts CPU clock cycles to nanoseconds
 * and calculates the average cycle time
 */



/**
 *
 * @brief Return the lower part of the current system tick count
 *
 * @return the current system tick count
 *
 */
uint32_t sys_clock_tick_get_32(void);

/**
 *
 * @brief Return the current system tick count
 *
 * @return the current system tick count
 *
 */
int64_t sys_clock_tick_get(void);
# 225 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h"
/**
 * @brief Kernel timepoint type
 *
 * Absolute timepoints are stored in this opaque type.
 * It is best not to inspect its content directly.
 *
 * @see sys_timepoint_calc()
 * @see sys_timepoint_timeout()
 * @see sys_timepoint_expired()
 */
typedef struct { uint64_t tick; } k_timepoint_t;

/**
 * @brief Calculate a timepoint value
 *
 * Returns a timepoint corresponding to the expiration (relative to an
 * unlocked "now"!) of a timeout object.  When used correctly, this should
 * be called once, synchronously with the user passing a new timeout value.
 * It should not be used iteratively to adjust a timeout (see
 * `sys_timepoint_timeout()` for that purpose).
 *
 * @param timeout Timeout value relative to current time (may also be
 *                `K_FOREVER` or `K_NO_WAIT`).
 * @retval Timepoint value corresponding to given timeout
 *
 * @see sys_timepoint_timeout()
 * @see sys_timepoint_expired()
 */
k_timepoint_t sys_timepoint_calc(k_timeout_t timeout);

/**
 * @brief Remaining time to given timepoint
 *
 * Returns the timeout interval between current time and provided timepoint.
 * If the timepoint is now in the past or if it was created with `K_NO_WAIT`
 * then `K_NO_WAIT` is returned. If it was created with `K_FOREVER` then
 * `K_FOREVER` is returned.
 *
 * @param timepoint Timepoint for which a timeout value is wanted.
 * @retval Corresponding timeout value.
 *
 * @see sys_timepoint_calc()
 */
k_timeout_t sys_timepoint_timeout(k_timepoint_t timepoint);

/**
 * @brief Compare two timepoint values.
 *
 * This function is used to compare two timepoint values.
 *
 * @param a Timepoint to compare
 * @param b Timepoint to compare against.
 * @return zero if both timepoints are the same. Negative value if timepoint @a a is before
 * timepoint @a b, positive otherwise.
 */
static inline int sys_timepoint_cmp(k_timepoint_t a, k_timepoint_t b)
{
 if (a.tick == b.tick) {
  return 0;
 }
 return a.tick < b.tick ? -1 : 1;
}
# 320 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h"
/**
 * @brief Indicates if timepoint is expired
 *
 * @param timepoint Timepoint to evaluate
 * @retval true if the timepoint is in the past, false otherwise
 *
 * @see sys_timepoint_calc()
 */
static inline bool sys_timepoint_expired(k_timepoint_t timepoint)
{
 return ((sys_timepoint_timeout(timepoint)).ticks == (((k_timeout_t) {0})).ticks);
}

/** @} */


}
# 39 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h" 1
/*
 * Copyright (c) 2018 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Public interface for spinlocks
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */




typedef int error_t;



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/errno.h" 1 3 4
/*
Copyright (c) 1982, 1986, 1993
The Regents of the University of California.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* errno is not a global variable, because that would make using it
   non-reentrant.  Instead, its address is returned by the function
   __errno.  */



extern "C" {



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/config.h" 1 3 4
/*
Copyright (c) 1982, 1986, 1993
The Regents of the University of California.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 40 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/errno.h" 2 3 4

/* Please don't use these variables directly.
   Use strerror instead. */
extern const char * const _sys_errlist[];
extern int _sys_nerr;
# 62 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/errno.h" 3 4
extern __thread int errno;
# 237 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/errno.h" 3 4
}
# 43 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 2 3 4
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/cpu.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/cpu.h"
/* cpu.h - automatically selects the correct arch.h file to include */

/*
 * Copyright (c) 1997-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 1
/*
 * Copyright (c) 1997-2015, Wind River Systems, Inc.
 * Copyright (c) 2021 Intel Corporation
 * Copyright (c) 2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 1
/*
 * Copyright (c) 2011-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h" 1
/*
 * Copyright (c) 2019 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h" 2


extern "C" {


/**
 * @brief Spinlock APIs
 * @defgroup spinlock_apis Spinlock APIs
 * @ingroup kernel_apis
 * @{
 */

struct z_spinlock_key {
 int key;
};

/**
 * @brief Kernel Spin Lock
 *
 * This struct defines a spin lock record on which CPUs can wait with
 * k_spin_lock().  Any number of spinlocks may be defined in
 * application code.
 */
struct k_spinlock {
/**
 * @cond INTERNAL_HIDDEN
 */
# 83 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h"
 /* If CONFIG_SMP and CONFIG_SPIN_VALIDATE are both not defined
	 * the k_spinlock struct will have no members. The result
	 * is that in C sizeof(k_spinlock) is 0 and in C++ it is 1.
	 *
	 * This size difference causes problems when the k_spinlock
	 * is embedded into another struct like k_msgq, because C and
	 * C++ will have different ideas on the offsets of the members
	 * that come after the k_spinlock member.
	 *
	 * To prevent this we add a 1 byte dummy member to k_spinlock
	 * when the user selects C++ support and k_spinlock would
	 * otherwise be empty.
	 */
 char dummy;

/**
 * INTERNAL_HIDDEN @endcond
 */
};

/* There's a spinlock validation framework available when asserts are
 * enabled.  It adds a relatively hefty overhead (about 3k or so) to
 * kernel code size, don't use on platforms known to be small.
 */
# 119 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h"
/**
 * @brief Spinlock key type
 *
 * This type defines a "key" value used by a spinlock implementation
 * to store the system interrupt state at the time of a call to
 * k_spin_lock().  It is expected to be passed to a matching
 * k_spin_unlock().
 *
 * This type is opaque and should not be inspected by application
 * code.
 */
typedef struct z_spinlock_key k_spinlock_key_t;

static inline __attribute__((always_inline)) void z_spinlock_validate_pre(struct k_spinlock *l)
{
 (void)(l);






}

static inline __attribute__((always_inline)) void z_spinlock_validate_post(struct k_spinlock *l)
{
 (void)(l);






}

/**
 * @brief Lock a spinlock
 *
 * This routine locks the specified spinlock, returning a key handle
 * representing interrupt state needed at unlock time.  Upon
 * returning, the calling thread is guaranteed not to be suspended or
 * interrupted on its current CPU until it calls k_spin_unlock().  The
 * implementation guarantees mutual exclusion: exactly one thread on
 * one CPU will return from k_spin_lock() at a time.  Other CPUs
 * trying to acquire a lock already held by another CPU will enter an
 * implementation-defined busy loop ("spinning") until the lock is
 * released.
 *
 * Separate spin locks may be nested. It is legal to lock an
 * (unlocked) spin lock while holding a different lock.  Spin locks
 * are not recursive, however: an attempt to acquire a spin lock that
 * the CPU already holds will deadlock.
 *
 * In circumstances where only one CPU exists, the behavior of
 * k_spin_lock() remains as specified above, though obviously no
 * spinning will take place.  Implementations may be free to optimize
 * in uniprocessor contexts such that the locking reduces to an
 * interrupt mask operation.
 *
 * @param l A pointer to the spinlock to lock
 * @return A key value that must be passed to k_spin_unlock() when the
 *         lock is released.
 */
static inline __attribute__((always_inline)) k_spinlock_key_t k_spin_lock(struct k_spinlock *l)
{
 (void)(l);
 k_spinlock_key_t k;

 /* Note that we need to use the underlying arch-specific lock
	 * implementation.  The "irq_lock()" API in SMP context is
	 * actually a wrapper for a global spinlock!
	 */
 k.key = arch_irq_lock();

 z_spinlock_validate_pre(l);
# 211 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h"
 z_spinlock_validate_post(l);

 return k;
}

/**
 * @brief Attempt to lock a spinlock
 *
 * This routine makes one attempt to lock @p l. If it is successful, then
 * it will store the key into @p k.
 *
 * @param[in] l A pointer to the spinlock to lock
 * @param[out] k A pointer to the spinlock key
 * @retval 0 on success
 * @retval -EBUSY if another thread holds the lock
 *
 * @see k_spin_lock
 * @see k_spin_unlock
 */
static inline __attribute__((always_inline)) int k_spin_trylock(struct k_spinlock *l, k_spinlock_key_t *k)
{
 int key = arch_irq_lock();

 z_spinlock_validate_pre(l);
# 266 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h"
 z_spinlock_validate_post(l);

 k->key = key;

 return 0;






}

/**
 * @brief Unlock a spin lock
 *
 * This releases a lock acquired by k_spin_lock().  After this
 * function is called, any CPU will be able to acquire the lock.  If
 * other CPUs are currently spinning inside k_spin_lock() waiting for
 * this lock, exactly one of them will return synchronously with the
 * lock held.
 *
 * Spin locks must be properly nested.  A call to k_spin_unlock() must
 * be made on the lock object most recently locked using
 * k_spin_lock(), using the key value that it returned.  Attempts to
 * unlock mis-nested locks, or to unlock locks that are not held, or
 * to passing a key parameter other than the one returned from
 * k_spin_lock(), are illegal.  When CONFIG_SPIN_VALIDATE is set, some
 * of these errors can be detected by the framework.
 *
 * @param l A pointer to the spinlock to release
 * @param key The value returned from k_spin_lock() when this lock was
 *        acquired
 */
static inline __attribute__((always_inline)) void k_spin_unlock(struct k_spinlock *l,
     k_spinlock_key_t key)
{
 (void)(l);
# 331 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h"
 arch_irq_unlock(key.key);
}

/**
 * @cond INTERNAL_HIDDEN
 */
# 358 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h"
/* Internal function: releases the lock, but leaves local interrupts disabled */
static inline __attribute__((always_inline)) void k_spin_release(struct k_spinlock *l)
{
 (void)(l);
# 372 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h"
}
# 385 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/spinlock.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief Leaves a code block guarded with @ref K_SPINLOCK after releasing the
 * lock.
 *
 * See @ref K_SPINLOCK for details.
 */


/**
 * @brief Guards a code block with the given spinlock, automatically acquiring
 * the lock before executing the code block. The lock will be released either
 * when reaching the end of the code block or when leaving the block with
 * @ref K_SPINLOCK_BREAK.
 *
 * @details Example usage:
 *
 * @code{.c}
 * K_SPINLOCK(&mylock) {
 *
 *   ...execute statements with the lock held...
 *
 *   if (some_condition) {
 *     ...release the lock and leave the guarded section prematurely:
 *     K_SPINLOCK_BREAK;
 *   }
 *
 *   ...execute statements with the lock held...
 *
 * }
 * @endcode
 *
 * Behind the scenes this pattern expands to a for-loop whose body is executed
 * exactly once:
 *
 * @code{.c}
 * for (k_spinlock_key_t key = k_spin_lock(&mylock); ...; k_spin_unlock(&mylock, key)) {
 *     ...
 * }
 * @endcode
 *
 * @warning The code block must execute to its end or be left by calling
 * @ref K_SPINLOCK_BREAK. Otherwise, e.g. if exiting the block with a break,
 * goto or return statement, the spinlock will not be released on exit.
 *
 * @note In user mode the spinlock must be placed in memory accessible to the
 * application, see @ref K_APP_DMEM and @ref K_APP_BMEM macros for details.
 *
 * @param lck Spinlock used to guard the enclosed code block.
 */




/** @} */


}
# 40 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/fatal.h" 1
/*
 * Copyright (c) 2019 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/** @file
 *  @brief Fatal error functions
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/cpu.h" 1
/* cpu.h - automatically selects the correct arch.h file to include */

/*
 * Copyright (c) 1997-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/fatal.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/exception.h" 1
/* exception.h - automatically selects the correct exception.h file to include */

/*
 * Copyright (c) 2024 Meta Platforms
 * SPDX-License-Identifier: Apache-2.0
 */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/exception.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arm/exception.h" 1
/*
 * Copyright (c) 2013-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief ARM AArch32 public exception handling
 *
 * ARM AArch32-specific kernel exception handling interface. Included by
 * arm/arch.h.
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/exception.h" 2
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/fatal.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/fatal.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/fatal_types.h" 1
/*
 * Copyright (c) 2023 CSIRO.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/** @file
 *  @brief Fatal base type definitions
 */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/fatal.h" 2


extern "C" {


/**
 * @defgroup fatal_apis Fatal error APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Halt the system on a fatal error
 *
 * Invokes architecture-specific code to power off or halt the system in
 * a low power state. Lacking that, lock interrupts and sit in an idle loop.
 *
 * @param reason Fatal exception reason code
 */
__attribute__((__noreturn__)) void k_fatal_halt(unsigned int reason);

/**
 * @brief Fatal error policy handler
 *
 * This function is not invoked by application code, but is declared as a
 * weak symbol so that applications may introduce their own policy.
 *
 * The default implementation of this function halts the system
 * unconditionally. Depending on architecture support, this may be
 * a simple infinite loop, power off the hardware, or exit an emulator.
 *
 * If this function returns, then the currently executing thread will be
 * aborted.
 *
 * A few notes for custom implementations:
 *
 * - If the error is determined to be unrecoverable, LOG_PANIC() should be
 *   invoked to flush any pending logging buffers.
 * - K_ERR_KERNEL_PANIC indicates a severe unrecoverable error in the kernel
 *   itself, and should not be considered recoverable. There is an assertion
 *   in z_fatal_error() to enforce this.
 * - Even outside of a kernel panic, unless the fault occurred in user mode,
 *   the kernel itself may be in an inconsistent state, with API calls to
 *   kernel objects possibly exhibiting undefined behavior or triggering
 *   another exception.
 *
 * @param reason The reason for the fatal error
 * @param esf Exception context, with details and partial or full register
 *            state when the error occurred. May in some cases be NULL.
 */
void k_sys_fatal_error_handler(unsigned int reason, const struct arch_esf *esf);

/**
 * @brief Called by architecture code upon a fatal error.
 *
 * This function dumps out architecture-agnostic information about the error
 * and then makes a policy decision on what to do by invoking
 * k_sys_fatal_error_handler().
 *
 * On architectures where k_thread_abort() never returns, this function
 * never returns either.
 *
 * @param reason The reason for the fatal error
 * @param esf Exception context, with details and partial or full register
 *            state when the error occurred. May in some cases be NULL.
 */
void z_fatal_error(unsigned int reason, const struct arch_esf *esf);

/** @} */


}
# 41 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq.h" 1
/*
 * Copyright (c) 2015 Intel corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Public interface for configuring interrupts
 */



/* Pull in the arch-specific implementations */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/cpu.h" 1
/* cpu.h - automatically selects the correct arch.h file to include */

/*
 * Copyright (c) 1997-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq.h" 2


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/irq.h" 2


extern "C" {


/**
 * @defgroup isr_apis Interrupt Service Routine APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Initialize an interrupt handler.
 *
 * This routine initializes an interrupt handler for an IRQ. The IRQ must be
 * subsequently enabled before the interrupt handler begins servicing
 * interrupts.
 *
 * @warning
 * Although this routine is invoked at run-time, all of its arguments must be
 * computable by the compiler at build time.
 *
 * @param irq_p IRQ line number.
 * @param priority_p Interrupt priority.
 * @param isr_p Address of interrupt service routine.
 * @param isr_param_p Parameter passed to interrupt service routine.
 * @param flags_p Architecture-specific IRQ configuration flags..
 */



/**
 * Configure a dynamic interrupt.
 *
 * Use this instead of IRQ_CONNECT() if arguments cannot be known at build time.
 *
 * @param irq IRQ line number
 * @param priority Interrupt priority
 * @param routine Interrupt service routine
 * @param parameter ISR parameter
 * @param flags Arch-specific IRQ configuration flags
 *
 * @return The vector assigned to this interrupt
 */
static inline int
irq_connect_dynamic(unsigned int irq, unsigned int priority,
      void (*routine)(const void *parameter),
      const void *parameter, uint32_t flags)
{
 return arch_irq_connect_dynamic(irq, priority, routine, parameter,
     flags);
}

/**
 * Disconnect a dynamic interrupt.
 *
 * Use this in conjunction with shared interrupts to remove a routine/parameter
 * pair from the list of clients using the same interrupt line. If the interrupt
 * is not being shared then the associated _sw_isr_table entry will be replaced
 * by (NULL, z_irq_spurious) (default entry).
 *
 * @param irq IRQ line number
 * @param priority Interrupt priority
 * @param routine Interrupt service routine
 * @param parameter ISR parameter
 * @param flags Arch-specific IRQ configuration flags
 *
 * @return 0 in case of success, negative value otherwise
 */
static inline int
irq_disconnect_dynamic(unsigned int irq, unsigned int priority,
         void (*routine)(const void *parameter),
         const void *parameter, uint32_t flags)
{
 return arch_irq_disconnect_dynamic(irq, priority, routine,
        parameter, flags);
}

/**
 * @brief Initialize a 'direct' interrupt handler.
 *
 * This routine initializes an interrupt handler for an IRQ. The IRQ must be
 * subsequently enabled via irq_enable() before the interrupt handler begins
 * servicing interrupts.
 *
 * These ISRs are designed for performance-critical interrupt handling and do
 * not go through common interrupt handling code. They must be implemented in
 * such a way that it is safe to put them directly in the vector table.  For
 * ISRs written in C, The ISR_DIRECT_DECLARE() macro will do this
 * automatically. For ISRs written in assembly it is entirely up to the
 * developer to ensure that the right steps are taken.
 *
 * This type of interrupt currently has a few limitations compared to normal
 * Zephyr interrupts:
 * - No parameters are passed to the ISR.
 * - No stack switch is done, the ISR will run on the interrupted context's
 *   stack, unless the architecture automatically does the stack switch in HW.
 * - Interrupt locking state is unchanged from how the HW sets it when the ISR
 *   runs. On arches that enter ISRs with interrupts locked, they will remain
 *   locked.
 * - Scheduling decisions are now optional, controlled by the return value of
 *   ISRs implemented with the ISR_DIRECT_DECLARE() macro
 * - The call into the OS to exit power management idle state is now optional.
 *   Normal interrupts always do this before the ISR is run, but when it runs
 *   is now controlled by the placement of a ISR_DIRECT_PM() macro, or omitted
 *   entirely.
 *
 * @warning
 * Although this routine is invoked at run-time, all of its arguments must be
 * computable by the compiler at build time.
 *
 * @param irq_p IRQ line number.
 * @param priority_p Interrupt priority.
 * @param isr_p Address of interrupt service routine.
 * @param flags_p Architecture-specific IRQ configuration flags.
 */



/**
 * @brief Common tasks before executing the body of an ISR
 *
 * This macro must be at the beginning of all direct interrupts and performs
 * minimal architecture-specific tasks before the ISR itself can run. It takes
 * no arguments and has no return value.
 */


/**
 * @brief Common tasks before exiting the body of an ISR
 *
 * This macro must be at the end of all direct interrupts and performs
 * minimal architecture-specific tasks like EOI. It has no return value.
 *
 * In a normal interrupt, a check is done at end of interrupt to invoke
 * z_swap() logic if the current thread is preemptible and there is another
 * thread ready to run in the kernel's ready queue cache. This is now optional
 * and controlled by the check_reschedule argument. If unsure, set to nonzero.
 * On systems that do stack switching and nested interrupt tracking in software,
 * z_swap() should only be called if this was a non-nested interrupt.
 *
 * @param check_reschedule If nonzero, additionally invoke scheduling logic
 */



/**
 * @brief Perform power management idle exit logic
 *
 * This macro may optionally be invoked somewhere in between IRQ_DIRECT_HEADER()
 * and IRQ_DIRECT_FOOTER() invocations. It performs tasks necessary to
 * exit power management idle state. It takes no parameters and returns no
 * arguments. It may be omitted, but be careful!
 */


/**
 * @brief Helper macro to declare a direct interrupt service routine.
 *
 * This will declare the function in a proper way and automatically include
 * the ISR_DIRECT_FOOTER() and ISR_DIRECT_HEADER() macros. The function should
 * return nonzero status if a scheduling decision should potentially be made.
 * See ISR_DIRECT_FOOTER() for more details on the scheduling decision.
 *
 * For architectures that support 'regular' and 'fast' interrupt types, where
 * these interrupt types require different assembly language handling of
 * registers by the ISR, this will always generate code for the 'fast'
 * interrupt type.
 *
 * Example usage:
 *
 *     ISR_DIRECT_DECLARE(my_isr)
 *     {
 *             bool done = do_stuff();
 *             ISR_DIRECT_PM(); // done after do_stuff() due to latency concerns
 *             if (!done) {
 *                 return 0; // don't bother checking if we have to z_swap()
 *             }
 *
 *             k_sem_give(some_sem);
 *             return 1;
 *      }
 *
 * @param name symbol name of the ISR
 */


/**
 * @brief Lock interrupts.
 * @def irq_lock()
 *
 * This routine disables all interrupts on the CPU. It returns an unsigned
 * integer "lock-out key", which is an architecture-dependent indicator of
 * whether interrupts were locked prior to the call. The lock-out key must be
 * passed to irq_unlock() to re-enable interrupts.
 *
 * @note
 * This routine must also serve as a memory barrier to ensure the uniprocessor
 * implementation of spinlocks is correct.
 *
 * This routine can be called recursively, as long as the caller keeps track
 * of each lock-out key that is generated. Interrupts are re-enabled by
 * passing each of the keys to irq_unlock() in the reverse order they were
 * acquired. (That is, each call to irq_lock() must be balanced by
 * a corresponding call to irq_unlock().)
 *
 * This routine can only be invoked from supervisor mode. Some architectures
 * (for example, ARM) will fail silently if invoked from user mode instead
 * of generating an exception.
 *
 * @note
 * This routine can be called by ISRs or by threads. If it is called by a
 * thread, the interrupt lock is thread-specific; this means that interrupts
 * remain disabled only while the thread is running. If the thread performs an
 * operation that allows another thread to run (for example, giving a semaphore
 * or sleeping for N milliseconds), the interrupt lock no longer applies and
 * interrupts may be re-enabled while other processing occurs. When the thread
 * once again becomes the current thread, the kernel re-establishes its
 * interrupt lock; this ensures the thread won't be interrupted until it has
 * explicitly released the interrupt lock it established.
 *
 * @warning
 * The lock-out key should never be used to manually re-enable interrupts
 * or to inspect or manipulate the contents of the CPU's interrupt bits.
 *
 * @return An architecture-dependent lock-out key representing the
 *         "interrupt disable state" prior to the call.
 */







/**
 * @brief Unlock interrupts.
 * @def irq_unlock()
 *
 * This routine reverses the effect of a previous call to irq_lock() using
 * the associated lock-out key. The caller must call the routine once for
 * each time it called irq_lock(), supplying the keys in the reverse order
 * they were acquired, before interrupts are enabled.
 *
 * @note
 * This routine must also serve as a memory barrier to ensure the uniprocessor
 * implementation of spinlocks is correct.
 *
 * This routine can only be invoked from supervisor mode. Some architectures
 * (for example, ARM) will fail silently if invoked from user mode instead
 * of generating an exception.
 *
 * @note Can be called by ISRs.
 *
 * @param key Lock-out key generated by irq_lock().
 */







/**
 * @brief Enable an IRQ.
 *
 * This routine enables interrupts from source @a irq.
 *
 * @param irq IRQ line.
 */


/**
 * @brief Disable an IRQ.
 *
 * This routine disables interrupts from source @a irq.
 *
 * @param irq IRQ line.
 */


/**
 * @brief Get IRQ enable state.
 *
 * This routine indicates if interrupts from source @a irq are enabled.
 *
 * @param irq IRQ line.
 *
 * @return interrupt enable state, true or false
 */


/**
 * @}
 */


}
# 42 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread_stack.h" 1
/*
 * Copyright (c) 2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Macros for declaring thread stacks
 */

/**
 * @brief Thread Stack APIs
 * @ingroup kernel_apis
 * @defgroup thread_stack_api Thread Stack APIs
 * @{
 * @}
 */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/cpu.h" 1
/* cpu.h - automatically selects the correct arch.h file to include */

/*
 * Copyright (c) 1997-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread_stack.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread_stack.h" 2


extern "C" {


/* Using typedef deliberately here, this is quite intended to be an opaque
 * type.
 *
 * The purpose of this data type is to clearly distinguish between the
 * declared symbol for a stack (of type k_thread_stack_t) and the underlying
 * buffer which composes the stack data actually used by the underlying
 * thread; they cannot be used interchangeably as some arches precede the
 * stack buffer region with guard areas that trigger a MPU or MMU fault
 * if written to.
 *
 * APIs that want to work with the buffer inside should continue to use
 * char *.
 *
 * Stacks should always be created with K_THREAD_STACK_DEFINE().
 */
struct 
# 47 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread_stack.h" 3 4
      __attribute__((__packed__)) 
# 47 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread_stack.h"
               z_thread_stack_element {
 char data;
};

/**
 * @typedef k_thread_stack_t
 * @brief Typedef of struct z_thread_stack_element
 *
 * @see z_thread_stack_element
 */


/**
 * @brief Properly align a CPU stack pointer value
 *
 * Take the provided value and round it down such that the value is aligned
 * to the CPU and ABI requirements. This is not used for any memory protection
 * hardware requirements.
 *
 * @param ptr Proposed stack pointer address
 * @return Properly aligned stack pointer address
 */
static inline char *z_stack_ptr_align(char *ptr)
{
 return (char *)(((unsigned long)(ptr) / (unsigned long)(8)) * (unsigned long)(8));
}


/**
 * @brief Helper macro for getting a stack frame struct
 *
 * It is very common for architectures to define a struct which contains
 * all the data members that are pre-populated in arch_new_thread().
 *
 * Given a type and an initial stack pointer, return a properly cast
 * pointer to the frame struct.
 *
 * @param type Type of the initial stack frame struct
 * @param ptr Initial aligned stack pointer value
 * @return Pointer to stack frame struct within the stack buffer
 */
# 110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread_stack.h"
/**
 * @addtogroup thread_stack_api
 * @{
 */

/**
 * @brief Declare a reference to a thread stack
 *
 * This macro declares the symbol of a thread stack defined elsewhere in the
 * current scope.
 *
 * @param sym Thread stack symbol name
 * @param size Size of the stack memory region
 */




/**
 * @brief Declare a reference to a thread stack array
 *
 * This macro declares the symbol of a thread stack array defined elsewhere in
 * the current scope.
 *
 * @param sym Thread stack symbol name
 * @param nmemb Number of stacks defined
 * @param size Size of the stack memory region
 */




/**
 * @brief Declare a reference to a pinned thread stack array
 *
 * This macro declares the symbol of a pinned thread stack array defined
 * elsewhere in the current scope.
 *
 * @param sym Thread stack symbol name
 * @param nmemb Number of stacks defined
 * @param size Size of the stack memory region
 */




/**
 * @brief Define a toplevel kernel stack memory region in specified section
 *
 * This defines a region of memory for use as a thread stack in
 * the specified linker section.
 *
 * It is legal to precede this definition with the 'static' keyword.
 *
 * It is NOT legal to take the sizeof(sym) and pass that to the stackSize
 * parameter of k_thread_create(), it may not be the same as the
 * 'size' parameter. Use K_KERNEL_STACK_SIZEOF() instead.
 *
 * The total amount of memory allocated may be increased to accommodate
 * fixed-size stack overflow guards.
 *
 * @param sym Thread stack symbol name
 * @param size Size of the stack memory region
 * @param lsect Linker section for this stack
 */





/**
 * @brief Define a toplevel array of kernel stack memory regions in specified section
 *
 * @param sym Kernel stack array symbol name
 * @param nmemb Number of stacks to define
 * @param size Size of the stack memory region
 * @param lsect Linker section for this array of stacks
 */





/**
 * @brief Define a toplevel kernel stack memory region
 *
 * This defines a region of memory for use as a thread stack, for threads
 * that exclusively run in supervisor mode. This is also suitable for
 * declaring special stacks for interrupt or exception handling.
 *
 * Stacks defined with this macro may not host user mode threads.
 *
 * It is legal to precede this definition with the 'static' keyword.
 *
 * It is NOT legal to take the sizeof(sym) and pass that to the stackSize
 * parameter of k_thread_create(), it may not be the same as the
 * 'size' parameter. Use K_KERNEL_STACK_SIZEOF() instead.
 *
 * The total amount of memory allocated may be increased to accommodate
 * fixed-size stack overflow guards.
 *
 * @param sym Thread stack symbol name
 * @param size Size of the stack memory region
 */



/**
 * @brief Define a toplevel kernel stack memory region in pinned section
 *
 * See K_KERNEL_STACK_DEFINE() for more information and constraints.
 *
 * This puts the stack into the pinned noinit linker section if
 * CONFIG_LINKER_USE_PINNED_SECTION is enabled, or else it would
 * put the stack into the same section as K_KERNEL_STACK_DEFINE().
 *
 * @param sym Thread stack symbol name
 * @param size Size of the stack memory region
 */
# 237 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread_stack.h"
/**
 * @brief Define a toplevel array of kernel stack memory regions
 *
 * Stacks defined with this macro may not host user mode threads.
 *
 * @param sym Kernel stack array symbol name
 * @param nmemb Number of stacks to define
 * @param size Size of the stack memory region
 */



/**
 * @brief Define a toplevel array of kernel stack memory regions in pinned section
 *
 * See K_KERNEL_STACK_ARRAY_DEFINE() for more information and constraints.
 *
 * This puts the stack into the pinned noinit linker section if
 * CONFIG_LINKER_USE_PINNED_SECTION is enabled, or else it would
 * put the stack into the same section as K_KERNEL_STACK_ARRAY_DEFINE().
 *
 * @param sym Kernel stack array symbol name
 * @param nmemb Number of stacks to define
 * @param size Size of the stack memory region
 */
# 270 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread_stack.h"
/**
 * @brief Define an embedded stack memory region
 *
 * Used for kernel stacks embedded within other data structures.
 *
 * Stacks defined with this macro may not host user mode threads.
 * @param sym Thread stack symbol name
 * @param size Size of the stack memory region
 */





/** @} */

static inline char *K_KERNEL_STACK_BUFFER(k_thread_stack_t *sym)
{
 return (char *)sym + ((size_t)0);
}
# 639 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread_stack.h"
}
# 43 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/mem_domain.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 * Copyright (c) 2018-2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/mem_domain.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/mem_domain.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h"
/*
 * Copyright (c) 2013-2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @defgroup doubly-linked-list_apis Doubly-linked list
 * @ingroup datastructure_apis
 *
 * @brief Doubly-linked list implementation
 *
 * Doubly-linked list implementation using inline macros/functions.
 * This API is not thread safe, and thus if a list is used across threads,
 * calls to functions must be protected with synchronization primitives.
 *
 * The lists are expected to be initialized such that both the head and tail
 * pointers point to the list itself.  Initializing the lists in such a fashion
 * simplifies the adding and removing of nodes to/from the list.
 *
 * @{
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/mem_domain.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/mem_domain.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/stats.h" 1
/*
 * Copyright (c) 2021,2023, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/arch_interface.h" 1
/*
 * Copyright (c) 2019 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @defgroup arch-interface Architecture Interface
 * @ingroup internal_api
 * @brief Internal kernel APIs with public scope
 *
 * Any public kernel APIs that are implemented as inline functions and need to
 * call architecture-specific API so will have the prototypes for the
 * architecture-specific APIs here. Architecture APIs that aren't used in this
 * way go in kernel/include/kernel_arch_interface.h.
 *
 * The set of architecture-specific APIs used internally by public macros and
 * inline functions in public headers are also specified and documented.
 *
 * For all macros and inline function prototypes described herein, <arch/cpu.h>
 * must eventually pull in full definitions for all of them (the actual macro
 * defines and inline function bodies)
 *
 * include/kernel.h and other public headers depend on definitions in this
 * header.
 */
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h" 2

/**
 * @typedef k_thread_entry_t
 * @brief Thread entry point function type.
 *
 * A thread's entry point function is invoked when the thread starts executing.
 * Up to 3 argument values can be passed to the function.
 *
 * The thread terminates execution permanently if the entry point function
 * returns. The thread is responsible for releasing any shared resources
 * it may own (such as mutexes and dynamically allocated memory), prior to
 * returning.
 *
 * @param p1 First argument.
 * @param p2 Second argument.
 * @param p3 Third argument.
 */


struct __thread_entry {
 k_thread_entry_t pEntry;
 void *parameter1;
 void *parameter2;
 void *parameter3;
};


struct k_thread;

/*
 * This _pipe_desc structure is used by the pipes kernel module when
 * CONFIG_PIPES has been selected.
 */

struct _pipe_desc {
 sys_dnode_t node;
 unsigned char *buffer;
 size_t bytes_to_xfer;
 struct k_thread *thread;
};

/* can be used for creating 'dummy' threads, e.g. for pending on objects */
struct _thread_base {

 /* this thread's entry in a ready/wait queue */
 union {
  sys_dnode_t qnode_dlist;
  struct rbnode qnode_rb;
 };

 /* wait queue on which the thread is pended (needed only for
	 * trees, not dumb lists)
	 */
 _wait_q_t *pended_on;

 /* user facing 'thread options'; values defined in include/kernel.h */
 uint8_t user_options;

 /* thread state */
 uint8_t thread_state;

 /*
	 * scheduler lock count and thread priority
	 *
	 * These two fields control the preemptibility of a thread.
	 *
	 * When the scheduler is locked, sched_locked is decremented, which
	 * means that the scheduler is locked for values from 0xff to 0x01. A
	 * thread is coop if its prio is negative, thus 0x80 to 0xff when
	 * looked at the value as unsigned.
	 *
	 * By putting them end-to-end, this means that a thread is
	 * non-preemptible if the bundled value is greater than or equal to
	 * 0x0080.
	 */
 union {
  struct {




   int8_t prio;
   uint8_t sched_locked;

  };
  uint16_t preempt;
 };
# 133 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
 /* data returned by APIs */
 void *swap_data;


 /* this thread's entry in a timeout queue */
 struct _timeout timeout;
# 150 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
};

typedef struct _thread_base _thread_base_t;


/* Contains the stack information of a thread */
struct _thread_stack_info {
 /* Stack start - Represents the start address of the thread-writable
	 * stack area.
	 */
 uintptr_t start;

 /* Thread writable stack buffer size. Represents the size of the actual
	 * buffer, starting from the 'start' member, that should be writable by
	 * the thread. This comprises of the thread stack area, any area reserved
	 * for local thread data storage, as well as any area left-out due to
	 * random adjustments applied to the initial thread stack pointer during
	 * thread initialization.
	 */
 size_t size;

 /* Adjustment value to the size member, removing any storage
	 * used for TLS or random stack base offsets. (start + size - delta)
	 * is the initial stack pointer for a thread. May be 0.
	 */
 size_t delta;
# 186 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
};

typedef struct _thread_stack_info _thread_stack_info_t;
# 209 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
typedef struct k_thread_runtime_stats {
# 244 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
 /* If none of the above Kconfig values are defined, this struct will have a size 0 in C
	 * which is not allowed in C++ (it'll have a size 1). To prevent this, we add a 1 byte dummy
	 * variable when the struct would otherwise be empty.
	 */
 uint8_t dummy;

} k_thread_runtime_stats_t;

struct z_poller {
 bool is_polling;
 uint8_t mode;
};

/**
 * @ingroup thread_apis
 * Thread Structure
 */
struct k_thread {

 struct _thread_base base;

 /** defined by the architecture, but all archs need these */
 struct _callee_saved callee_saved;

 /** static thread init data */
 void *init_data;

 /** threads waiting in k_thread_join() */
 _wait_q_t join_queue;


 struct z_poller poller;
# 289 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
 /** thread entry and parameters description */
 struct __thread_entry entry;

 /** next item in list of all threads */
 struct k_thread *next_thread;



 /** Thread name */
 char name[32];
# 318 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
 /** Stack Info */
 struct _thread_stack_info stack_info;
# 350 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
 /** resource pool */
 struct k_heap *resource_pool;


 /* Pointer to arch-specific TLS area */
 uintptr_t tls;
# 377 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h"
 /** arch-specifics: must always be at the end */
 struct _thread_arch arch;
};

typedef struct k_thread _thread_t;
typedef struct k_thread *k_tid_t;
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/mem_domain.h" 2


extern "C" {


/**
 * @defgroup mem_domain_apis Memory domain APIs
 * @ingroup kernel_apis
 * @{
 */
# 104 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/mem_domain.h"
/* To support use of IS_ENABLED for the APIs below */
struct k_mem_domain;
struct k_mem_partition;


/**
 * @brief Initialize a memory domain.
 *
 * Initialize a memory domain with given name and memory partitions.
 *
 * See documentation for k_mem_domain_add_partition() for details about
 * partition constraints.
 *
 * Do not call k_mem_domain_init() on the same memory domain more than once,
 * doing so is undefined behavior.
 *
 * @param domain The memory domain to be initialized.
 * @param num_parts The number of array items of "parts" parameter.
 * @param parts An array of pointers to the memory partitions. Can be NULL
 *              if num_parts is zero.
 *
 * @retval 0 if successful
 * @retval -EINVAL if invalid parameters supplied
 * @retval -ENOMEM if insufficient memory
 */
int k_mem_domain_init(struct k_mem_domain *domain, uint8_t num_parts,
        struct k_mem_partition *parts[]);

/**
 * @brief Add a memory partition into a memory domain.
 *
 * Add a memory partition into a memory domain. Partitions must conform to
 * the following constraints:
 *
 * - Partitions in the same memory domain may not overlap each other.
 * - Partitions must not be defined which expose private kernel
 *   data structures or kernel objects.
 * - The starting address alignment, and the partition size must conform to
 *   the constraints of the underlying memory management hardware, which
 *   varies per architecture.
 * - Memory domain partitions are only intended to control access to memory
 *   from user mode threads.
 * - If CONFIG_EXECUTE_XOR_WRITE is enabled, the partition must not allow
 *   both writes and execution.
 *
 * Violating these constraints may lead to CPU exceptions or undefined
 * behavior.
 *
 * @param domain The memory domain to be added a memory partition.
 * @param part The memory partition to be added
 *
 * @retval 0 if successful
 * @retval -EINVAL if invalid parameters supplied
 * @retval -ENOSPC if no free partition slots available
 */
int k_mem_domain_add_partition(struct k_mem_domain *domain,
          struct k_mem_partition *part);

/**
 * @brief Remove a memory partition from a memory domain.
 *
 * Remove a memory partition from a memory domain.
 *
 * @param domain The memory domain to be removed a memory partition.
 * @param part The memory partition to be removed
 *
 * @retval 0 if successful
 * @retval -EINVAL if invalid parameters supplied
 * @retval -ENOENT if no matching partition found
 */
int k_mem_domain_remove_partition(struct k_mem_domain *domain,
      struct k_mem_partition *part);

/**
 * @brief Add a thread into a memory domain.
 *
 * Add a thread into a memory domain. It will be removed from whatever
 * memory domain it previously belonged to.
 *
 * @param domain The memory domain that the thread is going to be added into.
 * @param thread ID of thread going to be added into the memory domain.
 *
 * @return 0 if successful, fails otherwise.
 */
int k_mem_domain_add_thread(struct k_mem_domain *domain,
       k_tid_t thread);


}


/** @} */
# 44 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h" 1
/*
 * Copyright (c) 2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h"
/*
 * Copyright (C) 2020, Intel Corporation
 * Copyright (C) 2023, Nordic Semiconductor ASA
 * SPDX-License-Identifier: Apache-2.0
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/internal/kobject_internal.h" 1
/*
 * Copyright (c) 2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




extern "C" {


/**
 * @defgroup usermode_internal_apis User Mode Internal APIs
 * @ingroup internal_api
 * @{
 */
# 91 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/internal/kobject_internal.h"
/* LCOV_EXCL_START */
static inline void k_object_init(const void *obj)
{
 (void)(obj);
}
/* LCOV_EXCL_STOP */
# 154 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/internal/kobject_internal.h"
/* LCOV_EXCL_START */
static inline struct k_object *k_object_create_dynamic_aligned(size_t align,
              size_t size)
{
 (void)(align);
 (void)(size);

 return 
# 161 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/internal/kobject_internal.h" 3 4
       __null
# 161 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/internal/kobject_internal.h"
           ;
}

static inline struct k_object *k_object_create_dynamic(size_t size)
{
 (void)(size);

 return 
# 168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/internal/kobject_internal.h" 3 4
       __null
# 168 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/internal/kobject_internal.h"
           ;
}

/* LCOV_EXCL_STOP */


/** @} */


}
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h" 2


extern "C" {


struct k_thread;
struct k_mutex;
struct z_futex_data;

/**
 * @brief Kernel Object Types
 *
 * This enumeration needs to be kept in sync with the lists of kernel objects
 * and subsystems in scripts/build/gen_kobject_list.py, as well as the otype_to_str()
 * function in kernel/userspace.c
 */
enum k_objects {
 K_OBJ_ANY,

 /** @cond
	 *  Doxygen should ignore this build-time generated include file
	 *  when generating API documentation.  Enumeration values are
	 *  generated during build by gen_kobject_list.py.  It includes
	 *  basic kernel objects (e.g.  pipes and mutexes) and driver types.
	 */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/kobj-types-enum.h" 1
/* Core kernel objects */
K_OBJ_MEM_SLAB,
K_OBJ_MSGQ,
K_OBJ_MUTEX,
K_OBJ_PIPE,
K_OBJ_QUEUE,
K_OBJ_POLL_SIGNAL,
K_OBJ_SEM,
K_OBJ_STACK,
K_OBJ_THREAD,
K_OBJ_TIMER,
K_OBJ_THREAD_STACK_ELEMENT,
K_OBJ_NET_SOCKET,
K_OBJ_NET_IF,
K_OBJ_SYS_MUTEX,
K_OBJ_FUTEX,
K_OBJ_CONDVAR,
# 42 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/kobj-types-enum.h"
/* Driver subsystems */
K_OBJ_DRIVER_ADC,
K_OBJ_DRIVER_DAC,
K_OBJ_DRIVER_DMA,
K_OBJ_DRIVER_ENTROPY,
K_OBJ_DRIVER_FLASH,
K_OBJ_DRIVER_GPIO,
K_OBJ_DRIVER_I2C,
K_OBJ_DRIVER_I2C_TARGET,
K_OBJ_DRIVER_PWM,
K_OBJ_DRIVER_RESET,
K_OBJ_DRIVER_SPI,
K_OBJ_DRIVER_SHARED_IRQ,
K_OBJ_DRIVER_CRYPTO,
K_OBJ_DRIVER_AUXDISPLAY,
K_OBJ_DRIVER_BBRAM,
K_OBJ_DRIVER_BT_HCI,
K_OBJ_DRIVER_CAN,
K_OBJ_DRIVER_CELLULAR,
K_OBJ_DRIVER_CHARGER,
K_OBJ_DRIVER_CLOCK_CONTROL,
K_OBJ_DRIVER_COMPARATOR,
K_OBJ_DRIVER_COREDUMP,
K_OBJ_DRIVER_COUNTER,
K_OBJ_DRIVER_DAI,
K_OBJ_DRIVER_DISPLAY,
K_OBJ_DRIVER_EDAC,
K_OBJ_DRIVER_EEPROM,
K_OBJ_DRIVER_EMUL_BBRAM,
K_OBJ_DRIVER_FUEL_GAUGE_EMUL,
K_OBJ_DRIVER_EMUL_SENSOR,
K_OBJ_DRIVER_ESPI,
K_OBJ_DRIVER_ESPI_SAF,
K_OBJ_DRIVER_FPGA,
K_OBJ_DRIVER_FUEL_GAUGE,
K_OBJ_DRIVER_GNSS,
K_OBJ_DRIVER_HAPTICS,
K_OBJ_DRIVER_HWSPINLOCK,
K_OBJ_DRIVER_I2S,
K_OBJ_DRIVER_I3C,
K_OBJ_DRIVER_IPM,
K_OBJ_DRIVER_LED,
K_OBJ_DRIVER_LED_STRIP,
K_OBJ_DRIVER_LORA,
K_OBJ_DRIVER_MBOX,
K_OBJ_DRIVER_MDIO,
K_OBJ_DRIVER_MIPI_DBI,
K_OBJ_DRIVER_MIPI_DSI,
K_OBJ_DRIVER_MSPI,
K_OBJ_DRIVER_PECI,
K_OBJ_DRIVER_PS2,
K_OBJ_DRIVER_PTP_CLOCK,
K_OBJ_DRIVER_REGULATOR_PARENT,
K_OBJ_DRIVER_REGULATOR,
K_OBJ_DRIVER_RETAINED_MEM,
K_OBJ_DRIVER_RTC,
K_OBJ_DRIVER_SDHC,
K_OBJ_DRIVER_SENSOR,
K_OBJ_DRIVER_SMBUS,
K_OBJ_DRIVER_STEPPER,
K_OBJ_DRIVER_SYSCON,
K_OBJ_DRIVER_TEE,
K_OBJ_DRIVER_VIDEO,
K_OBJ_DRIVER_W1,
K_OBJ_DRIVER_WDT,
K_OBJ_DRIVER_CAN_TRANSCEIVER,
K_OBJ_DRIVER_NRF_CLOCK_CONTROL,
K_OBJ_DRIVER_I3C_TARGET,
K_OBJ_DRIVER_ITS,
K_OBJ_DRIVER_VTD,
K_OBJ_DRIVER_TGPIO,
K_OBJ_DRIVER_PCIE_CTRL,
K_OBJ_DRIVER_PCIE_EP,
K_OBJ_DRIVER_SVC,
K_OBJ_DRIVER_UART,
K_OBJ_DRIVER_BC12_EMUL,
K_OBJ_DRIVER_BC12,
K_OBJ_DRIVER_USBC_PPC,
K_OBJ_DRIVER_TCPC,
K_OBJ_DRIVER_USBC_VBUS,
K_OBJ_DRIVER_IVSHMEM,
K_OBJ_DRIVER_ETHPHY,
# 40 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h" 2
 /** @endcond
	 */

 K_OBJ_LAST
};
/**
 * @defgroup usermode_apis User Mode APIs
 * @ingroup kernel_apis
 * @{
 */
# 151 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h"
/* LCOV_EXCL_START */


/**
 * @internal
 */
static inline void z_impl_k_object_access_grant(const void *object,
      struct k_thread *thread)
{
 (void)(object);
 (void)(thread);
}

/**
 * @internal
 */
static inline void k_object_access_revoke(const void *object,
       struct k_thread *thread)
{
 (void)(object);
 (void)(thread);
}

/**
 * @internal
 */
static inline void z_impl_k_object_release(const void *object)
{
 (void)(object);
}

static inline void k_object_access_all_grant(const void *object)
{
 (void)(object);
}

static inline bool k_object_is_valid(const void *obj, enum k_objects otype)
{
 (void)(obj);
 (void)(otype);

 return true;
}

/* LCOV_EXCL_STOP */
# 255 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h"
/* LCOV_EXCL_START */
static inline void *z_impl_k_object_alloc(enum k_objects otype)
{
 (void)(otype);

 return 
# 260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h" 3 4
       __null
# 260 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h"
           ;
}

static inline void *z_impl_k_object_alloc_size(enum k_objects otype,
     size_t size)
{
 (void)(otype);
 (void)(size);

 return 
# 269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h" 3 4
       __null
# 269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h"
           ;
}

/**
 * @brief Free an object
 *
 * @param obj
 */
static inline void k_object_free(void *obj)
{
 (void)(obj);
}
/* LCOV_EXCL_STOP */


/** @} */

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h" 1
/* auto-generated by gen_syscalls.py, don't edit */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_syscall.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 8 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h" 2



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* auto-generated by gen_syscalls.py, don't edit */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h" 2



extern "C" {


extern void z_impl_k_object_access_grant(const void * object, struct k_thread * thread);


static inline void k_object_access_grant(const void * object, struct k_thread * thread)
{
# 36 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_object_access_grant(object, thread);
}
# 48 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h"
extern void z_impl_k_object_release(const void * object);


static inline void k_object_release(const void * object)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_object_release(object);
}
# 72 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h"
extern void * z_impl_k_object_alloc(enum k_objects otype);


static inline void * k_object_alloc(enum k_objects otype)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_object_alloc(otype);
}
# 95 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h"
extern void * z_impl_k_object_alloc_size(enum k_objects otype, size_t size);


static inline void * k_object_alloc_size(enum k_objects otype, size_t size)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_object_alloc_size(otype, size);
}
# 120 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kobject.h"
}
# 287 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/kobject.h" 2

}
# 45 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/thread.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 46 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
/* FIXME This needs to be removed. Exposes some private APIs to SOF */
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel/internal/smp.h" 1
/*
 * Copyright (c) 2023 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */



void z_sched_ipi(void);
# 48 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_includes.h" 2
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/limits.h" 1 3 4
/* Copyright (c) 2002 Jeff Johnston  <jjohnstn@redhat.com> */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h"
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_macros.h" 1
/*
 * Copyright (c) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_macro.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macro utilities
 *
 * Macro utilities are the public interface for C/C++ code and device tree
 * related implementation.  In general, C/C++ will include <sys/util.h>
 * instead this file directly.  For device tree implementation, this file
 * should be include instead <sys/util_internal.h>
 */
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_macros.h" 2
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_stats.h" 1
/*
 * Copyright (c) 2022 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Memory Statistics
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h" 1
/*
 * Copyright (C) 2020, Intel Corporation
 * Copyright (C) 2023, Nordic Semiconductor ASA
 * SPDX-License-Identifier: Apache-2.0
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/ring_buffer.h" 1
/*
 * Copyright (c) 2015 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/ring_buffer.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/ring_buffer.h" 2



# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/ring_buffer.h"
extern "C" {


/**
 * @file
 * @defgroup ring_buffer_apis Ring Buffer APIs
 * @ingroup datastructure_apis
 *
 * @brief Simple ring buffer implementation.
 *
 * @{
 */

/** @cond INTERNAL_HIDDEN */

/* The limit is used by algorithm for distinguishing between empty and full
 * state.
 */




typedef uint16_t ring_buf_idx_t;





struct ring_buf_index { ring_buf_idx_t head, tail, base; };

/** @endcond */

/**
 * @brief A structure to represent a ring buffer
 */
struct ring_buf {
 /** @cond INTERNAL_HIDDEN */
 uint8_t *buffer;
 struct ring_buf_index put;
 struct ring_buf_index get;
 uint32_t size;
 /** @endcond */
};

/** @cond INTERNAL_HIDDEN */

uint32_t ring_buf_area_claim(struct ring_buf *buf, struct ring_buf_index *ring,
        uint8_t **data, uint32_t size);
int ring_buf_area_finish(struct ring_buf *buf, struct ring_buf_index *ring,
    uint32_t size);

/**
 * @brief Function to force ring_buf internal states to given value
 *
 * Any value other than 0 makes sense only in validation testing context.
 */
static inline void ring_buf_internal_reset(struct ring_buf *buf, ring_buf_idx_t value)
{
 buf->put.head = buf->put.tail = buf->put.base = value;
 buf->get.head = buf->get.tail = buf->get.base = value;
}

/** @endcond */







/**
 * @brief Define and initialize a ring buffer for byte data.
 *
 * This macro establishes a ring buffer of an arbitrary size.
 * The basic storage unit is a byte.
 *
 * The ring buffer can be accessed outside the module where it is defined
 * using:
 *
 * @code extern struct ring_buf <name>; @endcode
 *
 * @param name  Name of the ring buffer.
 * @param size8 Size of ring buffer (in bytes).
 */






/**
 * @brief Define and initialize an "item based" ring buffer.
 *
 * This macro establishes an "item based" ring buffer. Each data item is
 * an array of 32-bit words (from zero to 1020 bytes in length), coupled
 * with a 16-bit type identifier and an 8-bit integer value.
 *
 * The ring buffer can be accessed outside the module where it is defined
 * using:
 *
 * @code extern struct ring_buf <name>; @endcode
 *
 * @param name Name of the ring buffer.
 * @param size32 Size of ring buffer (in 32-bit words).
 */
# 128 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/ring_buffer.h"
/**
 * @brief Define and initialize an "item based" ring buffer.
 *
 * This exists for backward compatibility reasons. @ref RING_BUF_ITEM_DECLARE
 * should be used instead.
 *
 * @param name Name of the ring buffer.
 * @param size32 Size of ring buffer (in 32-bit words).
 */



/**
 * @brief Define and initialize a power-of-2 sized "item based" ring buffer.
 *
 * This macro establishes an "item based" ring buffer by specifying its
 * size using a power of 2. This exists mainly for backward compatibility
 * reasons. @ref RING_BUF_ITEM_DECLARE should be used instead.
 *
 * @param name Name of the ring buffer.
 * @param pow Ring buffer size exponent.
 */



/**
 * @brief Compute the ring buffer size in 32-bit needed to store an element
 *
 * The argument can be a type or an expression.
 * Note: rounds up if the size is not a multiple of 32 bits.
 *
 * @param expr Expression or type to compute the size of
 */


/**
 * @brief Initialize a ring buffer for byte data.
 *
 * This routine initializes a ring buffer, prior to its first use. It is only
 * used for ring buffers not defined using RING_BUF_DECLARE.
 *
 * @param buf Address of ring buffer.
 * @param size Ring buffer size (in bytes).
 * @param data Ring buffer data area (uint8_t data[size]).
 */
static inline void ring_buf_init(struct ring_buf *buf,
     uint32_t size,
     uint8_t *data)
{
 { };

 buf->size = size;
 buf->buffer = data;
 ring_buf_internal_reset(buf, 0);
}

/**
 * @brief Initialize an "item based" ring buffer.
 *
 * This routine initializes a ring buffer, prior to its first use. It is only
 * used for ring buffers not defined using RING_BUF_ITEM_DECLARE.
 *
 * Each data item is an array of 32-bit words (from zero to 1020 bytes in
 * length), coupled with a 16-bit type identifier and an 8-bit integer value.
 *
 * @param buf Address of ring buffer.
 * @param size Ring buffer size (in 32-bit words)
 * @param data Ring buffer data area (uint32_t data[size]).
 */
static inline void ring_buf_item_init(struct ring_buf *buf,
          uint32_t size,
          uint32_t *data)
{
 { };
 ring_buf_init(buf, 4 * size, (uint8_t *)data);
}

/**
 * @brief Determine if a ring buffer is empty.
 *
 * @param buf Address of ring buffer.
 *
 * @return true if the ring buffer is empty, or false if not.
 */
static inline bool ring_buf_is_empty(const struct ring_buf *buf)
{
 return buf->get.head == buf->put.tail;
}

/**
 * @brief Reset ring buffer state.
 *
 * @param buf Address of ring buffer.
 */
static inline void ring_buf_reset(struct ring_buf *buf)
{
 ring_buf_internal_reset(buf, 0);
}

/**
 * @brief Determine free space in a ring buffer.
 *
 * @param buf Address of ring buffer.
 *
 * @return Ring buffer free space (in bytes).
 */
static inline uint32_t ring_buf_space_get(const struct ring_buf *buf)
{
 ring_buf_idx_t allocated = buf->put.head - buf->get.tail;

 return buf->size - allocated;
}

/**
 * @brief Determine free space in an "item based" ring buffer.
 *
 * @param buf Address of ring buffer.
 *
 * @return Ring buffer free space (in 32-bit words).
 */
static inline uint32_t ring_buf_item_space_get(const struct ring_buf *buf)
{
 return ring_buf_space_get(buf) / 4;
}

/**
 * @brief Return ring buffer capacity.
 *
 * @param buf Address of ring buffer.
 *
 * @return Ring buffer capacity (in bytes).
 */
static inline uint32_t ring_buf_capacity_get(const struct ring_buf *buf)
{
 return buf->size;
}

/**
 * @brief Determine size of available data in a ring buffer.
 *
 * @param buf Address of ring buffer.
 *
 * @return Ring buffer data size (in bytes).
 */
static inline uint32_t ring_buf_size_get(const struct ring_buf *buf)
{
 ring_buf_idx_t available = buf->put.tail - buf->get.head;

 return available;
}

/**
 * @brief Allocate buffer for writing data to a ring buffer.
 *
 * With this routine, memory copying can be reduced since internal ring buffer
 * can be used directly by the user. Once data is written to allocated area
 * number of bytes written must be confirmed (see @ref ring_buf_put_finish).
 *
 * @warning
 * Use cases involving multiple writers to the ring buffer must prevent
 * concurrent write operations, either by preventing all writers from
 * being preempted or by using a mutex to govern writes to the ring buffer.
 *
 * @warning
 * Ring buffer instance should not mix byte access and item access
 * (calls prefixed with ring_buf_item_).
 *
 * @param[in]  buf  Address of ring buffer.
 * @param[out] data Pointer to the address. It is set to a location within
 *		    ring buffer.
 * @param[in]  size Requested allocation size (in bytes).
 *
 * @return Size of allocated buffer which can be smaller than requested if
 *	   there is not enough free space or buffer wraps.
 */
static inline uint32_t ring_buf_put_claim(struct ring_buf *buf,
       uint8_t **data,
       uint32_t size)
{
 return ring_buf_area_claim(buf, &buf->put, data,
       (((size) < (ring_buf_space_get(buf))) ? (size) : (ring_buf_space_get(buf))));
}

/**
 * @brief Indicate number of bytes written to allocated buffers.
 *
 * The number of bytes must be equal to or lower than the sum corresponding
 * to all preceding @ref ring_buf_put_claim invocations (or even 0). Surplus
 * bytes will be returned to the available free buffer space.
 *
 * @warning
 * Use cases involving multiple writers to the ring buffer must prevent
 * concurrent write operations, either by preventing all writers from
 * being preempted or by using a mutex to govern writes to the ring buffer.
 *
 * @warning
 * Ring buffer instance should not mix byte access and item access
 * (calls prefixed with ring_buf_item_).
 *
 * @param  buf  Address of ring buffer.
 * @param  size Number of valid bytes in the allocated buffers.
 *
 * @retval 0 Successful operation.
 * @retval -EINVAL Provided @a size exceeds free space in the ring buffer.
 */
static inline int ring_buf_put_finish(struct ring_buf *buf, uint32_t size)
{
 return ring_buf_area_finish(buf, &buf->put, size);
}

/**
 * @brief Write (copy) data to a ring buffer.
 *
 * This routine writes data to a ring buffer @a buf.
 *
 * @warning
 * Use cases involving multiple writers to the ring buffer must prevent
 * concurrent write operations, either by preventing all writers from
 * being preempted or by using a mutex to govern writes to the ring buffer.
 *
 * @warning
 * Ring buffer instance should not mix byte access and item access
 * (calls prefixed with ring_buf_item_).
 *
 * @param buf Address of ring buffer.
 * @param data Address of data.
 * @param size Data size (in bytes).
 *
 * @retval Number of bytes written.
 */
uint32_t ring_buf_put(struct ring_buf *buf, const uint8_t *data, uint32_t size);

/**
 * @brief Get address of a valid data in a ring buffer.
 *
 * With this routine, memory copying can be reduced since internal ring buffer
 * can be used directly by the user. Once data is processed it must be freed
 * using @ref ring_buf_get_finish.
 *
 * @warning
 * Use cases involving multiple reads of the ring buffer must prevent
 * concurrent read operations, either by preventing all readers from
 * being preempted or by using a mutex to govern reads to the ring buffer.
 *
 * @warning
 * Ring buffer instance should not mix byte access and item access
 * (calls prefixed with ring_buf_item_).
 *
 * @param[in]  buf  Address of ring buffer.
 * @param[out] data Pointer to the address. It is set to a location within
 *		    ring buffer.
 * @param[in]  size Requested size (in bytes).
 *
 * @return Number of valid bytes in the provided buffer which can be smaller
 *	   than requested if there is not enough free space or buffer wraps.
 */
static inline uint32_t ring_buf_get_claim(struct ring_buf *buf,
       uint8_t **data,
       uint32_t size)
{
 return ring_buf_area_claim(buf, &buf->get, data,
       (((size) < (ring_buf_size_get(buf))) ? (size) : (ring_buf_size_get(buf))));
}

/**
 * @brief Indicate number of bytes read from claimed buffer.
 *
 * The number of bytes must be equal or lower than the sum corresponding to
 * all preceding @ref ring_buf_get_claim invocations (or even 0). Surplus
 * bytes will remain available in the buffer.
 *
 * @warning
 * Use cases involving multiple reads of the ring buffer must prevent
 * concurrent read operations, either by preventing all readers from
 * being preempted or by using a mutex to govern reads to the ring buffer.
 *
 * @warning
 * Ring buffer instance should not mix byte access and  item mode
 * (calls prefixed with ring_buf_item_).
 *
 * @param  buf  Address of ring buffer.
 * @param  size Number of bytes that can be freed.
 *
 * @retval 0 Successful operation.
 * @retval -EINVAL Provided @a size exceeds valid bytes in the ring buffer.
 */
static inline int ring_buf_get_finish(struct ring_buf *buf, uint32_t size)
{
 return ring_buf_area_finish(buf, &buf->get, size);
}

/**
 * @brief Read data from a ring buffer.
 *
 * This routine reads data from a ring buffer @a buf.
 *
 * @warning
 * Use cases involving multiple reads of the ring buffer must prevent
 * concurrent read operations, either by preventing all readers from
 * being preempted or by using a mutex to govern reads to the ring buffer.
 *
 * @warning
 * Ring buffer instance should not mix byte access and  item mode
 * (calls prefixed with ring_buf_item_).
 *
 * @param buf  Address of ring buffer.
 * @param data Address of the output buffer. Can be NULL to discard data.
 * @param size Data size (in bytes).
 *
 * @retval Number of bytes written to the output buffer.
 */
uint32_t ring_buf_get(struct ring_buf *buf, uint8_t *data, uint32_t size);

/**
 * @brief Peek at data from a ring buffer.
 *
 * This routine reads data from a ring buffer @a buf without removal.
 *
 * @warning
 * Use cases involving multiple reads of the ring buffer must prevent
 * concurrent read operations, either by preventing all readers from
 * being preempted or by using a mutex to govern reads to the ring buffer.
 *
 * @warning
 * Ring buffer instance should not mix byte access and  item mode
 * (calls prefixed with ring_buf_item_).
 *
 * @warning
 * Multiple calls to peek will result in the same data being 'peeked'
 * multiple times. To remove data, use either @ref ring_buf_get or
 * @ref ring_buf_get_claim followed by @ref ring_buf_get_finish with a
 * non-zero `size`.
 *
 * @param buf  Address of ring buffer.
 * @param data Address of the output buffer. Cannot be NULL.
 * @param size Data size (in bytes).
 *
 * @retval Number of bytes written to the output buffer.
 */
uint32_t ring_buf_peek(struct ring_buf *buf, uint8_t *data, uint32_t size);

/**
 * @brief Write a data item to a ring buffer.
 *
 * This routine writes a data item to ring buffer @a buf. The data item
 * is an array of 32-bit words (from zero to 1020 bytes in length),
 * coupled with a 16-bit type identifier and an 8-bit integer value.
 *
 * @warning
 * Use cases involving multiple writers to the ring buffer must prevent
 * concurrent write operations, either by preventing all writers from
 * being preempted or by using a mutex to govern writes to the ring buffer.
 *
 * @param buf Address of ring buffer.
 * @param type Data item's type identifier (application specific).
 * @param value Data item's integer value (application specific).
 * @param data Address of data item.
 * @param size32 Data item size (number of 32-bit words).
 *
 * @retval 0 Data item was written.
 * @retval -EMSGSIZE Ring buffer has insufficient free space.
 */
int ring_buf_item_put(struct ring_buf *buf, uint16_t type, uint8_t value,
        uint32_t *data, uint8_t size32);

/**
 * @brief Read a data item from a ring buffer.
 *
 * This routine reads a data item from ring buffer @a buf. The data item
 * is an array of 32-bit words (up to 1020 bytes in length),
 * coupled with a 16-bit type identifier and an 8-bit integer value.
 *
 * @warning
 * Use cases involving multiple reads of the ring buffer must prevent
 * concurrent read operations, either by preventing all readers from
 * being preempted or by using a mutex to govern reads to the ring buffer.
 *
 * @param buf Address of ring buffer.
 * @param type Area to store the data item's type identifier.
 * @param value Area to store the data item's integer value.
 * @param data Area to store the data item. Can be NULL to discard data.
 * @param size32 Size of the data item storage area (number of 32-bit chunks).
 *
 * @retval 0 Data item was fetched; @a size32 now contains the number of
 *         32-bit words read into data area @a data.
 * @retval -EAGAIN Ring buffer is empty.
 * @retval -EMSGSIZE Data area @a data is too small; @a size32 now contains
 *         the number of 32-bit words needed.
 */
int ring_buf_item_get(struct ring_buf *buf, uint16_t *type, uint8_t *value,
        uint32_t *data, uint8_t *size32);

/**
 * @}
 */


}
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2


extern "C" {


/*
 * Zephyr currently assumes the size of a couple standard types to simplify
 * print string formats. Let's make sure this doesn't change without notice.
 */
static_assert(sizeof(int32_t) == sizeof(int), "" );
static_assert(sizeof(int64_t) == sizeof(long long), "" );
static_assert(sizeof(intptr_t) == sizeof(long), "" );

/**
 * @brief Kernel APIs
 * @defgroup kernel_apis Kernel APIs
 * @since 1.0
 * @version 1.0.0
 * @{
 * @}
 */
# 72 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
struct k_thread;
struct k_mutex;
struct k_sem;
struct k_msgq;
struct k_mbox;
struct k_pipe;
struct k_queue;
struct k_fifo;
struct k_lifo;
struct k_stack;
struct k_mem_slab;
struct k_timer;
struct k_poll_event;
struct k_poll_signal;
struct k_mem_domain;
struct k_mem_partition;
struct k_futex;
struct k_event;

enum execution_context_types {
 K_ISR = 0,
 K_COOP_THREAD,
 K_PREEMPT_THREAD,
};

/* private, used by k_poll and k_work_poll */
struct k_work_poll;
typedef int (*_poller_cb_t)(struct k_poll_event *event, uint32_t state);

/**
 * @addtogroup thread_apis
 * @{
 */

typedef void (*k_thread_user_cb_t)(const struct k_thread *thread,
       void *user_data);

/**
 * @brief Iterate over all the threads in the system.
 *
 * This routine iterates over all the threads in the system and
 * calls the user_cb function for each thread.
 *
 * @param user_cb Pointer to the user callback function.
 * @param user_data Pointer to user data.
 *
 * @note @kconfig{CONFIG_THREAD_MONITOR} must be set for this function
 * to be effective.
 * @note This API uses @ref k_spin_lock to protect the _kernel.threads
 * list which means creation of new threads and terminations of existing
 * threads are blocked until this API returns.
 */
void k_thread_foreach(k_thread_user_cb_t user_cb, void *user_data);

/**
 * @brief Iterate over all the threads in running on specified cpu.
 *
 * This function is does otherwise the same thing as k_thread_foreach(),
 * but it only loops through the threads running on specified cpu only.
 * If CONFIG_SMP is not defined the implementation this is the same as
 * k_thread_foreach(), with an assert cpu == 0.
 *
 * @param cpu The filtered cpu number
 * @param user_cb Pointer to the user callback function.
 * @param user_data Pointer to user data.
 *
 * @note @kconfig{CONFIG_THREAD_MONITOR} must be set for this function
 * to be effective.
 * @note This API uses @ref k_spin_lock to protect the _kernel.threads
 * list which means creation of new threads and terminations of existing
 * threads are blocked until this API returns.
 */




static inline
void k_thread_foreach_filter_by_cpu(unsigned int cpu,
        k_thread_user_cb_t user_cb, void *user_data)
{
 { };
 (void)(cpu);
 k_thread_foreach(user_cb, user_data);
}


/**
 * @brief Iterate over all the threads in the system without locking.
 *
 * This routine works exactly the same like @ref k_thread_foreach
 * but unlocks interrupts when user_cb is executed.
 *
 * @param user_cb Pointer to the user callback function.
 * @param user_data Pointer to user data.
 *
 * @note @kconfig{CONFIG_THREAD_MONITOR} must be set for this function
 * to be effective.
 * @note This API uses @ref k_spin_lock only when accessing the _kernel.threads
 * queue elements. It unlocks it during user callback function processing.
 * If a new task is created when this @c foreach function is in progress,
 * the added new task would not be included in the enumeration.
 * If a task is aborted during this enumeration, there would be a race here
 * and there is a possibility that this aborted task would be included in the
 * enumeration.
 * @note If the task is aborted and the memory occupied by its @c k_thread
 * structure is reused when this @c k_thread_foreach_unlocked is in progress
 * it might even lead to the system behave unstable.
 * This function may never return, as it would follow some @c next task
 * pointers treating given pointer as a pointer to the k_thread structure
 * while it is something different right now.
 * Do not reuse the memory that was occupied by k_thread structure of aborted
 * task if it was aborted after this function was called in any context.
 */
void k_thread_foreach_unlocked(
 k_thread_user_cb_t user_cb, void *user_data);

/**
 * @brief Iterate over the threads in running on current cpu without locking.
 *
 * This function does otherwise the same thing as
 * k_thread_foreach_unlocked(), but it only loops through the threads
 * running on specified cpu. If CONFIG_SMP is not defined the
 * implementation this is the same as k_thread_foreach_unlocked(), with an
 * assert requiring cpu == 0.
 *
 * @param cpu The filtered cpu number
 * @param user_cb Pointer to the user callback function.
 * @param user_data Pointer to user data.
 *
 * @note @kconfig{CONFIG_THREAD_MONITOR} must be set for this function
 * to be effective.
 * @note This API uses @ref k_spin_lock only when accessing the _kernel.threads
 * queue elements. It unlocks it during user callback function processing.
 * If a new task is created when this @c foreach function is in progress,
 * the added new task would not be included in the enumeration.
 * If a task is aborted during this enumeration, there would be a race here
 * and there is a possibility that this aborted task would be included in the
 * enumeration.
 * @note If the task is aborted and the memory occupied by its @c k_thread
 * structure is reused when this @c k_thread_foreach_unlocked is in progress
 * it might even lead to the system behave unstable.
 * This function may never return, as it would follow some @c next task
 * pointers treating given pointer as a pointer to the k_thread structure
 * while it is something different right now.
 * Do not reuse the memory that was occupied by k_thread structure of aborted
 * task if it was aborted after this function was called in any context.
 */




static inline
void k_thread_foreach_unlocked_filter_by_cpu(unsigned int cpu,
          k_thread_user_cb_t user_cb, void *user_data)
{
 { };
 (void)(cpu);
 k_thread_foreach_unlocked(user_cb, user_data);
}


/** @} */

/**
 * @defgroup thread_apis Thread APIs
 * @ingroup kernel_apis
 * @{
 */




/*
 * Thread user options. May be needed by assembly code. Common part uses low
 * bits, arch-specific use high bits.
 */

/**
 * @brief system thread that must not abort
 * */



/**
 * @brief FPU registers are managed by context switch
 *
 * @details
 * This option indicates that the thread uses the CPU's floating point
 * registers. This instructs the kernel to take additional steps to save
 * and restore the contents of these registers when scheduling the thread.
 * No effect if @kconfig{CONFIG_FPU_SHARING} is not enabled.
 */


/**
 * @brief user mode thread
 *
 * This thread has dropped from supervisor mode to user mode and consequently
 * has additional restrictions
 */


/**
 * @brief Inherit Permissions
 *
 * @details
 * Indicates that the thread being created should inherit all kernel object
 * permissions from the thread that created it. No effect if
 * @kconfig{CONFIG_USERSPACE} is not enabled.
 */


/**
 * @brief Callback item state
 *
 * @details
 * This is a single bit of state reserved for "callback manager"
 * utilities (p4wq initially) who need to track operations invoked
 * from within a user-provided callback they have been invoked.
 * Effectively it serves as a tiny bit of zero-overhead TLS data.
 */


/**
 * @brief DSP registers are managed by context switch
 *
 * @details
 * This option indicates that the thread uses the CPU's DSP registers.
 * This instructs the kernel to take additional steps to save and
 * restore the contents of these registers when scheduling the thread.
 * No effect if @kconfig{CONFIG_DSP_SHARING} is not enabled.
 */



/**
 * @brief AGU registers are managed by context switch
 *
 * @details
 * This option indicates that the thread uses the ARC processor's XY
 * memory and DSP feature. Often used with @kconfig{CONFIG_ARC_AGU_SHARING}.
 * No effect if @kconfig{CONFIG_ARC_AGU_SHARING} is not enabled.
 */



/**
 * @brief FP and SSE registers are managed by context switch on x86
 *
 * @details
 * This option indicates that the thread uses the x86 CPU's floating point
 * and SSE registers. This instructs the kernel to take additional steps to
 * save and restore the contents of these registers when scheduling
 * the thread. No effect if @kconfig{CONFIG_X86_SSE} is not enabled.
 */


/* end - thread options */


/**
 * @brief Dynamically allocate a thread stack.
 *
 * Relevant stack creation flags include:
 * - @ref K_USER allocate a userspace thread (requires `CONFIG_USERSPACE=y`)
 *
 * @param size Stack size in bytes.
 * @param flags Stack creation flags, or 0.
 *
 * @retval the allocated thread stack on success.
 * @retval NULL on failure.
 *
 * @see CONFIG_DYNAMIC_THREAD
 */
static inline k_thread_stack_t *k_thread_stack_alloc(size_t size, int flags);

/**
 * @brief Free a dynamically allocated thread stack.
 *
 * @param stack Pointer to the thread stack.
 *
 * @retval 0 on success.
 * @retval -EBUSY if the thread stack is in use.
 * @retval -EINVAL if @p stack is invalid.
 * @retval -ENOSYS if dynamic thread stack allocation is disabled
 *
 * @see CONFIG_DYNAMIC_THREAD
 */
static inline int k_thread_stack_free(k_thread_stack_t *stack);

/**
 * @brief Create a thread.
 *
 * This routine initializes a thread, then schedules it for execution.
 *
 * The new thread may be scheduled for immediate execution or a delayed start.
 * If the newly spawned thread does not have a delayed start the kernel
 * scheduler may preempt the current thread to allow the new thread to
 * execute.
 *
 * Thread options are architecture-specific, and can include K_ESSENTIAL,
 * K_FP_REGS, and K_SSE_REGS. Multiple options may be specified by separating
 * them using "|" (the logical OR operator).
 *
 * Stack objects passed to this function must be originally defined with
 * either of these macros in order to be portable:
 *
 * - K_THREAD_STACK_DEFINE() - For stacks that may support either user or
 *   supervisor threads.
 * - K_KERNEL_STACK_DEFINE() - For stacks that may support supervisor
 *   threads only. These stacks use less memory if CONFIG_USERSPACE is
 *   enabled.
 *
 * The stack_size parameter has constraints. It must either be:
 *
 * - The original size value passed to K_THREAD_STACK_DEFINE() or
 *   K_KERNEL_STACK_DEFINE()
 * - The return value of K_THREAD_STACK_SIZEOF(stack) if the stack was
 *   defined with K_THREAD_STACK_DEFINE()
 * - The return value of K_KERNEL_STACK_SIZEOF(stack) if the stack was
 *   defined with K_KERNEL_STACK_DEFINE().
 *
 * Using other values, or sizeof(stack) may produce undefined behavior.
 *
 * @param new_thread Pointer to uninitialized struct k_thread
 * @param stack Pointer to the stack space.
 * @param stack_size Stack size in bytes.
 * @param entry Thread entry function.
 * @param p1 1st entry point parameter.
 * @param p2 2nd entry point parameter.
 * @param p3 3rd entry point parameter.
 * @param prio Thread priority.
 * @param options Thread options.
 * @param delay Scheduling delay, or K_NO_WAIT (for no delay).
 *
 * @return ID of new thread.
 *
 */
static inline k_tid_t k_thread_create(struct k_thread *new_thread,
      k_thread_stack_t *stack,
      size_t stack_size,
      k_thread_entry_t entry,
      void *p1, void *p2, void *p3,
      int prio, uint32_t options, k_timeout_t delay);

/**
 * @brief Drop a thread's privileges permanently to user mode
 *
 * This allows a supervisor thread to be re-used as a user thread.
 * This function does not return, but control will transfer to the provided
 * entry point as if this was a new user thread.
 *
 * The implementation ensures that the stack buffer contents are erased.
 * Any thread-local storage will be reverted to a pristine state.
 *
 * Memory domain membership, resource pool assignment, kernel object
 * permissions, priority, and thread options are preserved.
 *
 * A common use of this function is to re-use the main thread as a user thread
 * once all supervisor mode-only tasks have been completed.
 *
 * @param entry Function to start executing from
 * @param p1 1st entry point parameter
 * @param p2 2nd entry point parameter
 * @param p3 3rd entry point parameter
 */
__attribute__((__noreturn__)) void k_thread_user_mode_enter(k_thread_entry_t entry,
         void *p1, void *p2,
         void *p3);

/**
 * @brief Grant a thread access to a set of kernel objects
 *
 * This is a convenience function. For the provided thread, grant access to
 * the remaining arguments, which must be pointers to kernel objects.
 *
 * The thread object must be initialized (i.e. running). The objects don't
 * need to be.
 * Note that NULL shouldn't be passed as an argument.
 *
 * @param thread Thread to grant access to objects
 * @param ... list of kernel object pointers
 */



/**
 * @brief Assign a resource memory pool to a thread
 *
 * By default, threads have no resource pool assigned unless their parent
 * thread has a resource pool, in which case it is inherited. Multiple
 * threads may be assigned to the same memory pool.
 *
 * Changing a thread's resource pool will not migrate allocations from the
 * previous pool.
 *
 * @param thread Target thread to assign a memory pool for resource requests.
 * @param heap Heap object to use for resources,
 *             or NULL if the thread should no longer have a memory pool.
 */
static inline void k_thread_heap_assign(struct k_thread *thread,
     struct k_heap *heap)
{
 thread->resource_pool = heap;
}


/**
 * @brief Obtain stack usage information for the specified thread
 *
 * User threads will need to have permission on the target thread object.
 *
 * Some hardware may prevent inspection of a stack buffer currently in use.
 * If this API is called from supervisor mode, on the currently running thread,
 * on a platform which selects @kconfig{CONFIG_NO_UNUSED_STACK_INSPECTION}, an
 * error will be generated.
 *
 * @param thread Thread to inspect stack information
 * @param unused_ptr Output parameter, filled in with the unused stack space
 *	of the target thread in bytes.
 * @return 0 on success
 * @return -EBADF Bad thread object (user mode only)
 * @return -EPERM No permissions on thread object (user mode only)
 * #return -ENOTSUP Forbidden by hardware policy
 * @return -EINVAL Thread is uninitialized or exited (user mode only)
 * @return -EFAULT Bad memory address for unused_ptr (user mode only)
 */
static inline int k_thread_stack_space_get(const struct k_thread *thread,
           size_t *unused_ptr);



/**
 * @brief Assign the system heap as a thread's resource pool
 *
 * Similar to k_thread_heap_assign(), but the thread will use
 * the kernel heap to draw memory.
 *
 * Use with caution, as a malicious thread could perform DoS attacks on the
 * kernel heap.
 *
 * @param thread Target thread to assign the system heap for resource requests
 *
 */
void k_thread_system_pool_assign(struct k_thread *thread);


/**
 * @brief Sleep until a thread exits
 *
 * The caller will be put to sleep until the target thread exits, either due
 * to being aborted, self-exiting, or taking a fatal error. This API returns
 * immediately if the thread isn't running.
 *
 * This API may only be called from ISRs with a K_NO_WAIT timeout,
 * where it can be useful as a predicate to detect when a thread has
 * aborted.
 *
 * @param thread Thread to wait to exit
 * @param timeout upper bound time to wait for the thread to exit.
 * @retval 0 success, target thread has exited or wasn't running
 * @retval -EBUSY returned without waiting
 * @retval -EAGAIN waiting period timed out
 * @retval -EDEADLK target thread is joining on the caller, or target thread
 *                  is the caller
 */
static inline int k_thread_join(struct k_thread *thread, k_timeout_t timeout);

/**
 * @brief Put the current thread to sleep.
 *
 * This routine puts the current thread to sleep for @a duration,
 * specified as a k_timeout_t object.
 *
 * @param timeout Desired duration of sleep.
 *
 * @return Zero if the requested time has elapsed or the time left to
 * sleep rounded up to the nearest millisecond (e.g. if the thread was
 * awoken by the \ref k_wakeup call).  Will be clamped to INT_MAX in
 * the case where the remaining time is unrepresentable in an int32_t.
 */
static inline int32_t k_sleep(k_timeout_t timeout);

/**
 * @brief Put the current thread to sleep.
 *
 * This routine puts the current thread to sleep for @a duration milliseconds.
 *
 * @param ms Number of milliseconds to sleep.
 *
 * @return Zero if the requested time has elapsed or if the thread was woken up
 * by the \ref k_wakeup call, the time left to sleep rounded up to the nearest
 * millisecond.
 */
static inline int32_t k_msleep(int32_t ms)
{
 return k_sleep(((k_timeout_t) { ((k_ticks_t)((true) ? ( ((10000) == (1000)) ? (uint64_t) ((((ms) > (0)) ? (ms) : (0))) : ((1000) > (10000) && (1000) % (10000) == 0U) ? (((uint64_t) ((((ms) > (0)) ? (ms) : (0))) + ((false) ? ((1000) / (10000)) / 2 : (true) ? ((1000) / (10000)) - 1 : 0)) / ((1000)/(10000) ? (1000)/(10000) : 01u)) : ((10000) > (1000) && (10000) % (1000) == 0U) ? (uint64_t) ((((ms) > (0)) ? (ms) : (0)))*((10000) / (1000)) : ((((((365 * 24ULL * 3600ULL * 1000) + (
# 568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
               (0xffffffffUL)
# 568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
               ) - 1) / (
# 568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
               (0xffffffffUL)
# 568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
               )) * 10000) <= 
# 568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
               (0xffffffffUL)
# 568 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
               ) ? (((uint64_t) ((((ms) > (0)) ? (ms) : (0)))*(10000) + ((false) ? (1000) / 2 : (true) ? (1000) - 1 : 0)) / (1000)) : (((uint64_t) ((((ms) > (0)) ? (ms) : (0))) / (1000))*(10000) + (((uint64_t) ((((ms) > (0)) ? (ms) : (0))) % (1000))*(10000) + ((false) ? (1000) / 2 : (true) ? (1000) - 1 : 0)) / (1000))) ) : (((uint64_t) ((((ms) > (0)) ? (ms) : (0))) / (1000))*(10000) + (((uint64_t) ((((ms) > (0)) ? (ms) : (0))) % (1000))*(10000) + ((false) ? (1000) / 2 : (true) ? (1000) - 1 : 0)) / (1000)) )) }));
}

/**
 * @brief Put the current thread to sleep with microsecond resolution.
 *
 * This function is unlikely to work as expected without kernel tuning.
 * In particular, because the lower bound on the duration of a sleep is
 * the duration of a tick, @kconfig{CONFIG_SYS_CLOCK_TICKS_PER_SEC} must be
 * adjusted to achieve the resolution desired. The implications of doing
 * this must be understood before attempting to use k_usleep(). Use with
 * caution.
 *
 * @param us Number of microseconds to sleep.
 *
 * @return Zero if the requested time has elapsed or if the thread was woken up
 * by the \ref k_wakeup call, the time left to sleep rounded up to the nearest
 * microsecond.
 */
static inline int32_t k_usleep(int32_t us);

/**
 * @brief Cause the current thread to busy wait.
 *
 * This routine causes the current thread to execute a "do nothing" loop for
 * @a usec_to_wait microseconds.
 *
 * @note The clock used for the microsecond-resolution delay here may
 * be skewed relative to the clock used for system timeouts like
 * k_sleep().  For example k_busy_wait(1000) may take slightly more or
 * less time than k_sleep(K_MSEC(1)), with the offset dependent on
 * clock tolerances.
 *
 * @note In case when @kconfig{CONFIG_SYSTEM_CLOCK_SLOPPY_IDLE} and
 * @kconfig{CONFIG_PM} options are enabled, this function may not work.
 * The timer/clock used for delay processing may be disabled/inactive.
 */
static inline void k_busy_wait(uint32_t usec_to_wait);

/**
 * @brief Check whether it is possible to yield in the current context.
 *
 * This routine checks whether the kernel is in a state where it is possible to
 * yield or call blocking API's. It should be used by code that needs to yield
 * to perform correctly, but can feasibly be called from contexts where that
 * is not possible. For example in the PRE_KERNEL initialization step, or when
 * being run from the idle thread.
 *
 * @return True if it is possible to yield in the current context, false otherwise.
 */
bool k_can_yield(void);

/**
 * @brief Yield the current thread.
 *
 * This routine causes the current thread to yield execution to another
 * thread of the same or higher priority. If there are no other ready threads
 * of the same or higher priority, the routine returns immediately.
 */
static inline void k_yield(void);

/**
 * @brief Wake up a sleeping thread.
 *
 * This routine prematurely wakes up @a thread from sleeping.
 *
 * If @a thread is not currently sleeping, the routine has no effect.
 *
 * @param thread ID of thread to wake.
 */
static inline void k_wakeup(k_tid_t thread);

/**
 * @brief Query thread ID of the current thread.
 *
 * This unconditionally queries the kernel via a system call.
 *
 * @note Use k_current_get() unless absolutely sure this is necessary.
 *       This should only be used directly where the thread local
 *       variable cannot be used or may contain invalid values
 *       if thread local storage (TLS) is enabled. If TLS is not
 *       enabled, this is the same as k_current_get().
 *
 * @return ID of current thread.
 */
__attribute__((__const__))
static inline k_tid_t k_sched_current_thread_query(void);

/**
 * @brief Get thread ID of the current thread.
 *
 * @return ID of current thread.
 *
 */
__attribute__((__const__))
static inline k_tid_t k_current_get(void)
{


 /* Thread-local cache of current thread ID, set in z_thread_entry() */
 extern thread_local k_tid_t z_tls_current;

 return z_tls_current;



}

/**
 * @brief Abort a thread.
 *
 * This routine permanently stops execution of @a thread. The thread is taken
 * off all kernel queues it is part of (i.e. the ready queue, the timeout
 * queue, or a kernel object wait queue). However, any kernel resources the
 * thread might currently own (such as mutexes or memory blocks) are not
 * released. It is the responsibility of the caller of this routine to ensure
 * all necessary cleanup is performed.
 *
 * After k_thread_abort() returns, the thread is guaranteed not to be
 * running or to become runnable anywhere on the system.  Normally
 * this is done via blocking the caller (in the same manner as
 * k_thread_join()), but in interrupt context on SMP systems the
 * implementation is required to spin for threads that are running on
 * other CPUs.
 *
 * @param thread ID of thread to abort.
 */
static inline void k_thread_abort(k_tid_t thread);

k_ticks_t z_timeout_expires(const struct _timeout *timeout);
k_ticks_t z_timeout_remaining(const struct _timeout *timeout);



/**
 * @brief Get time when a thread wakes up, in system ticks
 *
 * This routine computes the system uptime when a waiting thread next
 * executes, in units of system ticks.  If the thread is not waiting,
 * it returns current system time.
 */
static inline k_ticks_t k_thread_timeout_expires_ticks(const struct k_thread *thread);

static inline k_ticks_t z_impl_k_thread_timeout_expires_ticks(
      const struct k_thread *thread)
{
 return z_timeout_expires(&thread->base.timeout);
}

/**
 * @brief Get time remaining before a thread wakes up, in system ticks
 *
 * This routine computes the time remaining before a waiting thread
 * next executes, in units of system ticks.  If the thread is not
 * waiting, it returns zero.
 */
static inline k_ticks_t k_thread_timeout_remaining_ticks(const struct k_thread *thread);

static inline k_ticks_t z_impl_k_thread_timeout_remaining_ticks(
      const struct k_thread *thread)
{
 return z_timeout_remaining(&thread->base.timeout);
}



/**
 * @cond INTERNAL_HIDDEN
 */

struct _static_thread_data {
 struct k_thread *init_thread;
 k_thread_stack_t *init_stack;
 unsigned int init_stack_size;
 k_thread_entry_t init_entry;
 void *init_p1;
 void *init_p2;
 void *init_p3;
 int init_prio;
 uint32_t init_options;
 const char *init_name;



 k_timeout_t init_delay;

};
# 781 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/*
 * Refer to K_THREAD_DEFINE() and K_KERNEL_THREAD_DEFINE() for
 * information on arguments.
 */
# 797 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief Statically define and initialize a thread.
 *
 * The thread may be scheduled for immediate execution or a delayed start.
 *
 * Thread options are architecture-specific, and can include K_ESSENTIAL,
 * K_FP_REGS, and K_SSE_REGS. Multiple options may be specified by separating
 * them using "|" (the logical OR operator).
 *
 * The ID of the thread can be accessed using:
 *
 * @code extern const k_tid_t <name>; @endcode
 *
 * @param name Name of the thread.
 * @param stack_size Stack size in bytes.
 * @param entry Thread entry function.
 * @param p1 1st entry point parameter.
 * @param p2 2nd entry point parameter.
 * @param p3 3rd entry point parameter.
 * @param prio Thread priority.
 * @param options Thread options.
 * @param delay Scheduling delay (in milliseconds), zero for no delay.
 *
 * @note Static threads with zero delay should not normally have
 * MetaIRQ priority levels.  This can preempt the system
 * initialization handling (depending on the priority of the main
 * thread) and cause surprising ordering side effects.  It will not
 * affect anything in the OS per se, but consider it bad practice.
 * Use a SYS_INIT() callback if you need to run code before entrance
 * to the application main().
 */







/**
 * @brief Statically define and initialize a thread intended to run only in kernel mode.
 *
 * The thread may be scheduled for immediate execution or a delayed start.
 *
 * Thread options are architecture-specific, and can include K_ESSENTIAL,
 * K_FP_REGS, and K_SSE_REGS. Multiple options may be specified by separating
 * them using "|" (the logical OR operator).
 *
 * The ID of the thread can be accessed using:
 *
 * @code extern const k_tid_t <name>; @endcode
 *
 * @note Threads defined by this can only run in kernel mode, and cannot be
 *       transformed into user thread via k_thread_user_mode_enter().
 *
 * @warning Depending on the architecture, the stack size (@p stack_size)
 *          may need to be multiples of CONFIG_MMU_PAGE_SIZE (if MMU)
 *          or in power-of-two size (if MPU).
 *
 * @param name Name of the thread.
 * @param stack_size Stack size in bytes.
 * @param entry Thread entry function.
 * @param p1 1st entry point parameter.
 * @param p2 2nd entry point parameter.
 * @param p3 3rd entry point parameter.
 * @param prio Thread priority.
 * @param options Thread options.
 * @param delay Scheduling delay (in milliseconds), zero for no delay.
 */







/**
 * @brief Get a thread's priority.
 *
 * This routine gets the priority of @a thread.
 *
 * @param thread ID of thread whose priority is needed.
 *
 * @return Priority of @a thread.
 */
static inline int k_thread_priority_get(k_tid_t thread);

/**
 * @brief Set a thread's priority.
 *
 * This routine immediately changes the priority of @a thread.
 *
 * Rescheduling can occur immediately depending on the priority @a thread is
 * set to:
 *
 * - If its priority is raised above the priority of a currently scheduled
 * preemptible thread, @a thread will be scheduled in.
 *
 * - If the caller lowers the priority of a currently scheduled preemptible
 * thread below that of other threads in the system, the thread of the highest
 * priority will be scheduled in.
 *
 * Priority can be assigned in the range of -CONFIG_NUM_COOP_PRIORITIES to
 * CONFIG_NUM_PREEMPT_PRIORITIES-1, where -CONFIG_NUM_COOP_PRIORITIES is the
 * highest priority.
 *
 * @param thread ID of thread whose priority is to be set.
 * @param prio New priority.
 *
 * @warning Changing the priority of a thread currently involved in mutex
 * priority inheritance may result in undefined behavior.
 */
static inline void k_thread_priority_set(k_tid_t thread, int prio);
# 951 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Invoke the scheduler
 *
 * This routine invokes the scheduler to force a schedule point on the current
 * CPU. If invoked from within a thread, the scheduler will be invoked
 * immediately (provided interrupts were not locked when invoked). If invoked
 * from within an ISR, the scheduler will be invoked upon exiting the ISR.
 *
 * Invoking the scheduler allows the kernel to make an immediate determination
 * as to what the next thread to execute should be. Unlike yielding, this
 * routine is not guaranteed to switch to a thread of equal or higher priority
 * if any are available. For example, if the current thread is cooperative and
 * there is a still higher priority cooperative thread that is ready, then
 * yielding will switch to that higher priority thread whereas this routine
 * will not.
 *
 * Most applications will never use this routine.
 */
static inline void k_reschedule(void);
# 1041 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Suspend a thread.
 *
 * This routine prevents the kernel scheduler from making @a thread
 * the current thread. All other internal operations on @a thread are
 * still performed; for example, kernel objects it is waiting on are
 * still handed to it. Thread suspension does not impact any timeout
 * upon which the thread may be waiting (such as a timeout from a call
 * to k_sem_take() or k_sleep()). Thus if the timeout expires while the
 * thread is suspended, it is still suspended until k_thread_resume()
 * is called.
 *
 * When the target thread is active on another CPU, the caller will block until
 * the target thread is halted (suspended or aborted).  But if the caller is in
 * an interrupt context, it will spin waiting for that target thread active on
 * another CPU to halt.
 *
 * If @a thread is already suspended, the routine has no effect.
 *
 * @param thread ID of thread to suspend.
 */
static inline void k_thread_suspend(k_tid_t thread);

/**
 * @brief Resume a suspended thread.
 *
 * This routine reverses the thread suspension from k_thread_suspend()
 * and allows the kernel scheduler to make @a thread the current thread
 * when it is next eligible for that role.
 *
 * If @a thread is not currently suspended, the routine has no effect.
 *
 * @param thread ID of thread to resume.
 */
static inline void k_thread_resume(k_tid_t thread);

/**
 * @brief Start an inactive thread
 *
 * If a thread was created with K_FOREVER in the delay parameter, it will
 * not be added to the scheduling queue until this function is called
 * on it.
 *
 * @note This is a legacy API for compatibility.  Modern Zephyr
 * threads are initialized in the "sleeping" state and do not need
 * special handling for "start".
 *
 * @param thread thread to start
 */
static inline void k_thread_start(k_tid_t thread)
{
 k_wakeup(thread);
}

/**
 * @brief Set time-slicing period and scope.
 *
 * This routine specifies how the scheduler will perform time slicing of
 * preemptible threads.
 *
 * To enable time slicing, @a slice must be non-zero. The scheduler
 * ensures that no thread runs for more than the specified time limit
 * before other threads of that priority are given a chance to execute.
 * Any thread whose priority is higher than @a prio is exempted, and may
 * execute as long as desired without being preempted due to time slicing.
 *
 * Time slicing only limits the maximum amount of time a thread may continuously
 * execute. Once the scheduler selects a thread for execution, there is no
 * minimum guaranteed time the thread will execute before threads of greater or
 * equal priority are scheduled.
 *
 * When the current thread is the only one of that priority eligible
 * for execution, this routine has no effect; the thread is immediately
 * rescheduled after the slice period expires.
 *
 * To disable timeslicing, set both @a slice and @a prio to zero.
 *
 * @param slice Maximum time slice length (in milliseconds).
 * @param prio Highest thread priority level eligible for time slicing.
 */
void k_sched_time_slice_set(int32_t slice, int prio);

/**
 * @brief Set thread time slice
 *
 * As for k_sched_time_slice_set, but (when
 * CONFIG_TIMESLICE_PER_THREAD=y) sets the timeslice for a specific
 * thread.  When non-zero, this timeslice will take precedence over
 * the global value.
 *
 * When such a thread's timeslice expires, the configured callback
 * will be called before the thread is removed/re-added to the run
 * queue.  This callback will occur in interrupt context, and the
 * specified thread is guaranteed to have been preempted by the
 * currently-executing ISR.  Such a callback is free to, for example,
 * modify the thread priority or slice time for future execution,
 * suspend the thread, etc...
 *
 * @note Unlike the older API, the time slice parameter here is
 * specified in ticks, not milliseconds.  Ticks have always been the
 * internal unit, and not all platforms have integer conversions
 * between the two.
 *
 * @note Threads with a non-zero slice time set will be timesliced
 * always, even if they are higher priority than the maximum timeslice
 * priority set via k_sched_time_slice_set().
 *
 * @note The callback notification for slice expiration happens, as it
 * must, while the thread is still "current", and thus it happens
 * before any registered timeouts at this tick.  This has the somewhat
 * confusing side effect that the tick time (c.f. k_uptime_get()) does
 * not yet reflect the expired ticks.  Applications wishing to make
 * fine-grained timing decisions within this callback should use the
 * cycle API, or derived facilities like k_thread_runtime_stats_get().
 *
 * @param th A valid, initialized thread
 * @param slice_ticks Maximum timeslice, in ticks
 * @param expired Callback function called on slice expiration
 * @param data Parameter for the expiration handler
 */
void k_thread_time_slice_set(struct k_thread *th, int32_t slice_ticks,
        k_thread_timeslice_fn_t expired, void *data);

/** @} */

/**
 * @addtogroup isr_apis
 * @{
 */

/**
 * @brief Determine if code is running at interrupt level.
 *
 * This routine allows the caller to customize its actions, depending on
 * whether it is a thread or an ISR.
 *
 * @funcprops \isr_ok
 *
 * @return false if invoked by a thread.
 * @return true if invoked by an ISR.
 */
bool k_is_in_isr(void);

/**
 * @brief Determine if code is running in a preemptible thread.
 *
 * This routine allows the caller to customize its actions, depending on
 * whether it can be preempted by another thread. The routine returns a 'true'
 * value if all of the following conditions are met:
 *
 * - The code is running in a thread, not at ISR.
 * - The thread's priority is in the preemptible range.
 * - The thread has not locked the scheduler.
 *
 * @funcprops \isr_ok
 *
 * @return 0 if invoked by an ISR or by a cooperative thread.
 * @return Non-zero if invoked by a preemptible thread.
 */
static inline int k_is_preempt_thread(void);

/**
 * @brief Test whether startup is in the before-main-task phase.
 *
 * This routine allows the caller to customize its actions, depending on
 * whether it being invoked before the kernel is fully active.
 *
 * @funcprops \isr_ok
 *
 * @return true if invoked before post-kernel initialization
 * @return false if invoked during/after post-kernel initialization
 */
static inline bool k_is_pre_kernel(void)
{
 extern bool z_sys_post_kernel;

 return !z_sys_post_kernel;
}

/**
 * @}
 */

/**
 * @addtogroup thread_apis
 * @{
 */

/**
 * @brief Lock the scheduler.
 *
 * This routine prevents the current thread from being preempted by another
 * thread by instructing the scheduler to treat it as a cooperative thread.
 * If the thread subsequently performs an operation that makes it unready,
 * it will be context switched out in the normal manner. When the thread
 * again becomes the current thread, its non-preemptible status is maintained.
 *
 * This routine can be called recursively.
 *
 * Owing to clever implementation details, scheduler locks are
 * extremely fast for non-userspace threads (just one byte
 * inc/decrement in the thread struct).
 *
 * @note This works by elevating the thread priority temporarily to a
 * cooperative priority, allowing cheap synchronization vs. other
 * preemptible or cooperative threads running on the current CPU.  It
 * does not prevent preemption or asynchrony of other types.  It does
 * not prevent threads from running on other CPUs when CONFIG_SMP=y.
 * It does not prevent interrupts from happening, nor does it prevent
 * threads with MetaIRQ priorities from preempting the current thread.
 * In general this is a historical API not well-suited to modern
 * applications, use with care.
 */
void k_sched_lock(void);

/**
 * @brief Unlock the scheduler.
 *
 * This routine reverses the effect of a previous call to k_sched_lock().
 * A thread must call the routine once for each time it called k_sched_lock()
 * before the thread becomes preemptible.
 */
void k_sched_unlock(void);

/**
 * @brief Set current thread's custom data.
 *
 * This routine sets the custom data for the current thread to @ value.
 *
 * Custom data is not used by the kernel itself, and is freely available
 * for a thread to use as it sees fit. It can be used as a framework
 * upon which to build thread-local storage.
 *
 * @param value New custom data value.
 *
 */
static inline void k_thread_custom_data_set(void *value);

/**
 * @brief Get current thread's custom data.
 *
 * This routine returns the custom data for the current thread.
 *
 * @return Current custom data value.
 */
static inline void *k_thread_custom_data_get(void);

/**
 * @brief Set current thread name
 *
 * Set the name of the thread to be used when @kconfig{CONFIG_THREAD_MONITOR}
 * is enabled for tracing and debugging.
 *
 * @param thread Thread to set name, or NULL to set the current thread
 * @param str Name string
 * @retval 0 on success
 * @retval -EFAULT Memory access error with supplied string
 * @retval -ENOSYS Thread name configuration option not enabled
 * @retval -EINVAL Thread name too long
 */
static inline int k_thread_name_set(k_tid_t thread, const char *str);

/**
 * @brief Get thread name
 *
 * Get the name of a thread
 *
 * @param thread Thread ID
 * @retval Thread name, or NULL if configuration not enabled
 */
const char *k_thread_name_get(k_tid_t thread);

/**
 * @brief Copy the thread name into a supplied buffer
 *
 * @param thread Thread to obtain name information
 * @param buf Destination buffer
 * @param size Destination buffer size
 * @retval -ENOSPC Destination buffer too small
 * @retval -EFAULT Memory access error
 * @retval -ENOSYS Thread name feature not enabled
 * @retval 0 Success
 */
static inline int k_thread_name_copy(k_tid_t thread, char *buf,
     size_t size);

/**
 * @brief Get thread state string
 *
 * This routine generates a human friendly string containing the thread's
 * state, and copies as much of it as possible into @a buf.
 *
 * @param thread_id Thread ID
 * @param buf Buffer into which to copy state strings
 * @param buf_size Size of the buffer
 *
 * @retval Pointer to @a buf if data was copied, else a pointer to "".
 */
const char *k_thread_state_str(k_tid_t thread_id, char *buf, size_t buf_size);

/**
 * @}
 */

/**
 * @addtogroup clock_apis
 * @{
 */

/**
 * @brief Generate null timeout delay.
 *
 * This macro generates a timeout delay that instructs a kernel API
 * not to wait if the requested operation cannot be performed immediately.
 *
 * @return Timeout delay value.
 */


/**
 * @brief Generate timeout delay from nanoseconds.
 *
 * This macro generates a timeout delay that instructs a kernel API to
 * wait up to @a t nanoseconds to perform the requested operation.
 * Note that timer precision is limited to the tick rate, not the
 * requested value.
 *
 * @param t Duration in nanoseconds.
 *
 * @return Timeout delay value.
 */


/**
 * @brief Generate timeout delay from microseconds.
 *
 * This macro generates a timeout delay that instructs a kernel API
 * to wait up to @a t microseconds to perform the requested operation.
 * Note that timer precision is limited to the tick rate, not the
 * requested value.
 *
 * @param t Duration in microseconds.
 *
 * @return Timeout delay value.
 */


/**
 * @brief Generate timeout delay from cycles.
 *
 * This macro generates a timeout delay that instructs a kernel API
 * to wait up to @a t cycles to perform the requested operation.
 *
 * @param t Duration in cycles.
 *
 * @return Timeout delay value.
 */


/**
 * @brief Generate timeout delay from system ticks.
 *
 * This macro generates a timeout delay that instructs a kernel API
 * to wait up to @a t ticks to perform the requested operation.
 *
 * @param t Duration in system ticks.
 *
 * @return Timeout delay value.
 */


/**
 * @brief Generate timeout delay from milliseconds.
 *
 * This macro generates a timeout delay that instructs a kernel API
 * to wait up to @a ms milliseconds to perform the requested operation.
 *
 * @param ms Duration in milliseconds.
 *
 * @return Timeout delay value.
 */


/**
 * @brief Generate timeout delay from seconds.
 *
 * This macro generates a timeout delay that instructs a kernel API
 * to wait up to @a s seconds to perform the requested operation.
 *
 * @param s Duration in seconds.
 *
 * @return Timeout delay value.
 */


/**
 * @brief Generate timeout delay from minutes.

 * This macro generates a timeout delay that instructs a kernel API
 * to wait up to @a m minutes to perform the requested operation.
 *
 * @param m Duration in minutes.
 *
 * @return Timeout delay value.
 */


/**
 * @brief Generate timeout delay from hours.
 *
 * This macro generates a timeout delay that instructs a kernel API
 * to wait up to @a h hours to perform the requested operation.
 *
 * @param h Duration in hours.
 *
 * @return Timeout delay value.
 */


/**
 * @brief Generate infinite timeout delay.
 *
 * This macro generates a timeout delay that instructs a kernel API
 * to wait as long as necessary to perform the requested operation.
 *
 * @return Timeout delay value.
 */




/**
 * @brief Generates an absolute/uptime timeout value from system ticks
 *
 * This macro generates a timeout delay that represents an expiration
 * at the absolute uptime value specified, in system ticks.  That is, the
 * timeout will expire immediately after the system uptime reaches the
 * specified tick count.
 *
 * @param t Tick uptime value
 * @return Timeout delay value
 */



/**
 * @brief Generates an absolute/uptime timeout value from milliseconds
 *
 * This macro generates a timeout delay that represents an expiration
 * at the absolute uptime value specified, in milliseconds.  That is,
 * the timeout will expire immediately after the system uptime reaches
 * the specified tick count.
 *
 * @param t Millisecond uptime value
 * @return Timeout delay value
 */


/**
 * @brief Generates an absolute/uptime timeout value from microseconds
 *
 * This macro generates a timeout delay that represents an expiration
 * at the absolute uptime value specified, in microseconds.  That is,
 * the timeout will expire immediately after the system uptime reaches
 * the specified time.  Note that timer precision is limited by the
 * system tick rate and not the requested timeout value.
 *
 * @param t Microsecond uptime value
 * @return Timeout delay value
 */


/**
 * @brief Generates an absolute/uptime timeout value from nanoseconds
 *
 * This macro generates a timeout delay that represents an expiration
 * at the absolute uptime value specified, in nanoseconds.  That is,
 * the timeout will expire immediately after the system uptime reaches
 * the specified time.  Note that timer precision is limited by the
 * system tick rate and not the requested timeout value.
 *
 * @param t Nanosecond uptime value
 * @return Timeout delay value
 */


/**
 * @brief Generates an absolute/uptime timeout value from system cycles
 *
 * This macro generates a timeout delay that represents an expiration
 * at the absolute uptime value specified, in cycles.  That is, the
 * timeout will expire immediately after the system uptime reaches the
 * specified time.  Note that timer precision is limited by the system
 * tick rate and not the requested timeout value.
 *
 * @param t Cycle uptime value
 * @return Timeout delay value
 */




/**
 * @}
 */

/**
 * @cond INTERNAL_HIDDEN
 */

struct k_timer {
 /*
	 * _timeout structure must be first here if we want to use
	 * dynamic timer allocation. timeout.node is used in the double-linked
	 * list of free timers
	 */
 struct _timeout timeout;

 /* wait queue for the (single) thread waiting on this timer */
 _wait_q_t wait_q;

 /* runs in ISR context */
 void (*expiry_fn)(struct k_timer *timer);

 /* runs in the context of the thread that calls k_timer_stop() */
 void (*stop_fn)(struct k_timer *timer);

 /* timer period */
 k_timeout_t period;

 /* timer status */
 uint32_t status;

 /* user-specific data, also used to support legacy features */
 void *user_data;






};
# 1598 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @defgroup timer_apis Timer APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @typedef k_timer_expiry_t
 * @brief Timer expiry function type.
 *
 * A timer's expiry function is executed by the system clock interrupt handler
 * each time the timer expires. The expiry function is optional, and is only
 * invoked if the timer has been initialized with one.
 *
 * @param timer     Address of timer.
 */
typedef void (*k_timer_expiry_t)(struct k_timer *timer);

/**
 * @typedef k_timer_stop_t
 * @brief Timer stop function type.
 *
 * A timer's stop function is executed if the timer is stopped prematurely.
 * The function runs in the context of call that stops the timer.  As
 * k_timer_stop() can be invoked from an ISR, the stop function must be
 * callable from interrupt context (isr-ok).
 *
 * The stop function is optional, and is only invoked if the timer has been
 * initialized with one.
 *
 * @param timer     Address of timer.
 */
typedef void (*k_timer_stop_t)(struct k_timer *timer);

/**
 * @brief Statically define and initialize a timer.
 *
 * The timer can be accessed outside the module where it is defined using:
 *
 * @code extern struct k_timer <name>; @endcode
 *
 * @param name Name of the timer variable.
 * @param expiry_fn Function to invoke each time the timer expires.
 * @param stop_fn   Function to invoke if the timer is stopped while running.
 */




/**
 * @brief Initialize a timer.
 *
 * This routine initializes a timer, prior to its first use.
 *
 * @param timer     Address of timer.
 * @param expiry_fn Function to invoke each time the timer expires.
 * @param stop_fn   Function to invoke if the timer is stopped while running.
 */
void k_timer_init(struct k_timer *timer,
    k_timer_expiry_t expiry_fn,
    k_timer_stop_t stop_fn);

/**
 * @brief Start a timer.
 *
 * This routine starts a timer, and resets its status to zero. The timer
 * begins counting down using the specified duration and period values.
 *
 * Attempting to start a timer that is already running is permitted.
 * The timer's status is reset to zero and the timer begins counting down
 * using the new duration and period values.
 *
 * @param timer     Address of timer.
 * @param duration  Initial timer duration.
 * @param period    Timer period.
 */
static inline void k_timer_start(struct k_timer *timer,
        k_timeout_t duration, k_timeout_t period);

/**
 * @brief Stop a timer.
 *
 * This routine stops a running timer prematurely. The timer's stop function,
 * if one exists, is invoked by the caller.
 *
 * Attempting to stop a timer that is not running is permitted, but has no
 * effect on the timer.
 *
 * @note The stop handler has to be callable from ISRs if @a k_timer_stop is to
 * be called from ISRs.
 *
 * @funcprops \isr_ok
 *
 * @param timer     Address of timer.
 */
static inline void k_timer_stop(struct k_timer *timer);

/**
 * @brief Read timer status.
 *
 * This routine reads the timer's status, which indicates the number of times
 * it has expired since its status was last read.
 *
 * Calling this routine resets the timer's status to zero.
 *
 * @param timer     Address of timer.
 *
 * @return Timer status.
 */
static inline uint32_t k_timer_status_get(struct k_timer *timer);

/**
 * @brief Synchronize thread to timer expiration.
 *
 * This routine blocks the calling thread until the timer's status is non-zero
 * (indicating that it has expired at least once since it was last examined)
 * or the timer is stopped. If the timer status is already non-zero,
 * or the timer is already stopped, the caller continues without waiting.
 *
 * Calling this routine resets the timer's status to zero.
 *
 * This routine must not be used by interrupt handlers, since they are not
 * allowed to block.
 *
 * @param timer     Address of timer.
 *
 * @return Timer status.
 */
static inline uint32_t k_timer_status_sync(struct k_timer *timer);



/**
 * @brief Get next expiration time of a timer, in system ticks
 *
 * This routine returns the future system uptime reached at the next
 * time of expiration of the timer, in units of system ticks.  If the
 * timer is not running, current system time is returned.
 *
 * @param timer The timer object
 * @return Uptime of expiration, in ticks
 */
static inline k_ticks_t k_timer_expires_ticks(const struct k_timer *timer);

static inline k_ticks_t z_impl_k_timer_expires_ticks(
           const struct k_timer *timer)
{
 return z_timeout_expires(&timer->timeout);
}

/**
 * @brief Get time remaining before a timer next expires, in system ticks
 *
 * This routine computes the time remaining before a running timer
 * next expires, in units of system ticks.  If the timer is not
 * running, it returns zero.
 *
 * @param timer The timer object
 * @return Remaining time until expiration, in ticks
 */
static inline k_ticks_t k_timer_remaining_ticks(const struct k_timer *timer);

static inline k_ticks_t z_impl_k_timer_remaining_ticks(
           const struct k_timer *timer)
{
 return z_timeout_remaining(&timer->timeout);
}

/**
 * @brief Get time remaining before a timer next expires.
 *
 * This routine computes the (approximate) time remaining before a running
 * timer next expires. If the timer is not running, it returns zero.
 *
 * @param timer     Address of timer.
 *
 * @return Remaining time (in milliseconds).
 */
static inline uint32_t k_timer_remaining_get(struct k_timer *timer)
{
 return ((true) ? ( ((1000) == (10000)) ? (uint32_t) (k_timer_remaining_ticks(timer)) : ((10000) > (1000) && (10000) % (1000) == 0U) ? ((uint64_t) (k_timer_remaining_ticks(timer)) <= 0xffffffffU - ((false) ? ((10000) / (1000)) / 2 : (false) ? ((10000) / (1000)) - 1 : 0) ? ((uint32_t)((k_timer_remaining_ticks(timer)) + ((false) ? ((10000) / (1000)) / 2 : (false) ? ((10000) / (1000)) - 1 : 0)) / ((10000)/(1000) ? (10000)/(1000) : 01u)) : (uint32_t) (((uint64_t) (k_timer_remaining_ticks(timer)) + ((false) ? ((10000) / (1000)) / 2 : (false) ? ((10000) / (1000)) - 1 : 0)) / ((10000)/(1000) ? (10000)/(1000) : 01u)) ) : ((1000) > (10000) && (1000) % (10000) == 0U) ? (uint32_t) (k_timer_remaining_ticks(timer))*((1000) / (10000)) : ((uint32_t) (((uint64_t) (k_timer_remaining_ticks(timer))*(1000) + ((false) ? (10000) / 2 : (false) ? (10000) - 1 : 0)) / (10000))) ) : ((uint32_t) (((uint64_t) (k_timer_remaining_ticks(timer))*(1000) + ((false) ? (10000) / 2 : (false) ? (10000) - 1 : 0)) / (10000))) );
}



/**
 * @brief Associate user-specific data with a timer.
 *
 * This routine records the @a user_data with the @a timer, to be retrieved
 * later.
 *
 * It can be used e.g. in a timer handler shared across multiple subsystems to
 * retrieve data specific to the subsystem this timer is associated with.
 *
 * @param timer     Address of timer.
 * @param user_data User data to associate with the timer.
 */
static inline void k_timer_user_data_set(struct k_timer *timer, void *user_data);

/**
 * @internal
 */
static inline void z_impl_k_timer_user_data_set(struct k_timer *timer,
            void *user_data)
{
 timer->user_data = user_data;
}

/**
 * @brief Retrieve the user-specific data from a timer.
 *
 * @param timer     Address of timer.
 *
 * @return The user data.
 */
static inline void *k_timer_user_data_get(const struct k_timer *timer);

static inline void *z_impl_k_timer_user_data_get(const struct k_timer *timer)
{
 return timer->user_data;
}

/** @} */

/**
 * @addtogroup clock_apis
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Get system uptime, in system ticks.
 *
 * This routine returns the elapsed time since the system booted, in
 * ticks (c.f. @kconfig{CONFIG_SYS_CLOCK_TICKS_PER_SEC}), which is the
 * fundamental unit of resolution of kernel timekeeping.
 *
 * @return Current uptime in ticks.
 */
static inline int64_t k_uptime_ticks(void);

/**
 * @brief Get system uptime.
 *
 * This routine returns the elapsed time since the system booted,
 * in milliseconds.
 *
 * @note
 *    While this function returns time in milliseconds, it does
 *    not mean it has millisecond resolution. The actual resolution depends on
 *    @kconfig{CONFIG_SYS_CLOCK_TICKS_PER_SEC} config option.
 *
 * @return Current uptime in milliseconds.
 */
static inline int64_t k_uptime_get(void)
{
 return ((true) ? ( ((1000) == (10000)) ? (uint64_t) (k_uptime_ticks()) : ((10000) > (1000) && (10000) % (1000) == 0U) ? (((uint64_t) (k_uptime_ticks()) + ((false) ? ((10000) / (1000)) / 2 : (false) ? ((10000) / (1000)) - 1 : 0)) / ((10000)/(1000) ? (10000)/(1000) : 01u)) : ((1000) > (10000) && (1000) % (10000) == 0U) ? (uint64_t) (k_uptime_ticks())*((1000) / (10000)) : ((((((365 * 24ULL * 3600ULL * 10000) + (
# 1858 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
       (0xffffffffUL)
# 1858 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
       ) - 1) / (
# 1858 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
       (0xffffffffUL)
# 1858 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
       )) * 1000) <= 
# 1858 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
       (0xffffffffUL)
# 1858 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
       ) ? (((uint64_t) (k_uptime_ticks())*(1000) + ((false) ? (10000) / 2 : (false) ? (10000) - 1 : 0)) / (10000)) : (((uint64_t) (k_uptime_ticks()) / (10000))*(1000) + (((uint64_t) (k_uptime_ticks()) % (10000))*(1000) + ((false) ? (10000) / 2 : (false) ? (10000) - 1 : 0)) / (10000))) ) : (((uint64_t) (k_uptime_ticks()) / (10000))*(1000) + (((uint64_t) (k_uptime_ticks()) % (10000))*(1000) + ((false) ? (10000) / 2 : (false) ? (10000) - 1 : 0)) / (10000)) );
}

/**
 * @brief Get system uptime (32-bit version).
 *
 * This routine returns the lower 32 bits of the system uptime in
 * milliseconds.
 *
 * Because correct conversion requires full precision of the system
 * clock there is no benefit to using this over k_uptime_get() unless
 * you know the application will never run long enough for the system
 * clock to approach 2^32 ticks.  Calls to this function may involve
 * interrupt blocking and 64-bit math.
 *
 * @note
 *    While this function returns time in milliseconds, it does
 *    not mean it has millisecond resolution. The actual resolution depends on
 *    @kconfig{CONFIG_SYS_CLOCK_TICKS_PER_SEC} config option
 *
 * @return The low 32 bits of the current uptime, in milliseconds.
 */
static inline uint32_t k_uptime_get_32(void)
{
 return (uint32_t)k_uptime_get();
}

/**
 * @brief Get system uptime in seconds.
 *
 * This routine returns the elapsed time since the system booted,
 * in seconds.
 *
 * @return Current uptime in seconds.
 */
static inline uint32_t k_uptime_seconds(void)
{
 return ((true) ? ( ((1) == (10000)) ? (uint32_t) (k_uptime_ticks()) : ((10000) > (1) && (10000) % (1) == 0U) ? ((uint64_t) (k_uptime_ticks()) <= 0xffffffffU - ((false) ? ((10000) / (1)) / 2 : (false) ? ((10000) / (1)) - 1 : 0) ? ((uint32_t)((k_uptime_ticks()) + ((false) ? ((10000) / (1)) / 2 : (false) ? ((10000) / (1)) - 1 : 0)) / ((10000)/(1) ? (10000)/(1) : 01u)) : (uint32_t) (((uint64_t) (k_uptime_ticks()) + ((false) ? ((10000) / (1)) / 2 : (false) ? ((10000) / (1)) - 1 : 0)) / ((10000)/(1) ? (10000)/(1) : 01u)) ) : ((1) > (10000) && (1) % (10000) == 0U) ? (uint32_t) (k_uptime_ticks())*((1) / (10000)) : ((uint32_t) (((uint64_t) (k_uptime_ticks())*(1) + ((false) ? (10000) / 2 : (false) ? (10000) - 1 : 0)) / (10000))) ) : ((uint32_t) (((uint64_t) (k_uptime_ticks())*(1) + ((false) ? (10000) / 2 : (false) ? (10000) - 1 : 0)) / (10000))) );
}

/**
 * @brief Get elapsed time.
 *
 * This routine computes the elapsed time between the current system uptime
 * and an earlier reference time, in milliseconds.
 *
 * @param reftime Pointer to a reference time, which is updated to the current
 *                uptime upon return.
 *
 * @return Elapsed time.
 */
static inline int64_t k_uptime_delta(int64_t *reftime)
{
 int64_t uptime, delta;

 uptime = k_uptime_get();
 delta = uptime - *reftime;
 *reftime = uptime;

 return delta;
}

/**
 * @brief Read the hardware clock.
 *
 * This routine returns the current time, as measured by the system's hardware
 * clock.
 *
 * @return Current hardware clock up-counter (in cycles).
 */
static inline uint32_t k_cycle_get_32(void)
{
 return arch_k_cycle_get_32();
}

/**
 * @brief Read the 64-bit hardware clock.
 *
 * This routine returns the current time in 64-bits, as measured by the
 * system's hardware clock, if available.
 *
 * @see CONFIG_TIMER_HAS_64BIT_CYCLE_COUNTER
 *
 * @return Current hardware clock up-counter (in cycles).
 */
static inline uint64_t k_cycle_get_64(void)
{
 if (!1) {
  { }
                                                  ;
  return 0;
 }

 return arch_k_cycle_get_64();
}

/**
 * @}
 */

struct k_queue {
 sys_sflist_t data_q;
 struct k_spinlock lock;
 _wait_q_t wait_q;

 sys_dlist_t poll_events;


};

/**
 * @cond INTERNAL_HIDDEN
 */
# 1980 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @defgroup queue_apis Queue APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Initialize a queue.
 *
 * This routine initializes a queue object, prior to its first use.
 *
 * @param queue Address of the queue.
 */
static inline void k_queue_init(struct k_queue *queue);

/**
 * @brief Cancel waiting on a queue.
 *
 * This routine causes first thread pending on @a queue, if any, to
 * return from k_queue_get() call with NULL value (as if timeout expired).
 * If the queue is being waited on by k_poll(), it will return with
 * -EINTR and K_POLL_STATE_CANCELLED state (and per above, subsequent
 * k_queue_get() will return NULL).
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 */
static inline void k_queue_cancel_wait(struct k_queue *queue);

/**
 * @brief Append an element to the end of a queue.
 *
 * This routine appends a data item to @a queue. A queue data item must be
 * aligned on a word boundary, and the first word of the item is reserved
 * for the kernel's use.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param data Address of the data item.
 */
void k_queue_append(struct k_queue *queue, void *data);

/**
 * @brief Append an element to a queue.
 *
 * This routine appends a data item to @a queue. There is an implicit memory
 * allocation to create an additional temporary bookkeeping data structure from
 * the calling thread's resource pool, which is automatically freed when the
 * item is removed. The data itself is not copied.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param data Address of the data item.
 *
 * @retval 0 on success
 * @retval -ENOMEM if there isn't sufficient RAM in the caller's resource pool
 */
static inline int32_t k_queue_alloc_append(struct k_queue *queue, void *data);

/**
 * @brief Prepend an element to a queue.
 *
 * This routine prepends a data item to @a queue. A queue data item must be
 * aligned on a word boundary, and the first word of the item is reserved
 * for the kernel's use.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param data Address of the data item.
 */
void k_queue_prepend(struct k_queue *queue, void *data);

/**
 * @brief Prepend an element to a queue.
 *
 * This routine prepends a data item to @a queue. There is an implicit memory
 * allocation to create an additional temporary bookkeeping data structure from
 * the calling thread's resource pool, which is automatically freed when the
 * item is removed. The data itself is not copied.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param data Address of the data item.
 *
 * @retval 0 on success
 * @retval -ENOMEM if there isn't sufficient RAM in the caller's resource pool
 */
static inline int32_t k_queue_alloc_prepend(struct k_queue *queue, void *data);

/**
 * @brief Inserts an element to a queue.
 *
 * This routine inserts a data item to @a queue after previous item. A queue
 * data item must be aligned on a word boundary, and the first word of
 * the item is reserved for the kernel's use.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param prev Address of the previous data item.
 * @param data Address of the data item.
 */
void k_queue_insert(struct k_queue *queue, void *prev, void *data);

/**
 * @brief Atomically append a list of elements to a queue.
 *
 * This routine adds a list of data items to @a queue in one operation.
 * The data items must be in a singly-linked list, with the first word
 * in each data item pointing to the next data item; the list must be
 * NULL-terminated.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param head Pointer to first node in singly-linked list.
 * @param tail Pointer to last node in singly-linked list.
 *
 * @retval 0 on success
 * @retval -EINVAL on invalid supplied data
 *
 */
int k_queue_append_list(struct k_queue *queue, void *head, void *tail);

/**
 * @brief Atomically add a list of elements to a queue.
 *
 * This routine adds a list of data items to @a queue in one operation.
 * The data items must be in a singly-linked list implemented using a
 * sys_slist_t object. Upon completion, the original list is empty.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param list Pointer to sys_slist_t object.
 *
 * @retval 0 on success
 * @retval -EINVAL on invalid data
 */
int k_queue_merge_slist(struct k_queue *queue, sys_slist_t *list);

/**
 * @brief Get an element from a queue.
 *
 * This routine removes first data item from @a queue. The first word of the
 * data item is reserved for the kernel's use.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param timeout Waiting period to obtain a data item, or one of the special
 *                values K_NO_WAIT and K_FOREVER.
 *
 * @return Address of the data item if successful; NULL if returned
 * without waiting, or waiting period timed out.
 */
static inline void *k_queue_get(struct k_queue *queue, k_timeout_t timeout);

/**
 * @brief Remove an element from a queue.
 *
 * This routine removes data item from @a queue. The first word of the
 * data item is reserved for the kernel's use. Removing elements from k_queue
 * rely on sys_slist_find_and_remove which is not a constant time operation.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param data Address of the data item.
 *
 * @return true if data item was removed
 */
bool k_queue_remove(struct k_queue *queue, void *data);

/**
 * @brief Append an element to a queue only if it's not present already.
 *
 * This routine appends data item to @a queue. The first word of the data
 * item is reserved for the kernel's use. Appending elements to k_queue
 * relies on sys_slist_is_node_in_list which is not a constant time operation.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 * @param data Address of the data item.
 *
 * @return true if data item was added, false if not
 */
bool k_queue_unique_append(struct k_queue *queue, void *data);

/**
 * @brief Query a queue to see if it has data available.
 *
 * Note that the data might be already gone by the time this function returns
 * if other threads are also trying to read from the queue.
 *
 * @funcprops \isr_ok
 *
 * @param queue Address of the queue.
 *
 * @return Non-zero if the queue is empty.
 * @return 0 if data is available.
 */
static inline int k_queue_is_empty(struct k_queue *queue);

static inline int z_impl_k_queue_is_empty(struct k_queue *queue)
{
 return sys_sflist_is_empty(&queue->data_q) ? 1 : 0;
}

/**
 * @brief Peek element at the head of queue.
 *
 * Return element from the head of queue without removing it.
 *
 * @param queue Address of the queue.
 *
 * @return Head element, or NULL if queue is empty.
 */
static inline void *k_queue_peek_head(struct k_queue *queue);

/**
 * @brief Peek element at the tail of queue.
 *
 * Return element from the tail of queue without removing it.
 *
 * @param queue Address of the queue.
 *
 * @return Tail element, or NULL if queue is empty.
 */
static inline void *k_queue_peek_tail(struct k_queue *queue);

/**
 * @brief Statically define and initialize a queue.
 *
 * The queue can be accessed outside the module where it is defined using:
 *
 * @code extern struct k_queue <name>; @endcode
 *
 * @param name Name of the queue.
 */




/** @} */
# 2318 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @defgroup event_apis Event APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * Event Structure
 * @ingroup event_apis
 */

struct k_event {
 _wait_q_t wait_q;
 uint32_t events;
 struct k_spinlock lock;







};







/**
 * @brief Initialize an event object
 *
 * This routine initializes an event object, prior to its first use.
 *
 * @param event Address of the event object.
 */
static inline void k_event_init(struct k_event *event);

/**
 * @brief Post one or more events to an event object
 *
 * This routine posts one or more events to an event object. All tasks waiting
 * on the event object @a event whose waiting conditions become met by this
 * posting immediately unpend.
 *
 * Posting differs from setting in that posted events are merged together with
 * the current set of events tracked by the event object.
 *
 * @param event Address of the event object
 * @param events Set of events to post to @a event
 *
 * @retval Previous value of the events in @a event
 */
static inline uint32_t k_event_post(struct k_event *event, uint32_t events);

/**
 * @brief Set the events in an event object
 *
 * This routine sets the events stored in event object to the specified value.
 * All tasks waiting on the event object @a event whose waiting conditions
 * become met by this immediately unpend.
 *
 * Setting differs from posting in that set events replace the current set of
 * events tracked by the event object.
 *
 * @param event Address of the event object
 * @param events Set of events to set in @a event
 *
 * @retval Previous value of the events in @a event
 */
static inline uint32_t k_event_set(struct k_event *event, uint32_t events);

/**
 * @brief Set or clear the events in an event object
 *
 * This routine sets the events stored in event object to the specified value.
 * All tasks waiting on the event object @a event whose waiting conditions
 * become met by this immediately unpend. Unlike @ref k_event_set, this routine
 * allows specific event bits to be set and cleared as determined by the mask.
 *
 * @param event Address of the event object
 * @param events Set of events to set/clear in @a event
 * @param events_mask Mask to be applied to @a events
 *
 * @retval Previous value of the events in @a events_mask
 */
static inline uint32_t k_event_set_masked(struct k_event *event, uint32_t events,
      uint32_t events_mask);

/**
 * @brief Clear the events in an event object
 *
 * This routine clears (resets) the specified events stored in an event object.
 *
 * @param event Address of the event object
 * @param events Set of events to clear in @a event
 *
 * @retval Previous value of the events in @a event
 */
static inline uint32_t k_event_clear(struct k_event *event, uint32_t events);

/**
 * @brief Wait for any of the specified events
 *
 * This routine waits on event object @a event until any of the specified
 * events have been delivered to the event object, or the maximum wait time
 * @a timeout has expired. A thread may wait on up to 32 distinctly numbered
 * events that are expressed as bits in a single 32-bit word.
 *
 * @note The caller must be careful when resetting if there are multiple threads
 * waiting for the event object @a event.
 *
 * @param event Address of the event object
 * @param events Set of desired events on which to wait
 * @param reset If true, clear the set of events tracked by the event object
 *              before waiting. If false, do not clear the events.
 * @param timeout Waiting period for the desired set of events or one of the
 *                special values K_NO_WAIT and K_FOREVER.
 *
 * @retval set of matching events upon success
 * @retval 0 if matching events were not received within the specified time
 */
static inline uint32_t k_event_wait(struct k_event *event, uint32_t events,
    bool reset, k_timeout_t timeout);

/**
 * @brief Wait for all of the specified events
 *
 * This routine waits on event object @a event until all of the specified
 * events have been delivered to the event object, or the maximum wait time
 * @a timeout has expired. A thread may wait on up to 32 distinctly numbered
 * events that are expressed as bits in a single 32-bit word.
 *
 * @note The caller must be careful when resetting if there are multiple threads
 * waiting for the event object @a event.
 *
 * @param event Address of the event object
 * @param events Set of desired events on which to wait
 * @param reset If true, clear the set of events tracked by the event object
 *              before waiting. If false, do not clear the events.
 * @param timeout Waiting period for the desired set of events or one of the
 *                special values K_NO_WAIT and K_FOREVER.
 *
 * @retval set of matching events upon success
 * @retval 0 if matching events were not received within the specified time
 */
static inline uint32_t k_event_wait_all(struct k_event *event, uint32_t events,
        bool reset, k_timeout_t timeout);

/**
 * @brief Test the events currently tracked in the event object
 *
 * @param event Address of the event object
 * @param events_mask Set of desired events to test
 *
 * @retval Current value of events in @a events_mask
 */
static inline uint32_t k_event_test(struct k_event *event, uint32_t events_mask)
{
 return k_event_wait(event, events_mask, false, ((k_timeout_t) {0}));
}

/**
 * @brief Statically define and initialize an event object
 *
 * The event can be accessed outside the module where it is defined using:
 *
 * @code extern struct k_event <name>; @endcode
 *
 * @param name Name of the event object.
 */




/** @} */

struct k_fifo {
 struct k_queue _queue;



};

/**
 * @cond INTERNAL_HIDDEN
 */





/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @defgroup fifo_apis FIFO APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Initialize a FIFO queue.
 *
 * This routine initializes a FIFO queue, prior to its first use.
 *
 * @param fifo Address of the FIFO queue.
 */
# 2537 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Cancel waiting on a FIFO queue.
 *
 * This routine causes first thread pending on @a fifo, if any, to
 * return from k_fifo_get() call with NULL value (as if timeout
 * expired).
 *
 * @funcprops \isr_ok
 *
 * @param fifo Address of the FIFO queue.
 */







/**
 * @brief Add an element to a FIFO queue.
 *
 * This routine adds a data item to @a fifo. A FIFO data item must be
 * aligned on a word boundary, and the first word of the item is reserved
 * for the kernel's use.
 *
 * @funcprops \isr_ok
 *
 * @param fifo Address of the FIFO.
 * @param data Address of the data item.
 */
# 2575 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Add an element to a FIFO queue.
 *
 * This routine adds a data item to @a fifo. There is an implicit memory
 * allocation to create an additional temporary bookkeeping data structure from
 * the calling thread's resource pool, which is automatically freed when the
 * item is removed. The data itself is not copied.
 *
 * @funcprops \isr_ok
 *
 * @param fifo Address of the FIFO.
 * @param data Address of the data item.
 *
 * @retval 0 on success
 * @retval -ENOMEM if there isn't sufficient RAM in the caller's resource pool
 */
# 2600 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Atomically add a list of elements to a FIFO.
 *
 * This routine adds a list of data items to @a fifo in one operation.
 * The data items must be in a singly-linked list, with the first word of
 * each data item pointing to the next data item; the list must be
 * NULL-terminated.
 *
 * @funcprops \isr_ok
 *
 * @param fifo Address of the FIFO queue.
 * @param head Pointer to first node in singly-linked list.
 * @param tail Pointer to last node in singly-linked list.
 */







/**
 * @brief Atomically add a list of elements to a FIFO queue.
 *
 * This routine adds a list of data items to @a fifo in one operation.
 * The data items must be in a singly-linked list implemented using a
 * sys_slist_t object. Upon completion, the sys_slist_t object is invalid
 * and must be re-initialized via sys_slist_init().
 *
 * @funcprops \isr_ok
 *
 * @param fifo Address of the FIFO queue.
 * @param list Pointer to sys_slist_t object.
 */







/**
 * @brief Get an element from a FIFO queue.
 *
 * This routine removes a data item from @a fifo in a "first in, first out"
 * manner. The first word of the data item is reserved for the kernel's use.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 *
 * @funcprops \isr_ok
 *
 * @param fifo Address of the FIFO queue.
 * @param timeout Waiting period to obtain a data item,
 *                or one of the special values K_NO_WAIT and K_FOREVER.
 *
 * @return Address of the data item if successful; NULL if returned
 * without waiting, or waiting period timed out.
 */
# 2666 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Query a FIFO queue to see if it has data available.
 *
 * Note that the data might be already gone by the time this function returns
 * if other threads is also trying to read from the FIFO.
 *
 * @funcprops \isr_ok
 *
 * @param fifo Address of the FIFO queue.
 *
 * @return Non-zero if the FIFO queue is empty.
 * @return 0 if data is available.
 */



/**
 * @brief Peek element at the head of a FIFO queue.
 *
 * Return element from the head of FIFO queue without removing it. A usecase
 * for this is if elements of the FIFO object are themselves containers. Then
 * on each iteration of processing, a head container will be peeked,
 * and some data processed out of it, and only if the container is empty,
 * it will be completely remove from the FIFO queue.
 *
 * @param fifo Address of the FIFO queue.
 *
 * @return Head element, or NULL if the FIFO queue is empty.
 */
# 2703 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Peek element at the tail of FIFO queue.
 *
 * Return element from the tail of FIFO queue (without removing it). A usecase
 * for this is if elements of the FIFO queue are themselves containers. Then
 * it may be useful to add more data to the last container in a FIFO queue.
 *
 * @param fifo Address of the FIFO queue.
 *
 * @return Tail element, or NULL if a FIFO queue is empty.
 */
# 2722 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Statically define and initialize a FIFO queue.
 *
 * The FIFO queue can be accessed outside the module where it is defined using:
 *
 * @code extern struct k_fifo <name>; @endcode
 *
 * @param name Name of the FIFO queue.
 */




/** @} */

struct k_lifo {
 struct k_queue _queue;



};

/**
 * @cond INTERNAL_HIDDEN
 */






/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @defgroup lifo_apis LIFO APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Initialize a LIFO queue.
 *
 * This routine initializes a LIFO queue object, prior to its first use.
 *
 * @param lifo Address of the LIFO queue.
 */
# 2779 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Add an element to a LIFO queue.
 *
 * This routine adds a data item to @a lifo. A LIFO queue data item must be
 * aligned on a word boundary, and the first word of the item is
 * reserved for the kernel's use.
 *
 * @funcprops \isr_ok
 *
 * @param lifo Address of the LIFO queue.
 * @param data Address of the data item.
 */
# 2799 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Add an element to a LIFO queue.
 *
 * This routine adds a data item to @a lifo. There is an implicit memory
 * allocation to create an additional temporary bookkeeping data structure from
 * the calling thread's resource pool, which is automatically freed when the
 * item is removed. The data itself is not copied.
 *
 * @funcprops \isr_ok
 *
 * @param lifo Address of the LIFO.
 * @param data Address of the data item.
 *
 * @retval 0 on success
 * @retval -ENOMEM if there isn't sufficient RAM in the caller's resource pool
 */
# 2824 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Get an element from a LIFO queue.
 *
 * This routine removes a data item from @a LIFO in a "last in, first out"
 * manner. The first word of the data item is reserved for the kernel's use.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 *
 * @funcprops \isr_ok
 *
 * @param lifo Address of the LIFO queue.
 * @param timeout Waiting period to obtain a data item,
 *                or one of the special values K_NO_WAIT and K_FOREVER.
 *
 * @return Address of the data item if successful; NULL if returned
 * without waiting, or waiting period timed out.
 */
# 2849 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Statically define and initialize a LIFO queue.
 *
 * The LIFO queue can be accessed outside the module where it is defined using:
 *
 * @code extern struct k_lifo <name>; @endcode
 *
 * @param name Name of the fifo.
 */




/** @} */

/**
 * @cond INTERNAL_HIDDEN
 */


typedef uintptr_t stack_data_t;

struct k_stack {
 _wait_q_t wait_q;
 struct k_spinlock lock;
 stack_data_t *base, *next, *top;

 uint8_t flags;






};
# 2893 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @defgroup stack_apis Stack APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Initialize a stack.
 *
 * This routine initializes a stack object, prior to its first use.
 *
 * @param stack Address of the stack.
 * @param buffer Address of array used to hold stacked values.
 * @param num_entries Maximum number of values that can be stacked.
 */
void k_stack_init(struct k_stack *stack,
    stack_data_t *buffer, uint32_t num_entries);


/**
 * @brief Initialize a stack.
 *
 * This routine initializes a stack object, prior to its first use. Internal
 * buffers will be allocated from the calling thread's resource pool.
 * This memory will be released if k_stack_cleanup() is called, or
 * userspace is enabled and the stack object loses all references to it.
 *
 * @param stack Address of the stack.
 * @param num_entries Maximum number of values that can be stacked.
 *
 * @return -ENOMEM if memory couldn't be allocated
 */

static inline int32_t k_stack_alloc_init(struct k_stack *stack,
       uint32_t num_entries);

/**
 * @brief Release a stack's allocated buffer
 *
 * If a stack object was given a dynamically allocated buffer via
 * k_stack_alloc_init(), this will free it. This function does nothing
 * if the buffer wasn't dynamically allocated.
 *
 * @param stack Address of the stack.
 * @retval 0 on success
 * @retval -EAGAIN when object is still in use
 */
int k_stack_cleanup(struct k_stack *stack);

/**
 * @brief Push an element onto a stack.
 *
 * This routine adds a stack_data_t value @a data to @a stack.
 *
 * @funcprops \isr_ok
 *
 * @param stack Address of the stack.
 * @param data Value to push onto the stack.
 *
 * @retval 0 on success
 * @retval -ENOMEM if stack is full
 */
static inline int k_stack_push(struct k_stack *stack, stack_data_t data);

/**
 * @brief Pop an element from a stack.
 *
 * This routine removes a stack_data_t value from @a stack in a "last in,
 * first out" manner and stores the value in @a data.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 *
 * @funcprops \isr_ok
 *
 * @param stack Address of the stack.
 * @param data Address of area to hold the value popped from the stack.
 * @param timeout Waiting period to obtain a value,
 *                or one of the special values K_NO_WAIT and
 *                K_FOREVER.
 *
 * @retval 0 Element popped from stack.
 * @retval -EBUSY Returned without waiting.
 * @retval -EAGAIN Waiting period timed out.
 */
static inline int k_stack_pop(struct k_stack *stack, stack_data_t *data,
     k_timeout_t timeout);

/**
 * @brief Statically define and initialize a stack
 *
 * The stack can be accessed outside the module where it is defined using:
 *
 * @code extern struct k_stack <name>; @endcode
 *
 * @param name Name of the stack.
 * @param stack_num_entries Maximum number of values that can be stacked.
 */







/** @} */

/**
 * @cond INTERNAL_HIDDEN
 */

struct k_work;
struct k_work_q;
struct k_work_queue_config;
extern struct k_work_q k_sys_work_q;

/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @defgroup mutex_apis Mutex APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * Mutex Structure
 * @ingroup mutex_apis
 */
struct k_mutex {
 /** Mutex wait queue */
 _wait_q_t wait_q;
 /** Mutex owner */
 struct k_thread *owner;

 /** Current lock count */
 uint32_t lock_count;

 /** Original thread priority */
 int owner_orig_prio;






};

/**
 * @cond INTERNAL_HIDDEN
 */
# 3056 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief Statically define and initialize a mutex.
 *
 * The mutex can be accessed outside the module where it is defined using:
 *
 * @code extern struct k_mutex <name>; @endcode
 *
 * @param name Name of the mutex.
 */




/**
 * @brief Initialize a mutex.
 *
 * This routine initializes a mutex object, prior to its first use.
 *
 * Upon completion, the mutex is available and does not have an owner.
 *
 * @param mutex Address of the mutex.
 *
 * @retval 0 Mutex object created
 *
 */
static inline int k_mutex_init(struct k_mutex *mutex);


/**
 * @brief Lock a mutex.
 *
 * This routine locks @a mutex. If the mutex is locked by another thread,
 * the calling thread waits until the mutex becomes available or until
 * a timeout occurs.
 *
 * A thread is permitted to lock a mutex it has already locked. The operation
 * completes immediately and the lock count is increased by 1.
 *
 * Mutexes may not be locked in ISRs.
 *
 * @param mutex Address of the mutex.
 * @param timeout Waiting period to lock the mutex,
 *                or one of the special values K_NO_WAIT and
 *                K_FOREVER.
 *
 * @retval 0 Mutex locked.
 * @retval -EBUSY Returned without waiting.
 * @retval -EAGAIN Waiting period timed out.
 */
static inline int k_mutex_lock(struct k_mutex *mutex, k_timeout_t timeout);

/**
 * @brief Unlock a mutex.
 *
 * This routine unlocks @a mutex. The mutex must already be locked by the
 * calling thread.
 *
 * The mutex cannot be claimed by another thread until it has been unlocked by
 * the calling thread as many times as it was previously locked by that
 * thread.
 *
 * Mutexes may not be unlocked in ISRs, as mutexes must only be manipulated
 * in thread context due to ownership and priority inheritance semantics.
 *
 * @param mutex Address of the mutex.
 *
 * @retval 0 Mutex unlocked.
 * @retval -EPERM The current thread does not own the mutex
 * @retval -EINVAL The mutex is not locked
 *
 */
static inline int k_mutex_unlock(struct k_mutex *mutex);

/**
 * @}
 */


struct k_condvar {
 _wait_q_t wait_q;




};






/**
 * @defgroup condvar_apis Condition Variables APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Initialize a condition variable
 *
 * @param condvar pointer to a @p k_condvar structure
 * @retval 0 Condition variable created successfully
 */
static inline int k_condvar_init(struct k_condvar *condvar);

/**
 * @brief Signals one thread that is pending on the condition variable
 *
 * @param condvar pointer to a @p k_condvar structure
 * @retval 0 On success
 */
static inline int k_condvar_signal(struct k_condvar *condvar);

/**
 * @brief Unblock all threads that are pending on the condition
 * variable
 *
 * @param condvar pointer to a @p k_condvar structure
 * @return An integer with number of woken threads on success
 */
static inline int k_condvar_broadcast(struct k_condvar *condvar);

/**
 * @brief Waits on the condition variable releasing the mutex lock
 *
 * Atomically releases the currently owned mutex, blocks the current thread
 * waiting on the condition variable specified by @a condvar,
 * and finally acquires the mutex again.
 *
 * The waiting thread unblocks only after another thread calls
 * k_condvar_signal, or k_condvar_broadcast with the same condition variable.
 *
 * @param condvar pointer to a @p k_condvar structure
 * @param mutex Address of the mutex.
 * @param timeout Waiting period for the condition variable
 *                or one of the special values K_NO_WAIT and K_FOREVER.
 * @retval 0 On success
 * @retval -EAGAIN Waiting period timed out.
 */
static inline int k_condvar_wait(struct k_condvar *condvar, struct k_mutex *mutex,
        k_timeout_t timeout);

/**
 * @brief Statically define and initialize a condition variable.
 *
 * The condition variable can be accessed outside the module where it is
 * defined using:
 *
 * @code extern struct k_condvar <name>; @endcode
 *
 * @param name Name of the condition variable.
 */



/**
 * @}
 */

/**
 * @cond INTERNAL_HIDDEN
 */

struct k_sem {
 _wait_q_t wait_q;
 unsigned int count;
 unsigned int limit;

 sys_dlist_t poll_events;






};
# 3245 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @defgroup semaphore_apis Semaphore APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Maximum limit value allowed for a semaphore.
 *
 * This is intended for use when a semaphore does not have
 * an explicit maximum limit, and instead is just used for
 * counting purposes.
 *
 */


/**
 * @brief Initialize a semaphore.
 *
 * This routine initializes a semaphore object, prior to its first use.
 *
 * @param sem Address of the semaphore.
 * @param initial_count Initial semaphore count.
 * @param limit Maximum permitted semaphore count.
 *
 * @see K_SEM_MAX_LIMIT
 *
 * @retval 0 Semaphore created successfully
 * @retval -EINVAL Invalid values
 *
 */
static inline int k_sem_init(struct k_sem *sem, unsigned int initial_count,
     unsigned int limit);

/**
 * @brief Take a semaphore.
 *
 * This routine takes @a sem.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 *
 * @funcprops \isr_ok
 *
 * @param sem Address of the semaphore.
 * @param timeout Waiting period to take the semaphore,
 *                or one of the special values K_NO_WAIT and K_FOREVER.
 *
 * @retval 0 Semaphore taken.
 * @retval -EBUSY Returned without waiting.
 * @retval -EAGAIN Waiting period timed out,
 *			or the semaphore was reset during the waiting period.
 */
static inline int k_sem_take(struct k_sem *sem, k_timeout_t timeout);

/**
 * @brief Give a semaphore.
 *
 * This routine gives @a sem, unless the semaphore is already at its maximum
 * permitted count.
 *
 * @funcprops \isr_ok
 *
 * @param sem Address of the semaphore.
 */
static inline void k_sem_give(struct k_sem *sem);

/**
 * @brief Resets a semaphore's count to zero.
 *
 * This routine sets the count of @a sem to zero.
 * Any outstanding semaphore takes will be aborted
 * with -EAGAIN.
 *
 * @param sem Address of the semaphore.
 */
static inline void k_sem_reset(struct k_sem *sem);

/**
 * @brief Get a semaphore's count.
 *
 * This routine returns the current count of @a sem.
 *
 * @param sem Address of the semaphore.
 *
 * @return Current semaphore count.
 */
static inline unsigned int k_sem_count_get(struct k_sem *sem);

/**
 * @internal
 */
static inline unsigned int z_impl_k_sem_count_get(struct k_sem *sem)
{
 return sem->count;
}

/**
 * @brief Statically define and initialize a semaphore.
 *
 * The semaphore can be accessed outside the module where it is defined using:
 *
 * @code extern struct k_sem <name>; @endcode
 *
 * @param name Name of the semaphore.
 * @param initial_count Initial semaphore count.
 * @param count_limit Maximum permitted semaphore count.
 */







/** @} */

/**
 * @cond INTERNAL_HIDDEN
 */

struct k_work_delayable;
struct k_work_sync;

/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @defgroup workqueue_apis Work Queue APIs
 * @ingroup kernel_apis
 * @{
 */

/** @brief The signature for a work item handler function.
 *
 * The function will be invoked by the thread animating a work queue.
 *
 * @param work the work item that provided the handler.
 */
typedef void (*k_work_handler_t)(struct k_work *work);

/** @brief Initialize a (non-delayable) work structure.
 *
 * This must be invoked before submitting a work structure for the first time.
 * It need not be invoked again on the same work structure.  It can be
 * re-invoked to change the associated handler, but this must be done when the
 * work item is idle.
 *
 * @funcprops \isr_ok
 *
 * @param work the work structure to be initialized.
 *
 * @param handler the handler to be invoked by the work item.
 */
void k_work_init(struct k_work *work,
    k_work_handler_t handler);

/** @brief Busy state flags from the work item.
 *
 * A zero return value indicates the work item appears to be idle.
 *
 * @note This is a live snapshot of state, which may change before the result
 * is checked.  Use locks where appropriate.
 *
 * @funcprops \isr_ok
 *
 * @param work pointer to the work item.
 *
 * @return a mask of flags K_WORK_DELAYED, K_WORK_QUEUED,
 * K_WORK_RUNNING, K_WORK_CANCELING, and K_WORK_FLUSHING.
 */
int k_work_busy_get(const struct k_work *work);

/** @brief Test whether a work item is currently pending.
 *
 * Wrapper to determine whether a work item is in a non-idle state.
 *
 * @note This is a live snapshot of state, which may change before the result
 * is checked.  Use locks where appropriate.
 *
 * @funcprops \isr_ok
 *
 * @param work pointer to the work item.
 *
 * @return true if and only if k_work_busy_get() returns a non-zero value.
 */
static inline bool k_work_is_pending(const struct k_work *work);

/** @brief Submit a work item to a queue.
 *
 * @param queue pointer to the work queue on which the item should run.  If
 * NULL the queue from the most recent submission will be used.
 *
 * @funcprops \isr_ok
 *
 * @param work pointer to the work item.
 *
 * @retval 0 if work was already submitted to a queue
 * @retval 1 if work was not submitted and has been queued to @p queue
 * @retval 2 if work was running and has been queued to the queue that was
 * running it
 * @retval -EBUSY
 * * if work submission was rejected because the work item is cancelling; or
 * * @p queue is draining; or
 * * @p queue is plugged.
 * @retval -EINVAL if @p queue is null and the work item has never been run.
 * @retval -ENODEV if @p queue has not been started.
 */
int k_work_submit_to_queue(struct k_work_q *queue,
      struct k_work *work);

/** @brief Submit a work item to the system queue.
 *
 * @funcprops \isr_ok
 *
 * @param work pointer to the work item.
 *
 * @return as with k_work_submit_to_queue().
 */
int k_work_submit(struct k_work *work);

/** @brief Wait for last-submitted instance to complete.
 *
 * Resubmissions may occur while waiting, including chained submissions (from
 * within the handler).
 *
 * @note Be careful of caller and work queue thread relative priority.  If
 * this function sleeps it will not return until the work queue thread
 * completes the tasks that allow this thread to resume.
 *
 * @note Behavior is undefined if this function is invoked on @p work from a
 * work queue running @p work.
 *
 * @param work pointer to the work item.
 *
 * @param sync pointer to an opaque item containing state related to the
 * pending cancellation.  The object must persist until the call returns, and
 * be accessible from both the caller thread and the work queue thread.  The
 * object must not be used for any other flush or cancel operation until this
 * one completes.  On architectures with CONFIG_KERNEL_COHERENCE the object
 * must be allocated in coherent memory.
 *
 * @retval true if call had to wait for completion
 * @retval false if work was already idle
 */
bool k_work_flush(struct k_work *work,
    struct k_work_sync *sync);

/** @brief Cancel a work item.
 *
 * This attempts to prevent a pending (non-delayable) work item from being
 * processed by removing it from the work queue.  If the item is being
 * processed, the work item will continue to be processed, but resubmissions
 * are rejected until cancellation completes.
 *
 * If this returns zero cancellation is complete, otherwise something
 * (probably a work queue thread) is still referencing the item.
 *
 * See also k_work_cancel_sync().
 *
 * @funcprops \isr_ok
 *
 * @param work pointer to the work item.
 *
 * @return the k_work_busy_get() status indicating the state of the item after all
 * cancellation steps performed by this call are completed.
 */
int k_work_cancel(struct k_work *work);

/** @brief Cancel a work item and wait for it to complete.
 *
 * Same as k_work_cancel() but does not return until cancellation is complete.
 * This can be invoked by a thread after k_work_cancel() to synchronize with a
 * previous cancellation.
 *
 * On return the work structure will be idle unless something submits it after
 * the cancellation was complete.
 *
 * @note Be careful of caller and work queue thread relative priority.  If
 * this function sleeps it will not return until the work queue thread
 * completes the tasks that allow this thread to resume.
 *
 * @note Behavior is undefined if this function is invoked on @p work from a
 * work queue running @p work.
 *
 * @param work pointer to the work item.
 *
 * @param sync pointer to an opaque item containing state related to the
 * pending cancellation.  The object must persist until the call returns, and
 * be accessible from both the caller thread and the work queue thread.  The
 * object must not be used for any other flush or cancel operation until this
 * one completes.  On architectures with CONFIG_KERNEL_COHERENCE the object
 * must be allocated in coherent memory.
 *
 * @retval true if work was pending (call had to wait for cancellation of a
 * running handler to complete, or scheduled or submitted operations were
 * cancelled);
 * @retval false otherwise
 */
bool k_work_cancel_sync(struct k_work *work, struct k_work_sync *sync);

/** @brief Initialize a work queue structure.
 *
 * This must be invoked before starting a work queue structure for the first time.
 * It need not be invoked again on the same work queue structure.
 *
 * @funcprops \isr_ok
 *
 * @param queue the queue structure to be initialized.
 */
void k_work_queue_init(struct k_work_q *queue);

/** @brief Initialize a work queue.
 *
 * This configures the work queue thread and starts it running.  The function
 * should not be re-invoked on a queue.
 *
 * @param queue pointer to the queue structure. It must be initialized
 *        in zeroed/bss memory or with @ref k_work_queue_init before
 *        use.
 *
 * @param stack pointer to the work thread stack area.
 *
 * @param stack_size size of the work thread stack area, in bytes.
 *
 * @param prio initial thread priority
 *
 * @param cfg optional additional configuration parameters.  Pass @c
 * NULL if not required, to use the defaults documented in
 * k_work_queue_config.
 */
void k_work_queue_start(struct k_work_q *queue,
   k_thread_stack_t *stack, size_t stack_size,
   int prio, const struct k_work_queue_config *cfg);

/** @brief Access the thread that animates a work queue.
 *
 * This is necessary to grant a work queue thread access to things the work
 * items it will process are expected to use.
 *
 * @param queue pointer to the queue structure.
 *
 * @return the thread associated with the work queue.
 */
static inline k_tid_t k_work_queue_thread_get(struct k_work_q *queue);

/** @brief Wait until the work queue has drained, optionally plugging it.
 *
 * This blocks submission to the work queue except when coming from queue
 * thread, and blocks the caller until no more work items are available in the
 * queue.
 *
 * If @p plug is true then submission will continue to be blocked after the
 * drain operation completes until k_work_queue_unplug() is invoked.
 *
 * Note that work items that are delayed are not yet associated with their
 * work queue.  They must be cancelled externally if a goal is to ensure the
 * work queue remains empty.  The @p plug feature can be used to prevent
 * delayed items from being submitted after the drain completes.
 *
 * @param queue pointer to the queue structure.
 *
 * @param plug if true the work queue will continue to block new submissions
 * after all items have drained.
 *
 * @retval 1 if call had to wait for the drain to complete
 * @retval 0 if call did not have to wait
 * @retval negative if wait was interrupted or failed
 */
int k_work_queue_drain(struct k_work_q *queue, bool plug);

/** @brief Release a work queue to accept new submissions.
 *
 * This releases the block on new submissions placed when k_work_queue_drain()
 * is invoked with the @p plug option enabled.  If this is invoked before the
 * drain completes new items may be submitted as soon as the drain completes.
 *
 * @funcprops \isr_ok
 *
 * @param queue pointer to the queue structure.
 *
 * @retval 0 if successfully unplugged
 * @retval -EALREADY if the work queue was not plugged.
 */
int k_work_queue_unplug(struct k_work_q *queue);

/** @brief Stop a work queue.
 *
 * Stops the work queue thread and ensures that no further work will be processed.
 * This call is blocking and guarantees that the work queue thread has terminated
 * cleanly if successful, no work will be processed past this point.
 *
 * @param queue Pointer to the queue structure.
 * @param timeout Maximum time to wait for the work queue to stop.
 *
 * @retval 0 if the work queue was stopped
 * @retval -EALREADY if the work queue was not started (or already stopped)
 * @retval -EBUSY if the work queue is actively processing work items
 * @retval -ETIMEDOUT if the work queue did not stop within the stipulated timeout
 */
int k_work_queue_stop(struct k_work_q *queue, k_timeout_t timeout);

/** @brief Initialize a delayable work structure.
 *
 * This must be invoked before scheduling a delayable work structure for the
 * first time.  It need not be invoked again on the same work structure.  It
 * can be re-invoked to change the associated handler, but this must be done
 * when the work item is idle.
 *
 * @funcprops \isr_ok
 *
 * @param dwork the delayable work structure to be initialized.
 *
 * @param handler the handler to be invoked by the work item.
 */
void k_work_init_delayable(struct k_work_delayable *dwork,
      k_work_handler_t handler);

/**
 * @brief Get the parent delayable work structure from a work pointer.
 *
 * This function is necessary when a @c k_work_handler_t function is passed to
 * k_work_schedule_for_queue() and the handler needs to access data from the
 * container of the containing `k_work_delayable`.
 *
 * @param work Address passed to the work handler
 *
 * @return Address of the containing @c k_work_delayable structure.
 */
static inline struct k_work_delayable *
k_work_delayable_from_work(struct k_work *work);

/** @brief Busy state flags from the delayable work item.
 *
 * @funcprops \isr_ok
 *
 * @note This is a live snapshot of state, which may change before the result
 * can be inspected.  Use locks where appropriate.
 *
 * @param dwork pointer to the delayable work item.
 *
 * @return a mask of flags K_WORK_DELAYED, K_WORK_QUEUED, K_WORK_RUNNING,
 * K_WORK_CANCELING, and K_WORK_FLUSHING.  A zero return value indicates the
 * work item appears to be idle.
 */
int k_work_delayable_busy_get(const struct k_work_delayable *dwork);

/** @brief Test whether a delayed work item is currently pending.
 *
 * Wrapper to determine whether a delayed work item is in a non-idle state.
 *
 * @note This is a live snapshot of state, which may change before the result
 * can be inspected.  Use locks where appropriate.
 *
 * @funcprops \isr_ok
 *
 * @param dwork pointer to the delayable work item.
 *
 * @return true if and only if k_work_delayable_busy_get() returns a non-zero
 * value.
 */
static inline bool k_work_delayable_is_pending(
 const struct k_work_delayable *dwork);

/** @brief Get the absolute tick count at which a scheduled delayable work
 * will be submitted.
 *
 * @note This is a live snapshot of state, which may change before the result
 * can be inspected.  Use locks where appropriate.
 *
 * @funcprops \isr_ok
 *
 * @param dwork pointer to the delayable work item.
 *
 * @return the tick count when the timer that will schedule the work item will
 * expire, or the current tick count if the work is not scheduled.
 */
static inline k_ticks_t k_work_delayable_expires_get(
 const struct k_work_delayable *dwork);

/** @brief Get the number of ticks until a scheduled delayable work will be
 * submitted.
 *
 * @note This is a live snapshot of state, which may change before the result
 * can be inspected.  Use locks where appropriate.
 *
 * @funcprops \isr_ok
 *
 * @param dwork pointer to the delayable work item.
 *
 * @return the number of ticks until the timer that will schedule the work
 * item will expire, or zero if the item is not scheduled.
 */
static inline k_ticks_t k_work_delayable_remaining_get(
 const struct k_work_delayable *dwork);

/** @brief Submit an idle work item to a queue after a delay.
 *
 * Unlike k_work_reschedule_for_queue() this is a no-op if the work item is
 * already scheduled or submitted, even if @p delay is @c K_NO_WAIT.
 *
 * @funcprops \isr_ok
 *
 * @param queue the queue on which the work item should be submitted after the
 * delay.
 *
 * @param dwork pointer to the delayable work item.
 *
 * @param delay the time to wait before submitting the work item.  If @c
 * K_NO_WAIT and the work is not pending this is equivalent to
 * k_work_submit_to_queue().
 *
 * @retval 0 if work was already scheduled or submitted.
 * @retval 1 if work has been scheduled.
 * @retval 2 if @p delay is @c K_NO_WAIT and work
 *         was running and has been queued to the queue that was running it.
 * @retval -EBUSY if @p delay is @c K_NO_WAIT and
 *         k_work_submit_to_queue() fails with this code.
 * @retval -EINVAL if @p delay is @c K_NO_WAIT and
 *         k_work_submit_to_queue() fails with this code.
 * @retval -ENODEV if @p delay is @c K_NO_WAIT and
 *         k_work_submit_to_queue() fails with this code.
 */
int k_work_schedule_for_queue(struct k_work_q *queue,
          struct k_work_delayable *dwork,
          k_timeout_t delay);

/** @brief Submit an idle work item to the system work queue after a
 * delay.
 *
 * This is a thin wrapper around k_work_schedule_for_queue(), with all the API
 * characteristics of that function.
 *
 * @param dwork pointer to the delayable work item.
 *
 * @param delay the time to wait before submitting the work item.  If @c
 * K_NO_WAIT this is equivalent to k_work_submit_to_queue().
 *
 * @return as with k_work_schedule_for_queue().
 */
int k_work_schedule(struct k_work_delayable *dwork,
       k_timeout_t delay);

/** @brief Reschedule a work item to a queue after a delay.
 *
 * Unlike k_work_schedule_for_queue() this function can change the deadline of
 * a scheduled work item, and will schedule a work item that is in any state
 * (e.g. is idle, submitted, or running).  This function does not affect
 * ("unsubmit") a work item that has been submitted to a queue.
 *
 * @funcprops \isr_ok
 *
 * @param queue the queue on which the work item should be submitted after the
 * delay.
 *
 * @param dwork pointer to the delayable work item.
 *
 * @param delay the time to wait before submitting the work item.  If @c
 * K_NO_WAIT this is equivalent to k_work_submit_to_queue() after canceling
 * any previous scheduled submission.
 *
 * @note If delay is @c K_NO_WAIT ("no delay") the return values are as with
 * k_work_submit_to_queue().
 *
 * @retval 0 if delay is @c K_NO_WAIT and work was already on a queue
 * @retval 1 if
 * * delay is @c K_NO_WAIT and work was not submitted but has now been queued
 *   to @p queue; or
 * * delay not @c K_NO_WAIT and work has been scheduled
 * @retval 2 if delay is @c K_NO_WAIT and work was running and has been queued
 * to the queue that was running it
 * @retval -EBUSY if @p delay is @c K_NO_WAIT and
 *         k_work_submit_to_queue() fails with this code.
 * @retval -EINVAL if @p delay is @c K_NO_WAIT and
 *         k_work_submit_to_queue() fails with this code.
 * @retval -ENODEV if @p delay is @c K_NO_WAIT and
 *         k_work_submit_to_queue() fails with this code.
 */
int k_work_reschedule_for_queue(struct k_work_q *queue,
     struct k_work_delayable *dwork,
     k_timeout_t delay);

/** @brief Reschedule a work item to the system work queue after a
 * delay.
 *
 * This is a thin wrapper around k_work_reschedule_for_queue(), with all the
 * API characteristics of that function.
 *
 * @param dwork pointer to the delayable work item.
 *
 * @param delay the time to wait before submitting the work item.
 *
 * @return as with k_work_reschedule_for_queue().
 */
int k_work_reschedule(struct k_work_delayable *dwork,
         k_timeout_t delay);

/** @brief Flush delayable work.
 *
 * If the work is scheduled, it is immediately submitted.  Then the caller
 * blocks until the work completes, as with k_work_flush().
 *
 * @note Be careful of caller and work queue thread relative priority.  If
 * this function sleeps it will not return until the work queue thread
 * completes the tasks that allow this thread to resume.
 *
 * @note Behavior is undefined if this function is invoked on @p dwork from a
 * work queue running @p dwork.
 *
 * @param dwork pointer to the delayable work item.
 *
 * @param sync pointer to an opaque item containing state related to the
 * pending cancellation.  The object must persist until the call returns, and
 * be accessible from both the caller thread and the work queue thread.  The
 * object must not be used for any other flush or cancel operation until this
 * one completes.  On architectures with CONFIG_KERNEL_COHERENCE the object
 * must be allocated in coherent memory.
 *
 * @retval true if call had to wait for completion
 * @retval false if work was already idle
 */
bool k_work_flush_delayable(struct k_work_delayable *dwork,
       struct k_work_sync *sync);

/** @brief Cancel delayable work.
 *
 * Similar to k_work_cancel() but for delayable work.  If the work is
 * scheduled or submitted it is canceled.  This function does not wait for the
 * cancellation to complete.
 *
 * @note The work may still be running when this returns.  Use
 * k_work_flush_delayable() or k_work_cancel_delayable_sync() to ensure it is
 * not running.
 *
 * @note Canceling delayable work does not prevent rescheduling it.  It does
 * prevent submitting it until the cancellation completes.
 *
 * @funcprops \isr_ok
 *
 * @param dwork pointer to the delayable work item.
 *
 * @return the k_work_delayable_busy_get() status indicating the state of the
 * item after all cancellation steps performed by this call are completed.
 */
int k_work_cancel_delayable(struct k_work_delayable *dwork);

/** @brief Cancel delayable work and wait.
 *
 * Like k_work_cancel_delayable() but waits until the work becomes idle.
 *
 * @note Canceling delayable work does not prevent rescheduling it.  It does
 * prevent submitting it until the cancellation completes.
 *
 * @note Be careful of caller and work queue thread relative priority.  If
 * this function sleeps it will not return until the work queue thread
 * completes the tasks that allow this thread to resume.
 *
 * @note Behavior is undefined if this function is invoked on @p dwork from a
 * work queue running @p dwork.
 *
 * @param dwork pointer to the delayable work item.
 *
 * @param sync pointer to an opaque item containing state related to the
 * pending cancellation.  The object must persist until the call returns, and
 * be accessible from both the caller thread and the work queue thread.  The
 * object must not be used for any other flush or cancel operation until this
 * one completes.  On architectures with CONFIG_KERNEL_COHERENCE the object
 * must be allocated in coherent memory.
 *
 * @retval true if work was not idle (call had to wait for cancellation of a
 * running handler to complete, or scheduled or submitted operations were
 * cancelled);
 * @retval false otherwise
 */
bool k_work_cancel_delayable_sync(struct k_work_delayable *dwork,
      struct k_work_sync *sync);

enum {
/**
 * @cond INTERNAL_HIDDEN
 */

 /* The atomic API is used for all work and queue flags fields to
	 * enforce sequential consistency in SMP environments.
	 */

 /* Bits that represent the work item states.  At least nine of the
	 * combinations are distinct valid stable states.
	 */
 K_WORK_RUNNING_BIT = 0,
 K_WORK_CANCELING_BIT = 1,
 K_WORK_QUEUED_BIT = 2,
 K_WORK_DELAYED_BIT = 3,
 K_WORK_FLUSHING_BIT = 4,

 K_WORK_MASK = (1UL << (K_WORK_DELAYED_BIT)) | (1UL << (K_WORK_QUEUED_BIT))
  | (1UL << (K_WORK_RUNNING_BIT)) | (1UL << (K_WORK_CANCELING_BIT)) | (1UL << (K_WORK_FLUSHING_BIT)),

 /* Static work flags */
 K_WORK_DELAYABLE_BIT = 8,
 K_WORK_DELAYABLE = (1UL << (K_WORK_DELAYABLE_BIT)),

 /* Dynamic work queue flags */
 K_WORK_QUEUE_STARTED_BIT = 0,
 K_WORK_QUEUE_STARTED = (1UL << (K_WORK_QUEUE_STARTED_BIT)),
 K_WORK_QUEUE_BUSY_BIT = 1,
 K_WORK_QUEUE_BUSY = (1UL << (K_WORK_QUEUE_BUSY_BIT)),
 K_WORK_QUEUE_DRAIN_BIT = 2,
 K_WORK_QUEUE_DRAIN = (1UL << (K_WORK_QUEUE_DRAIN_BIT)),
 K_WORK_QUEUE_PLUGGED_BIT = 3,
 K_WORK_QUEUE_PLUGGED = (1UL << (K_WORK_QUEUE_PLUGGED_BIT)),
 K_WORK_QUEUE_STOP_BIT = 4,
 K_WORK_QUEUE_STOP = (1UL << (K_WORK_QUEUE_STOP_BIT)),

 /* Static work queue flags */
 K_WORK_QUEUE_NO_YIELD_BIT = 8,
 K_WORK_QUEUE_NO_YIELD = (1UL << (K_WORK_QUEUE_NO_YIELD_BIT)),

/**
 * INTERNAL_HIDDEN @endcond
 */
 /* Transient work flags */

 /** @brief Flag indicating a work item that is running under a work
	 * queue thread.
	 *
	 * Accessed via k_work_busy_get().  May co-occur with other flags.
	 */
 K_WORK_RUNNING = (1UL << (K_WORK_RUNNING_BIT)),

 /** @brief Flag indicating a work item that is being canceled.
	 *
	 * Accessed via k_work_busy_get().  May co-occur with other flags.
	 */
 K_WORK_CANCELING = (1UL << (K_WORK_CANCELING_BIT)),

 /** @brief Flag indicating a work item that has been submitted to a
	 * queue but has not started running.
	 *
	 * Accessed via k_work_busy_get().  May co-occur with other flags.
	 */
 K_WORK_QUEUED = (1UL << (K_WORK_QUEUED_BIT)),

 /** @brief Flag indicating a delayed work item that is scheduled for
	 * submission to a queue.
	 *
	 * Accessed via k_work_busy_get().  May co-occur with other flags.
	 */
 K_WORK_DELAYED = (1UL << (K_WORK_DELAYED_BIT)),

 /** @brief Flag indicating a synced work item that is being flushed.
	 *
	 * Accessed via k_work_busy_get().  May co-occur with other flags.
	 */
 K_WORK_FLUSHING = (1UL << (K_WORK_FLUSHING_BIT)),
};

/** @brief A structure used to submit work. */
struct k_work {
 /* All fields are protected by the work module spinlock.  No fields
	 * are to be accessed except through kernel API.
	 */

 /* Node to link into k_work_q pending list. */
 sys_snode_t node;

 /* The function to be invoked by the work queue thread. */
 k_work_handler_t handler;

 /* The queue on which the work item was last submitted. */
 struct k_work_q *queue;

 /* State of the work item.
	 *
	 * The item can be DELAYED, QUEUED, and RUNNING simultaneously.
	 *
	 * It can be RUNNING and CANCELING simultaneously.
	 */
 uint32_t flags;
};





/** @brief A structure used to submit work after a delay. */
struct k_work_delayable {
 /* The work item. */
 struct k_work work;

 /* Timeout used to submit work after a delay. */
 struct _timeout timeout;

 /* The queue to which the work should be submitted. */
 struct k_work_q *queue;
};
# 4053 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Initialize a statically-defined delayable work item.
 *
 * This macro can be used to initialize a statically-defined delayable
 * work item, prior to its first use. For example,
 *
 * @code static K_WORK_DELAYABLE_DEFINE(<dwork>, <work_handler>); @endcode
 *
 * Note that if the runtime dependencies support initialization with
 * k_work_init_delayable() using that will eliminate the initialized
 * object in ROM that is produced by this macro and copied in at
 * system startup.
 *
 * @param work Symbol name for delayable work item object
 * @param work_handler Function to invoke each time work item is processed.
 */




/**
 * @cond INTERNAL_HIDDEN
 */

/* Record used to wait for work to flush.
 *
 * The work item is inserted into the queue that will process (or is
 * processing) the item, and will be processed as soon as the item
 * completes.  When the flusher is processed the semaphore will be
 * signaled, releasing the thread waiting for the flush.
 */
struct z_work_flusher {
 struct k_work work;
 struct k_sem sem;
};

/* Record used to wait for work to complete a cancellation.
 *
 * The work item is inserted into a global queue of pending cancels.
 * When a cancelling work item goes idle any matching waiters are
 * removed from pending_cancels and are woken.
 */
struct z_work_canceller {
 sys_snode_t node;
 struct k_work *work;
 struct k_sem sem;
};

/**
 * INTERNAL_HIDDEN @endcond
 */

/** @brief A structure holding internal state for a pending synchronous
 * operation on a work item or queue.
 *
 * Instances of this type are provided by the caller for invocation of
 * k_work_flush(), k_work_cancel_sync() and sibling flush and cancel APIs.  A
 * referenced object must persist until the call returns, and be accessible
 * from both the caller thread and the work queue thread.
 *
 * @note If CONFIG_KERNEL_COHERENCE is enabled the object must be allocated in
 * coherent memory; see arch_mem_coherent().  The stack on these architectures
 * is generally not coherent.  be stack-allocated.  Violations are detected by
 * runtime assertion.
 */
struct k_work_sync {
 union {
  struct z_work_flusher flusher;
  struct z_work_canceller canceller;
 };
};

/** @brief A structure holding optional configuration items for a work
 * queue.
 *
 * This structure, and values it references, are not retained by
 * k_work_queue_start().
 */
struct k_work_queue_config {
 /** The name to be given to the work queue thread.
	 *
	 * If left null the thread will not have a name.
	 */
 const char *name;

 /** Control whether the work queue thread should yield between
	 * items.
	 *
	 * Yielding between items helps guarantee the work queue
	 * thread does not starve other threads, including cooperative
	 * ones released by a work item.  This is the default behavior.
	 *
	 * Set this to @c true to prevent the work queue thread from
	 * yielding between items.  This may be appropriate when a
	 * sequence of items should complete without yielding
	 * control.
	 */
 bool no_yield;

 /** Control whether the work queue thread should be marked as
	 * essential thread.
	 */
 bool essential;
};

/** @brief A structure used to hold work until it can be processed. */
struct k_work_q {
 /* The thread that animates the work. */
 struct k_thread thread;

 /* All the following fields must be accessed only while the
	 * work module spinlock is held.
	 */

 /* List of k_work items to be worked. */
 sys_slist_t pending;

 /* Wait queue for idle work thread. */
 _wait_q_t notifyq;

 /* Wait queue for threads waiting for the queue to drain. */
 _wait_q_t drainq;

 /* Flags describing queue state. */
 uint32_t flags;
};

/* Provide the implementation for inline functions declared above */

static inline bool k_work_is_pending(const struct k_work *work)
{
 return k_work_busy_get(work) != 0;
}

static inline struct k_work_delayable *
k_work_delayable_from_work(struct k_work *work)
{
 return ({ ((struct k_work_delayable *)(((char *)(work)) - 
# 4190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
       __builtin_offsetof (
# 4190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
       struct k_work_delayable
# 4190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
       , 
# 4190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
       work
# 4190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
       )
# 4190 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
       )); });
}

static inline bool k_work_delayable_is_pending(
 const struct k_work_delayable *dwork)
{
 return k_work_delayable_busy_get(dwork) != 0;
}

static inline k_ticks_t k_work_delayable_expires_get(
 const struct k_work_delayable *dwork)
{
 return z_timeout_expires(&dwork->timeout);
}

static inline k_ticks_t k_work_delayable_remaining_get(
 const struct k_work_delayable *dwork)
{
 return z_timeout_remaining(&dwork->timeout);
}

static inline k_tid_t k_work_queue_thread_get(struct k_work_q *queue)
{
 return &queue->thread;
}

/** @} */

struct k_work_user;

/**
 * @addtogroup workqueue_apis
 * @{
 */

/**
 * @typedef k_work_user_handler_t
 * @brief Work item handler function type for user work queues.
 *
 * A work item's handler function is executed by a user workqueue's thread
 * when the work item is processed by the workqueue.
 *
 * @param work Address of the work item.
 */
typedef void (*k_work_user_handler_t)(struct k_work_user *work);

/**
 * @cond INTERNAL_HIDDEN
 */

struct k_work_user_q {
 struct k_queue queue;
 struct k_thread thread;
};

enum {
 K_WORK_USER_STATE_PENDING,
};

struct k_work_user {
 void *_reserved;
 k_work_user_handler_t handler;
 atomic_t flags;
};

/**
 * INTERNAL_HIDDEN @endcond
 */
# 4270 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Initialize a statically-defined user work item.
 *
 * This macro can be used to initialize a statically-defined user work
 * item, prior to its first use. For example,
 *
 * @code static K_WORK_USER_DEFINE(<work>, <work_handler>); @endcode
 *
 * @param work Symbol name for work item object
 * @param work_handler Function to invoke each time work item is processed.
 */



/**
 * @brief Initialize a userspace work item.
 *
 * This routine initializes a user workqueue work item, prior to its
 * first use.
 *
 * @param work Address of work item.
 * @param handler Function to invoke each time work item is processed.
 */
static inline void k_work_user_init(struct k_work_user *work,
        k_work_user_handler_t handler)
{
 *work = (struct k_work_user){ 
# 4296 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
                            __null
# 4296 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
                            , handler, 0 };
}

/**
 * @brief Check if a userspace work item is pending.
 *
 * This routine indicates if user work item @a work is pending in a workqueue's
 * queue.
 *
 * @note Checking if the work is pending gives no guarantee that the
 *       work will still be pending when this information is used. It is up to
 *       the caller to make sure that this information is used in a safe manner.
 *
 * @funcprops \isr_ok
 *
 * @param work Address of work item.
 *
 * @return true if work item is pending, or false if it is not pending.
 */
static inline bool k_work_user_is_pending(struct k_work_user *work)
{
 return atomic_test_bit(&work->flags, K_WORK_USER_STATE_PENDING);
}

/**
 * @brief Submit a work item to a user mode workqueue
 *
 * Submits a work item to a workqueue that runs in user mode. A temporary
 * memory allocation is made from the caller's resource pool which is freed
 * once the worker thread consumes the k_work item. The workqueue
 * thread must have memory access to the k_work item being submitted. The caller
 * must have permission granted on the work_q parameter's queue object.
 *
 * @funcprops \isr_ok
 *
 * @param work_q Address of workqueue.
 * @param work Address of work item.
 *
 * @retval -EBUSY if the work item was already in some workqueue
 * @retval -ENOMEM if no memory for thread resource pool allocation
 * @retval 0 Success
 */
static inline int k_work_user_submit_to_queue(struct k_work_user_q *work_q,
           struct k_work_user *work)
{
 int ret = -
# 4341 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 3 4
           16 /* Device or resource busy */
# 4341 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
                ;

 if (!atomic_test_and_set_bit(&work->flags,
         K_WORK_USER_STATE_PENDING)) {
  ret = k_queue_alloc_append(&work_q->queue, work);

  /* Couldn't insert into the queue. Clear the pending bit
		 * so the work item can be submitted again
		 */
  if (ret != 0) {
   atomic_clear_bit(&work->flags,
      K_WORK_USER_STATE_PENDING);
  }
 }

 return ret;
}

/**
 * @brief Start a workqueue in user mode
 *
 * This works identically to k_work_queue_start() except it is callable from
 * user mode, and the worker thread created will run in user mode.  The caller
 * must have permissions granted on both the work_q parameter's thread and
 * queue objects, and the same restrictions on priority apply as
 * k_thread_create().
 *
 * @param work_q Address of workqueue.
 * @param stack Pointer to work queue thread's stack space, as defined by
 *		K_THREAD_STACK_DEFINE()
 * @param stack_size Size of the work queue thread's stack (in bytes), which
 *		should either be the same constant passed to
 *		K_THREAD_STACK_DEFINE() or the value of K_THREAD_STACK_SIZEOF().
 * @param prio Priority of the work queue's thread.
 * @param name optional thread name.  If not null a copy is made into the
 *		thread's name buffer.
 */
void k_work_user_queue_start(struct k_work_user_q *work_q,
        k_thread_stack_t *stack,
        size_t stack_size, int prio,
        const char *name);

/**
 * @brief Access the user mode thread that animates a work queue.
 *
 * This is necessary to grant a user mode work queue thread access to things
 * the work items it will process are expected to use.
 *
 * @param work_q pointer to the user mode queue structure.
 *
 * @return the user mode thread associated with the work queue.
 */
static inline k_tid_t k_work_user_queue_thread_get(struct k_work_user_q *work_q)
{
 return &work_q->thread;
}

/** @} */

/**
 * @cond INTERNAL_HIDDEN
 */

struct k_work_poll {
 struct k_work work;
 struct k_work_q *workq;
 struct z_poller poller;
 struct k_poll_event *events;
 int num_events;
 k_work_handler_t real_handler;
 struct _timeout timeout;
 int poll_result;
};

/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @addtogroup workqueue_apis
 * @{
 */

/**
 * @brief Initialize a statically-defined work item.
 *
 * This macro can be used to initialize a statically-defined workqueue work
 * item, prior to its first use. For example,
 *
 * @code static K_WORK_DEFINE(<work>, <work_handler>); @endcode
 *
 * @param work Symbol name for work item object
 * @param work_handler Function to invoke each time work item is processed.
 */



/**
 * @brief Initialize a triggered work item.
 *
 * This routine initializes a workqueue triggered work item, prior to
 * its first use.
 *
 * @param work Address of triggered work item.
 * @param handler Function to invoke each time work item is processed.
 */
void k_work_poll_init(struct k_work_poll *work,
        k_work_handler_t handler);

/**
 * @brief Submit a triggered work item.
 *
 * This routine schedules work item @a work to be processed by workqueue
 * @a work_q when one of the given @a events is signaled. The routine
 * initiates internal poller for the work item and then returns to the caller.
 * Only when one of the watched events happen the work item is actually
 * submitted to the workqueue and becomes pending.
 *
 * Submitting a previously submitted triggered work item that is still
 * waiting for the event cancels the existing submission and reschedules it
 * the using the new event list. Note that this behavior is inherently subject
 * to race conditions with the pre-existing triggered work item and work queue,
 * so care must be taken to synchronize such resubmissions externally.
 *
 * @funcprops \isr_ok
 *
 * @warning
 * Provided array of events as well as a triggered work item must be placed
 * in persistent memory (valid until work handler execution or work
 * cancellation) and cannot be modified after submission.
 *
 * @param work_q Address of workqueue.
 * @param work Address of delayed work item.
 * @param events An array of events which trigger the work.
 * @param num_events The number of events in the array.
 * @param timeout Timeout after which the work will be scheduled
 *		  for execution even if not triggered.
 *
 *
 * @retval 0 Work item started watching for events.
 * @retval -EINVAL Work item is being processed or has completed its work.
 * @retval -EADDRINUSE Work item is pending on a different workqueue.
 */
int k_work_poll_submit_to_queue(struct k_work_q *work_q,
           struct k_work_poll *work,
           struct k_poll_event *events,
           int num_events,
           k_timeout_t timeout);

/**
 * @brief Submit a triggered work item to the system workqueue.
 *
 * This routine schedules work item @a work to be processed by system
 * workqueue when one of the given @a events is signaled. The routine
 * initiates internal poller for the work item and then returns to the caller.
 * Only when one of the watched events happen the work item is actually
 * submitted to the workqueue and becomes pending.
 *
 * Submitting a previously submitted triggered work item that is still
 * waiting for the event cancels the existing submission and reschedules it
 * the using the new event list. Note that this behavior is inherently subject
 * to race conditions with the pre-existing triggered work item and work queue,
 * so care must be taken to synchronize such resubmissions externally.
 *
 * @funcprops \isr_ok
 *
 * @warning
 * Provided array of events as well as a triggered work item must not be
 * modified until the item has been processed by the workqueue.
 *
 * @param work Address of delayed work item.
 * @param events An array of events which trigger the work.
 * @param num_events The number of events in the array.
 * @param timeout Timeout after which the work will be scheduled
 *		  for execution even if not triggered.
 *
 * @retval 0 Work item started watching for events.
 * @retval -EINVAL Work item is being processed or has completed its work.
 * @retval -EADDRINUSE Work item is pending on a different workqueue.
 */
int k_work_poll_submit(struct k_work_poll *work,
         struct k_poll_event *events,
         int num_events,
         k_timeout_t timeout);

/**
 * @brief Cancel a triggered work item.
 *
 * This routine cancels the submission of triggered work item @a work.
 * A triggered work item can only be canceled if no event triggered work
 * submission.
 *
 * @funcprops \isr_ok
 *
 * @param work Address of delayed work item.
 *
 * @retval 0 Work item canceled.
 * @retval -EINVAL Work item is being processed or has completed its work.
 */
int k_work_poll_cancel(struct k_work_poll *work);

/** @} */

/**
 * @defgroup msgq_apis Message Queue APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Message Queue Structure
 */
struct k_msgq {
 /** Message queue wait queue */
 _wait_q_t wait_q;
 /** Lock */
 struct k_spinlock lock;
 /** Message size */
 size_t msg_size;
 /** Maximal number of messages */
 uint32_t max_msgs;
 /** Start of message buffer */
 char *buffer_start;
 /** End of message buffer */
 char *buffer_end;
 /** Read pointer */
 char *read_ptr;
 /** Write pointer */
 char *write_ptr;
 /** Number of used messages */
 uint32_t used_msgs;

 sys_dlist_t poll_events;

 /** Message queue */
 uint8_t flags;






};
/**
 * @cond INTERNAL_HIDDEN
 */
# 4602 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */




/**
 * @brief Message Queue Attributes
 */
struct k_msgq_attrs {
 /** Message Size */
 size_t msg_size;
 /** Maximal number of messages */
 uint32_t max_msgs;
 /** Used messages */
 uint32_t used_msgs;
};


/**
 * @brief Statically define and initialize a message queue.
 *
 * The message queue's ring buffer contains space for @a q_max_msgs messages,
 * each of which is @a q_msg_size bytes long. Alignment of the message queue's
 * ring buffer is not necessary, setting @a q_align to 1 is sufficient.
 *
 * The message queue can be accessed outside the module where it is defined
 * using:
 *
 * @code extern struct k_msgq <name>; @endcode
 *
 * @param q_name Name of the message queue.
 * @param q_msg_size Message size (in bytes).
 * @param q_max_msgs Maximum number of messages that can be queued.
 * @param q_align Alignment of the message queue's ring buffer (power of 2).
 *
 */







/**
 * @brief Initialize a message queue.
 *
 * This routine initializes a message queue object, prior to its first use.
 *
 * The message queue's ring buffer must contain space for @a max_msgs messages,
 * each of which is @a msg_size bytes long. Alignment of the message queue's
 * ring buffer is not necessary.
 *
 * @param msgq Address of the message queue.
 * @param buffer Pointer to ring buffer that holds queued messages.
 * @param msg_size Message size (in bytes).
 * @param max_msgs Maximum number of messages that can be queued.
 */
void k_msgq_init(struct k_msgq *msgq, char *buffer, size_t msg_size,
   uint32_t max_msgs);

/**
 * @brief Initialize a message queue.
 *
 * This routine initializes a message queue object, prior to its first use,
 * allocating its internal ring buffer from the calling thread's resource
 * pool.
 *
 * Memory allocated for the ring buffer can be released by calling
 * k_msgq_cleanup(), or if userspace is enabled and the msgq object loses
 * all of its references.
 *
 * @param msgq Address of the message queue.
 * @param msg_size Message size (in bytes).
 * @param max_msgs Maximum number of messages that can be queued.
 *
 * @return 0 on success, -ENOMEM if there was insufficient memory in the
 *	thread's resource pool, or -EINVAL if the size parameters cause
 *	an integer overflow.
 */
static inline int k_msgq_alloc_init(struct k_msgq *msgq, size_t msg_size,
    uint32_t max_msgs);

/**
 * @brief Release allocated buffer for a queue
 *
 * Releases memory allocated for the ring buffer.
 *
 * @param msgq message queue to cleanup
 *
 * @retval 0 on success
 * @retval -EBUSY Queue not empty
 */
int k_msgq_cleanup(struct k_msgq *msgq);

/**
 * @brief Send a message to a message queue.
 *
 * This routine sends a message to message queue @a q.
 *
 * @note The message content is copied from @a data into @a msgq and the @a data
 * pointer is not retained, so the message content will not be modified
 * by this function.
 *
 * @funcprops \isr_ok
 *
 * @param msgq Address of the message queue.
 * @param data Pointer to the message.
 * @param timeout Waiting period to add the message, or one of the special
 *                values K_NO_WAIT and K_FOREVER.
 *
 * @retval 0 Message sent.
 * @retval -ENOMSG Returned without waiting or queue purged.
 * @retval -EAGAIN Waiting period timed out.
 */
static inline int k_msgq_put(struct k_msgq *msgq, const void *data, k_timeout_t timeout);

/**
 * @brief Receive a message from a message queue.
 *
 * This routine receives a message from message queue @a q in a "first in,
 * first out" manner.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 *
 * @funcprops \isr_ok
 *
 * @param msgq Address of the message queue.
 * @param data Address of area to hold the received message.
 * @param timeout Waiting period to receive the message,
 *                or one of the special values K_NO_WAIT and
 *                K_FOREVER.
 *
 * @retval 0 Message received.
 * @retval -ENOMSG Returned without waiting or queue purged.
 * @retval -EAGAIN Waiting period timed out.
 */
static inline int k_msgq_get(struct k_msgq *msgq, void *data, k_timeout_t timeout);

/**
 * @brief Peek/read a message from a message queue.
 *
 * This routine reads a message from message queue @a q in a "first in,
 * first out" manner and leaves the message in the queue.
 *
 * @funcprops \isr_ok
 *
 * @param msgq Address of the message queue.
 * @param data Address of area to hold the message read from the queue.
 *
 * @retval 0 Message read.
 * @retval -ENOMSG Returned when the queue has no message.
 */
static inline int k_msgq_peek(struct k_msgq *msgq, void *data);

/**
 * @brief Peek/read a message from a message queue at the specified index
 *
 * This routine reads a message from message queue at the specified index
 * and leaves the message in the queue.
 * k_msgq_peek_at(msgq, data, 0) is equivalent to k_msgq_peek(msgq, data)
 *
 * @funcprops \isr_ok
 *
 * @param msgq Address of the message queue.
 * @param data Address of area to hold the message read from the queue.
 * @param idx Message queue index at which to peek
 *
 * @retval 0 Message read.
 * @retval -ENOMSG Returned when the queue has no message at index.
 */
static inline int k_msgq_peek_at(struct k_msgq *msgq, void *data, uint32_t idx);

/**
 * @brief Purge a message queue.
 *
 * This routine discards all unreceived messages in a message queue's ring
 * buffer. Any threads that are blocked waiting to send a message to the
 * message queue are unblocked and see an -ENOMSG error code.
 *
 * @param msgq Address of the message queue.
 */
static inline void k_msgq_purge(struct k_msgq *msgq);

/**
 * @brief Get the amount of free space in a message queue.
 *
 * This routine returns the number of unused entries in a message queue's
 * ring buffer.
 *
 * @param msgq Address of the message queue.
 *
 * @return Number of unused ring buffer entries.
 */
static inline uint32_t k_msgq_num_free_get(struct k_msgq *msgq);

/**
 * @brief Get basic attributes of a message queue.
 *
 * This routine fetches basic attributes of message queue into attr argument.
 *
 * @param msgq Address of the message queue.
 * @param attrs pointer to message queue attribute structure.
 */
static inline void k_msgq_get_attrs(struct k_msgq *msgq,
     struct k_msgq_attrs *attrs);


static inline uint32_t z_impl_k_msgq_num_free_get(struct k_msgq *msgq)
{
 return msgq->max_msgs - msgq->used_msgs;
}

/**
 * @brief Get the number of messages in a message queue.
 *
 * This routine returns the number of messages in a message queue's ring buffer.
 *
 * @param msgq Address of the message queue.
 *
 * @return Number of messages.
 */
static inline uint32_t k_msgq_num_used_get(struct k_msgq *msgq);

static inline uint32_t z_impl_k_msgq_num_used_get(struct k_msgq *msgq)
{
 return msgq->used_msgs;
}

/** @} */

/**
 * @defgroup mailbox_apis Mailbox APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Mailbox Message Structure
 *
 */
struct k_mbox_msg {
 /** size of message (in bytes) */
 size_t size;
 /** application-defined information value */
 uint32_t info;
 /** sender's message data buffer */
 void *tx_data;
 /** source thread id */
 k_tid_t rx_source_thread;
 /** target thread id */
 k_tid_t tx_target_thread;
 /** internal use only - thread waiting on send (may be a dummy) */
 k_tid_t _syncing_thread;

 /** internal use only - semaphore used during asynchronous send */
 struct k_sem *_async_sem;

};
/**
 * @brief Mailbox Structure
 *
 */
struct k_mbox {
 /** Transmit messages queue */
 _wait_q_t tx_msg_queue;
 /** Receive message queue */
 _wait_q_t rx_msg_queue;
 struct k_spinlock lock;






};
/**
 * @cond INTERNAL_HIDDEN
 */







/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief Statically define and initialize a mailbox.
 *
 * The mailbox is to be accessed outside the module where it is defined using:
 *
 * @code extern struct k_mbox <name>; @endcode
 *
 * @param name Name of the mailbox.
 */




/**
 * @brief Initialize a mailbox.
 *
 * This routine initializes a mailbox object, prior to its first use.
 *
 * @param mbox Address of the mailbox.
 */
void k_mbox_init(struct k_mbox *mbox);

/**
 * @brief Send a mailbox message in a synchronous manner.
 *
 * This routine sends a message to @a mbox and waits for a receiver to both
 * receive and process it. The message data may be in a buffer or non-existent
 * (i.e. an empty message).
 *
 * @param mbox Address of the mailbox.
 * @param tx_msg Address of the transmit message descriptor.
 * @param timeout Waiting period for the message to be received,
 *                or one of the special values K_NO_WAIT
 *                and K_FOREVER. Once the message has been received,
 *                this routine waits as long as necessary for the message
 *                to be completely processed.
 *
 * @retval 0 Message sent.
 * @retval -ENOMSG Returned without waiting.
 * @retval -EAGAIN Waiting period timed out.
 */
int k_mbox_put(struct k_mbox *mbox, struct k_mbox_msg *tx_msg,
        k_timeout_t timeout);

/**
 * @brief Send a mailbox message in an asynchronous manner.
 *
 * This routine sends a message to @a mbox without waiting for a receiver
 * to process it. The message data may be in a buffer or non-existent
 * (i.e. an empty message). Optionally, the semaphore @a sem will be given
 * when the message has been both received and completely processed by
 * the receiver.
 *
 * @param mbox Address of the mailbox.
 * @param tx_msg Address of the transmit message descriptor.
 * @param sem Address of a semaphore, or NULL if none is needed.
 */
void k_mbox_async_put(struct k_mbox *mbox, struct k_mbox_msg *tx_msg,
        struct k_sem *sem);

/**
 * @brief Receive a mailbox message.
 *
 * This routine receives a message from @a mbox, then optionally retrieves
 * its data and disposes of the message.
 *
 * @param mbox Address of the mailbox.
 * @param rx_msg Address of the receive message descriptor.
 * @param buffer Address of the buffer to receive data, or NULL to defer data
 *               retrieval and message disposal until later.
 * @param timeout Waiting period for a message to be received,
 *                or one of the special values K_NO_WAIT and K_FOREVER.
 *
 * @retval 0 Message received.
 * @retval -ENOMSG Returned without waiting.
 * @retval -EAGAIN Waiting period timed out.
 */
int k_mbox_get(struct k_mbox *mbox, struct k_mbox_msg *rx_msg,
        void *buffer, k_timeout_t timeout);

/**
 * @brief Retrieve mailbox message data into a buffer.
 *
 * This routine completes the processing of a received message by retrieving
 * its data into a buffer, then disposing of the message.
 *
 * Alternatively, this routine can be used to dispose of a received message
 * without retrieving its data.
 *
 * @param rx_msg Address of the receive message descriptor.
 * @param buffer Address of the buffer to receive data, or NULL to discard
 *               the data.
 */
void k_mbox_data_get(struct k_mbox_msg *rx_msg, void *buffer);

/** @} */

/**
 * @defgroup pipe_apis Pipe APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief initialize a pipe
 *
 * This routine initializes a pipe object, prior to its first use.
 *
 * @param pipe Address of the pipe.
 * @param buffer Address of the pipe's buffer, or NULL if no ring buffer is used.
 * @param buffer_size Size of the pipe's buffer, or zero if no ring buffer is used.
 */
static inline void k_pipe_init(struct k_pipe *pipe, uint8_t *buffer, size_t buffer_size);
# 5207 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
enum pipe_flags {
 PIPE_FLAG_OPEN = (1UL << (0)),
 PIPE_FLAG_RESET = (1UL << (1)),
};

struct k_pipe {
 size_t waiting;
 struct ring_buf buf;
 struct k_spinlock lock;
 _wait_q_t data;
 _wait_q_t space;
 uint8_t flags;

 sys_dlist_t poll_events;




};

/**
 * @cond INTERNAL_HIDDEN
 */
# 5239 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief Statically define and initialize a pipe.
 *
 * The pipe can be accessed outside the module where it is defined using:
 *
 * @code extern struct k_pipe <name>; @endcode
 *
 * @param name Name of the pipe.
 * @param pipe_buffer_size Size of the pipe's ring buffer (in bytes)
 *                         or zero if no ring buffer is used.
 * @param pipe_align Alignment of the pipe's ring buffer (power of 2).
 *
 */







/**
 * @brief Write data to a pipe
 *
 * This routine writes up to @a len bytes of data to @a pipe.
 * If the pipe is full, the routine will block until the data can be written or the timeout expires.
 *
 * @param pipe Address of the pipe.
 * @param data Address of data to write.
 * @param len Size of data (in bytes).
 * @param timeout Waiting period to wait for the data to be written.
 *
 * @retval number of bytes written on success
 * @retval -EAGAIN if no data could be written before the timeout expired
 * @retval -ECANCELED if the write was interrupted by k_pipe_reset(..)
 * @retval -EPIPE if the pipe was closed
 */
static inline int k_pipe_write(struct k_pipe *pipe, const uint8_t *data, size_t len,
      k_timeout_t timeout);

/**
 * @brief Read data from a pipe
 * This routine reads up to @a len bytes of data from @a pipe.
 * If the pipe is empty, the routine will block until the data can be read or the timeout expires.
 *
 * @param pipe Address of the pipe.
 * @param data Address to place the data read from pipe.
 * @param len Requested number of bytes to read.
 * @param timeout Waiting period to wait for the data to be read.
 *
 * @retval number of bytes read on success
 * @retval -EAGAIN if no data could be read before the timeout expired
 * @retval -ECANCELED if the read was interrupted by k_pipe_reset(..)
 * @retval -EPIPE if the pipe was closed
 */
static inline int k_pipe_read(struct k_pipe *pipe, uint8_t *data, size_t len,
     k_timeout_t timeout);

/**
 * @brief Reset a pipe
 * This routine resets the pipe, discarding any unread data and unblocking any threads waiting to
 * write or read, causing the waiting threads to return with -ECANCELED. Calling k_pipe_read(..) or
 * k_pipe_write(..) when the pipe is resetting but not yet reset will return -ECANCELED.
 * The pipe is left open after a reset and can be used as normal.
 *
 * @param pipe Address of the pipe.
 */
static inline void k_pipe_reset(struct k_pipe *pipe);

/**
 * @brief Close a pipe
 *
 * This routine closes a pipe. Any threads that were blocked on the pipe
 * will be unblocked and receive an error code.
 *
 * @param pipe Address of the pipe.
 */
static inline void k_pipe_close(struct k_pipe *pipe);

/** @} */

/**
 * @cond INTERNAL_HIDDEN
 */
struct k_mem_slab_info {
 uint32_t num_blocks;
 size_t block_size;
 uint32_t num_used;



};

struct k_mem_slab {
 _wait_q_t wait_q;
 struct k_spinlock lock;
 char *buffer;
 char *free_list;
 struct k_mem_slab_info info;






};
# 5360 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @defgroup mem_slab_apis Memory Slab APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Statically define and initialize a memory slab in a public (non-static) scope.
 *
 * The memory slab's buffer contains @a slab_num_blocks memory blocks
 * that are @a slab_block_size bytes long. The buffer is aligned to a
 * @a slab_align -byte boundary. To ensure that each memory block is similarly
 * aligned to this boundary, @a slab_block_size must also be a multiple of
 * @a slab_align.
 *
 * The memory slab can be accessed outside the module where it is defined
 * using:
 *
 * @code extern struct k_mem_slab <name>; @endcode
 *
 * @note This macro cannot be used together with a static keyword.
 *       If such a use-case is desired, use @ref K_MEM_SLAB_DEFINE_STATIC
 *       instead.
 *
 * @param name Name of the memory slab.
 * @param slab_block_size Size of each memory block (in bytes).
 * @param slab_num_blocks Number memory blocks.
 * @param slab_align Alignment of the memory slab's buffer (power of 2).
 */
# 5401 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Statically define and initialize a memory slab in a private (static) scope.
 *
 * The memory slab's buffer contains @a slab_num_blocks memory blocks
 * that are @a slab_block_size bytes long. The buffer is aligned to a
 * @a slab_align -byte boundary. To ensure that each memory block is similarly
 * aligned to this boundary, @a slab_block_size must also be a multiple of
 * @a slab_align.
 *
 * @param name Name of the memory slab.
 * @param slab_block_size Size of each memory block (in bytes).
 * @param slab_num_blocks Number memory blocks.
 * @param slab_align Alignment of the memory slab's buffer (power of 2).
 */
# 5423 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Initialize a memory slab.
 *
 * Initializes a memory slab, prior to its first use.
 *
 * The memory slab's buffer contains @a slab_num_blocks memory blocks
 * that are @a slab_block_size bytes long. The buffer must be aligned to an
 * N-byte boundary matching a word boundary, where N is a power of 2
 * (i.e. 4 on 32-bit systems, 8, 16, ...).
 * To ensure that each memory block is similarly aligned to this boundary,
 * @a slab_block_size must also be a multiple of N.
 *
 * @param slab Address of the memory slab.
 * @param buffer Pointer to buffer used for the memory blocks.
 * @param block_size Size of each memory block (in bytes).
 * @param num_blocks Number of memory blocks.
 *
 * @retval 0 on success
 * @retval -EINVAL invalid data supplied
 *
 */
int k_mem_slab_init(struct k_mem_slab *slab, void *buffer,
      size_t block_size, uint32_t num_blocks);

/**
 * @brief Allocate memory from a memory slab.
 *
 * This routine allocates a memory block from a memory slab.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 * @note When CONFIG_MULTITHREADING=n any @a timeout is treated as K_NO_WAIT.
 *
 * @funcprops \isr_ok
 *
 * @param slab Address of the memory slab.
 * @param mem Pointer to block address area.
 * @param timeout Waiting period to wait for operation to complete.
 *        Use K_NO_WAIT to return without waiting,
 *        or K_FOREVER to wait as long as necessary.
 *
 * @retval 0 Memory allocated. The block address area pointed at by @a mem
 *         is set to the starting address of the memory block.
 * @retval -ENOMEM Returned without waiting.
 * @retval -EAGAIN Waiting period timed out.
 * @retval -EINVAL Invalid data supplied
 */
int k_mem_slab_alloc(struct k_mem_slab *slab, void **mem,
       k_timeout_t timeout);

/**
 * @brief Free memory allocated from a memory slab.
 *
 * This routine releases a previously allocated memory block back to its
 * associated memory slab.
 *
 * @param slab Address of the memory slab.
 * @param mem Pointer to the memory block (as returned by k_mem_slab_alloc()).
 */
void k_mem_slab_free(struct k_mem_slab *slab, void *mem);

/**
 * @brief Get the number of used blocks in a memory slab.
 *
 * This routine gets the number of memory blocks that are currently
 * allocated in @a slab.
 *
 * @param slab Address of the memory slab.
 *
 * @return Number of allocated memory blocks.
 */
static inline uint32_t k_mem_slab_num_used_get(struct k_mem_slab *slab)
{
 return slab->info.num_used;
}

/**
 * @brief Get the number of maximum used blocks so far in a memory slab.
 *
 * This routine gets the maximum number of memory blocks that were
 * allocated in @a slab.
 *
 * @param slab Address of the memory slab.
 *
 * @return Maximum number of allocated memory blocks.
 */
static inline uint32_t k_mem_slab_max_used_get(struct k_mem_slab *slab)
{



 (void)(slab);
 return 0;

}

/**
 * @brief Get the number of unused blocks in a memory slab.
 *
 * This routine gets the number of memory blocks that are currently
 * unallocated in @a slab.
 *
 * @param slab Address of the memory slab.
 *
 * @return Number of unallocated memory blocks.
 */
static inline uint32_t k_mem_slab_num_free_get(struct k_mem_slab *slab)
{
 return slab->info.num_blocks - slab->info.num_used;
}

/**
 * @brief Get the memory stats for a memory slab
 *
 * This routine gets the runtime memory usage stats for the slab @a slab.
 *
 * @param slab Address of the memory slab
 * @param stats Pointer to memory into which to copy memory usage statistics
 *
 * @retval 0 Success
 * @retval -EINVAL Any parameter points to NULL
 */

int k_mem_slab_runtime_stats_get(struct k_mem_slab *slab, struct sys_memory_stats *stats);

/**
 * @brief Reset the maximum memory usage for a slab
 *
 * This routine resets the maximum memory usage for the slab @a slab to its
 * current usage.
 *
 * @param slab Address of the memory slab
 *
 * @retval 0 Success
 * @retval -EINVAL Memory slab is NULL
 */
int k_mem_slab_runtime_stats_reset_max(struct k_mem_slab *slab);

/** @} */

/**
 * @addtogroup heap_apis
 * @{
 */

/* kernel synchronized heap struct */

struct k_heap {
 struct sys_heap heap;
 _wait_q_t wait_q;
 struct k_spinlock lock;
};

/**
 * @brief Initialize a k_heap
 *
 * This constructs a synchronized k_heap object over a memory region
 * specified by the user.  Note that while any alignment and size can
 * be passed as valid parameters, internal alignment restrictions
 * inside the inner sys_heap mean that not all bytes may be usable as
 * allocated memory.
 *
 * @param h Heap struct to initialize
 * @param mem Pointer to memory.
 * @param bytes Size of memory region, in bytes
 */
void k_heap_init(struct k_heap *h, void *mem,
  size_t bytes) __attribute__((nonnull(1)));

/**
 * @brief Allocate aligned memory from a k_heap
 *
 * Behaves in all ways like k_heap_alloc(), except that the returned
 * memory (if available) will have a starting address in memory which
 * is a multiple of the specified power-of-two alignment value in
 * bytes.  The resulting memory can be returned to the heap using
 * k_heap_free().
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 * @note When CONFIG_MULTITHREADING=n any @a timeout is treated as K_NO_WAIT.
 *
 * @funcprops \isr_ok
 *
 * @param h Heap from which to allocate
 * @param align Alignment in bytes, must be a power of two
 * @param bytes Number of bytes requested
 * @param timeout How long to wait, or K_NO_WAIT
 * @return Pointer to memory the caller can now use
 */
void *k_heap_aligned_alloc(struct k_heap *h, size_t align, size_t bytes,
   k_timeout_t timeout) __attribute__((nonnull(1)));

/**
 * @brief Allocate memory from a k_heap
 *
 * Allocates and returns a memory buffer from the memory region owned
 * by the heap.  If no memory is available immediately, the call will
 * block for the specified timeout (constructed via the standard
 * timeout API, or K_NO_WAIT or K_FOREVER) waiting for memory to be
 * freed.  If the allocation cannot be performed by the expiration of
 * the timeout, NULL will be returned.
 * Allocated memory is aligned on a multiple of pointer sizes.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 * @note When CONFIG_MULTITHREADING=n any @a timeout is treated as K_NO_WAIT.
 *
 * @funcprops \isr_ok
 *
 * @param h Heap from which to allocate
 * @param bytes Desired size of block to allocate
 * @param timeout How long to wait, or K_NO_WAIT
 * @return A pointer to valid heap memory, or NULL
 */
void *k_heap_alloc(struct k_heap *h, size_t bytes,
  k_timeout_t timeout) __attribute__((nonnull(1)));

/**
 * @brief Allocate and initialize memory for an array of objects from a k_heap
 *
 * Allocates memory for an array of num objects of size and initializes all
 * bytes in the allocated storage to zero.  If no memory is available
 * immediately, the call will block for the specified timeout (constructed
 * via the standard timeout API, or K_NO_WAIT or K_FOREVER) waiting for memory
 * to be freed.  If the allocation cannot be performed by the expiration of
 * the timeout, NULL will be returned.
 * Allocated memory is aligned on a multiple of pointer sizes.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 * @note When CONFIG_MULTITHREADING=n any @a timeout is treated as K_NO_WAIT.
 *
 * @funcprops \isr_ok
 *
 * @param h Heap from which to allocate
 * @param num Number of objects to allocate
 * @param size Desired size of each object to allocate
 * @param timeout How long to wait, or K_NO_WAIT
 * @return A pointer to valid heap memory, or NULL
 */
void *k_heap_calloc(struct k_heap *h, size_t num, size_t size, k_timeout_t timeout)
 __attribute__((nonnull(1)));

/**
 * @brief Reallocate memory from a k_heap
 *
 * Reallocates and returns a memory buffer from the memory region owned
 * by the heap.  If no memory is available immediately, the call will
 * block for the specified timeout (constructed via the standard
 * timeout API, or K_NO_WAIT or K_FOREVER) waiting for memory to be
 * freed.  If the allocation cannot be performed by the expiration of
 * the timeout, NULL will be returned.
 * Reallocated memory is aligned on a multiple of pointer sizes.
 *
 * @note @a timeout must be set to K_NO_WAIT if called from ISR.
 * @note When CONFIG_MULTITHREADING=n any @a timeout is treated as K_NO_WAIT.
 *
 * @funcprops \isr_ok
 *
 * @param h Heap from which to allocate
 * @param ptr Original pointer returned from a previous allocation
 * @param bytes Desired size of block to allocate
 * @param timeout How long to wait, or K_NO_WAIT
 *
 * @return Pointer to memory the caller can now use, or NULL
 */
void *k_heap_realloc(struct k_heap *h, void *ptr, size_t bytes, k_timeout_t timeout)
 __attribute__((nonnull(1)));

/**
 * @brief Free memory allocated by k_heap_alloc()
 *
 * Returns the specified memory block, which must have been returned
 * from k_heap_alloc(), to the heap for use by other callers.  Passing
 * a NULL block is legal, and has no effect.
 *
 * @param h Heap to which to return the memory
 * @param mem A valid memory block, or NULL
 */
void k_heap_free(struct k_heap *h, void *mem) __attribute__((nonnull(1)));

/* Hand-calculated minimum heap sizes needed to return a successful
 * 1-byte allocation.  See details in lib/os/heap.[ch]
 */


/**
 * @brief Define a static k_heap in the specified linker section
 *
 * This macro defines and initializes a static memory region and
 * k_heap of the requested size in the specified linker section.
 * After kernel start, &name can be used as if k_heap_init() had
 * been called.
 *
 * Note that this macro enforces a minimum size on the memory region
 * to accommodate metadata requirements.  Very small heaps will be
 * padded to fit.
 *
 * @param name Symbol name for the struct k_heap object
 * @param bytes Size of memory region, in bytes
 * @param in_section __attribute__((section(name))
 */
# 5733 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Define a static k_heap
 *
 * This macro defines and initializes a static memory region and
 * k_heap of the requested size.  After kernel start, &name can be
 * used as if k_heap_init() had been called.
 *
 * Note that this macro enforces a minimum size on the memory region
 * to accommodate metadata requirements.  Very small heaps will be
 * padded to fit.
 *
 * @param name Symbol name for the struct k_heap object
 * @param bytes Size of memory region, in bytes
 */




/**
 * @brief Define a static k_heap in uncached memory
 *
 * This macro defines and initializes a static memory region and
 * k_heap of the requested size in uncached memory.  After kernel
 * start, &name can be used as if k_heap_init() had been called.
 *
 * Note that this macro enforces a minimum size on the memory region
 * to accommodate metadata requirements.  Very small heaps will be
 * padded to fit.
 *
 * @param name Symbol name for the struct k_heap object
 * @param bytes Size of memory region, in bytes
 */



/**
 * @}
 */

/**
 * @defgroup heap_apis Heap APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Allocate memory from the heap with a specified alignment.
 *
 * This routine provides semantics similar to aligned_alloc(); memory is
 * allocated from the heap with a specified alignment. However, one minor
 * difference is that k_aligned_alloc() accepts any non-zero @p size,
 * whereas aligned_alloc() only accepts a @p size that is an integral
 * multiple of @p align.
 *
 * Above, aligned_alloc() refers to:
 * C11 standard (ISO/IEC 9899:2011): 7.22.3.1
 * The aligned_alloc function (p: 347-348)
 *
 * @param align Alignment of memory requested (in bytes).
 * @param size Amount of memory requested (in bytes).
 *
 * @return Address of the allocated memory if successful; otherwise NULL.
 */
void *k_aligned_alloc(size_t align, size_t size);

/**
 * @brief Allocate memory from the heap.
 *
 * This routine provides traditional malloc() semantics. Memory is
 * allocated from the heap memory pool.
 * Allocated memory is aligned on a multiple of pointer sizes.
 *
 * @param size Amount of memory requested (in bytes).
 *
 * @return Address of the allocated memory if successful; otherwise NULL.
 */
void *k_malloc(size_t size);

/**
 * @brief Free memory allocated from heap.
 *
 * This routine provides traditional free() semantics. The memory being
 * returned must have been allocated from the heap memory pool.
 *
 * If @a ptr is NULL, no operation is performed.
 *
 * @param ptr Pointer to previously allocated memory.
 */
void k_free(void *ptr);

/**
 * @brief Allocate memory from heap, array style
 *
 * This routine provides traditional calloc() semantics. Memory is
 * allocated from the heap memory pool and zeroed.
 *
 * @param nmemb Number of elements in the requested array
 * @param size Size of each array element (in bytes).
 *
 * @return Address of the allocated memory if successful; otherwise NULL.
 */
void *k_calloc(size_t nmemb, size_t size);

/** @brief Expand the size of an existing allocation
 *
 * Returns a pointer to a new memory region with the same contents,
 * but a different allocated size.  If the new allocation can be
 * expanded in place, the pointer returned will be identical.
 * Otherwise the data will be copies to a new block and the old one
 * will be freed as per sys_heap_free().  If the specified size is
 * smaller than the original, the block will be truncated in place and
 * the remaining memory returned to the heap.  If the allocation of a
 * new block fails, then NULL will be returned and the old block will
 * not be freed or modified.
 *
 * @param ptr Original pointer returned from a previous allocation
 * @param size Amount of memory requested (in bytes).
 *
 * @return Pointer to memory the caller can now use, or NULL.
 */
void *k_realloc(void *ptr, size_t size);

/** @} */

/* polling API - PRIVATE */







/* private - types bit positions */
enum _poll_types_bits {
 /* can be used to ignore an event */
 _POLL_TYPE_IGNORE,

 /* to be signaled by k_poll_signal_raise() */
 _POLL_TYPE_SIGNAL,

 /* semaphore availability */
 _POLL_TYPE_SEM_AVAILABLE,

 /* queue/FIFO/LIFO data availability */
 _POLL_TYPE_DATA_AVAILABLE,

 /* msgq data availability */
 _POLL_TYPE_MSGQ_DATA_AVAILABLE,

 /* pipe data availability */
 _POLL_TYPE_PIPE_DATA_AVAILABLE,

 _POLL_NUM_TYPES
};



/* private - states bit positions */
enum _poll_states_bits {
 /* default state when creating event */
 _POLL_STATE_NOT_READY,

 /* signaled by k_poll_signal_raise() */
 _POLL_STATE_SIGNALED,

 /* semaphore is available */
 _POLL_STATE_SEM_AVAILABLE,

 /* data is available to read on queue/FIFO/LIFO */
 _POLL_STATE_DATA_AVAILABLE,

 /* queue/FIFO/LIFO wait was cancelled */
 _POLL_STATE_CANCELLED,

 /* data is available to read on a message queue */
 _POLL_STATE_MSGQ_DATA_AVAILABLE,

 /* data is available to read from a pipe */
 _POLL_STATE_PIPE_DATA_AVAILABLE,

 _POLL_NUM_STATES
};
# 5926 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/* end of polling API - PRIVATE */


/**
 * @defgroup poll_apis Async polling APIs
 * @ingroup kernel_apis
 * @{
 */

/* Public polling API */

/* public - values for k_poll_event.type bitfield */
# 5946 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/* public - polling modes */
enum k_poll_modes {
 /* polling thread does not take ownership of objects when available */
 K_POLL_MODE_NOTIFY_ONLY = 0,

 K_POLL_NUM_MODES
};

/* public - values for k_poll_event.state bitfield */
# 5964 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/* public - poll signal object */
struct k_poll_signal {
 /** PRIVATE - DO NOT TOUCH */
 sys_dlist_t poll_events;

 /**
	 * 1 if the event has been signaled, 0 otherwise. Stays set to 1 until
	 * user resets it to 0.
	 */
 unsigned int signaled;

 /** custom result value passed to k_poll_signal_raise() if needed */
 int result;
};







/**
 * @brief Poll Event
 *
 */
struct k_poll_event {
 /** PRIVATE - DO NOT TOUCH */
 sys_dnode_t _node;

 /** PRIVATE - DO NOT TOUCH */
 struct z_poller *poller;

 /** optional user-specified tag, opaque, untouched by the API */
 uint32_t tag:8;

 /** bitfield of event types (bitwise-ORed K_POLL_TYPE_xxx values) */
 uint32_t type:_POLL_NUM_TYPES;

 /** bitfield of event states (bitwise-ORed K_POLL_STATE_xxx values) */
 uint32_t state:_POLL_NUM_STATES;

 /** mode of operation, from enum k_poll_modes */
 uint32_t mode:1;

 /** unused bits in 32-bit word */
 uint32_t unused:(32 - (0 + 8 + _POLL_NUM_TYPES + _POLL_NUM_STATES + 1 ));

 /** per-type data */
 union {
  /* The typed_* fields below are used by K_POLL_EVENT_*INITIALIZER() macros to ensure
		 * type safety of polled objects.
		 */
  void *obj, *typed_K_POLL_TYPE_IGNORE;
  struct k_poll_signal *signal, *typed_K_POLL_TYPE_SIGNAL;
  struct k_sem *sem, *typed_K_POLL_TYPE_SEM_AVAILABLE;
  struct k_fifo *fifo, *typed_K_POLL_TYPE_FIFO_DATA_AVAILABLE;
  struct k_queue *queue, *typed_K_POLL_TYPE_DATA_AVAILABLE;
  struct k_msgq *msgq, *typed_K_POLL_TYPE_MSGQ_DATA_AVAILABLE;
  struct k_pipe *pipe, *typed_K_POLL_TYPE_PIPE_DATA_AVAILABLE;
 };
};
# 6051 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * @brief Initialize one struct k_poll_event instance
 *
 * After this routine is called on a poll event, the event it ready to be
 * placed in an event array to be passed to k_poll().
 *
 * @param event The event to initialize.
 * @param type A bitfield of the types of event, from the K_POLL_TYPE_xxx
 *             values. Only values that apply to the same object being polled
 *             can be used together. Choosing K_POLL_TYPE_IGNORE disables the
 *             event.
 * @param mode Future. Use K_POLL_MODE_NOTIFY_ONLY.
 * @param obj Kernel object or poll signal.
 */

void k_poll_event_init(struct k_poll_event *event, uint32_t type,
         int mode, void *obj);

/**
 * @brief Wait for one or many of multiple poll events to occur
 *
 * This routine allows a thread to wait concurrently for one or many of
 * multiple poll events to have occurred. Such events can be a kernel object
 * being available, like a semaphore, or a poll signal event.
 *
 * When an event notifies that a kernel object is available, the kernel object
 * is not "given" to the thread calling k_poll(): it merely signals the fact
 * that the object was available when the k_poll() call was in effect. Also,
 * all threads trying to acquire an object the regular way, i.e. by pending on
 * the object, have precedence over the thread polling on the object. This
 * means that the polling thread will never get the poll event on an object
 * until the object becomes available and its pend queue is empty. For this
 * reason, the k_poll() call is more effective when the objects being polled
 * only have one thread, the polling thread, trying to acquire them.
 *
 * When k_poll() returns 0, the caller should loop on all the events that were
 * passed to k_poll() and check the state field for the values that were
 * expected and take the associated actions.
 *
 * Before being reused for another call to k_poll(), the user has to reset the
 * state field to K_POLL_STATE_NOT_READY.
 *
 * When called from user mode, a temporary memory allocation is required from
 * the caller's resource pool.
 *
 * @param events An array of events to be polled for.
 * @param num_events The number of events in the array.
 * @param timeout Waiting period for an event to be ready,
 *                or one of the special values K_NO_WAIT and K_FOREVER.
 *
 * @retval 0 One or more events are ready.
 * @retval -EAGAIN Waiting period timed out.
 * @retval -EINTR Polling has been interrupted, e.g. with
 *         k_queue_cancel_wait(). All output events are still set and valid,
 *         cancelled event(s) will be set to K_POLL_STATE_CANCELLED. In other
 *         words, -EINTR status means that at least one of output events is
 *         K_POLL_STATE_CANCELLED.
 * @retval -ENOMEM Thread resource pool insufficient memory (user mode only)
 * @retval -EINVAL Bad parameters (user mode only)
 */

static inline int k_poll(struct k_poll_event *events, int num_events,
       k_timeout_t timeout);

/**
 * @brief Initialize a poll signal object.
 *
 * Ready a poll signal object to be signaled via k_poll_signal_raise().
 *
 * @param sig A poll signal.
 */

static inline void k_poll_signal_init(struct k_poll_signal *sig);

/**
 * @brief Reset a poll signal object's state to unsignaled.
 *
 * @param sig A poll signal object
 */
static inline void k_poll_signal_reset(struct k_poll_signal *sig);

/**
 * @brief Fetch the signaled state and result value of a poll signal
 *
 * @param sig A poll signal object
 * @param signaled An integer buffer which will be written nonzero if the
 *		   object was signaled
 * @param result An integer destination buffer which will be written with the
 *		   result value if the object was signaled, or an undefined
 *		   value if it was not.
 */
static inline void k_poll_signal_check(struct k_poll_signal *sig,
       unsigned int *signaled, int *result);

/**
 * @brief Signal a poll signal object.
 *
 * This routine makes ready a poll signal, which is basically a poll event of
 * type K_POLL_TYPE_SIGNAL. If a thread was polling on that event, it will be
 * made ready to run. A @a result value can be specified.
 *
 * The poll signal contains a 'signaled' field that, when set by
 * k_poll_signal_raise(), stays set until the user sets it back to 0 with
 * k_poll_signal_reset(). It thus has to be reset by the user before being
 * passed again to k_poll() or k_poll() will consider it being signaled, and
 * will return immediately.
 *
 * @note The result is stored and the 'signaled' field is set even if
 * this function returns an error indicating that an expiring poll was
 * not notified.  The next k_poll() will detect the missed raise.
 *
 * @param sig A poll signal.
 * @param result The value to store in the result field of the signal.
 *
 * @retval 0 The signal was delivered successfully.
 * @retval -EAGAIN The polling thread's timeout is in the process of expiring.
 */

static inline int k_poll_signal_raise(struct k_poll_signal *sig, int result);

/** @} */

/**
 * @defgroup cpu_idle_apis CPU Idling APIs
 * @ingroup kernel_apis
 * @{
 */
/**
 * @brief Make the CPU idle.
 *
 * This function makes the CPU idle until an event wakes it up.
 *
 * In a regular system, the idle thread should be the only thread responsible
 * for making the CPU idle and triggering any type of power management.
 * However, in some more constrained systems, such as a single-threaded system,
 * the only thread would be responsible for this if needed.
 *
 * @note In some architectures, before returning, the function unmasks interrupts
 * unconditionally.
 */
static inline void k_cpu_idle(void)
{
 arch_cpu_idle();
}

/**
 * @brief Make the CPU idle in an atomic fashion.
 *
 * Similar to k_cpu_idle(), but must be called with interrupts locked.
 *
 * Enabling interrupts and entering a low-power mode will be atomic,
 * i.e. there will be no period of time where interrupts are enabled before
 * the processor enters a low-power mode.
 *
 * After waking up from the low-power mode, the interrupt lockout state will
 * be restored as if by irq_unlock(key).
 *
 * @param key Interrupt locking key obtained from irq_lock().
 */
static inline void k_cpu_atomic_idle(unsigned int key)
{
 arch_cpu_atomic_idle(key);
}

/**
 * @}
 */

/**
 * @cond INTERNAL_HIDDEN
 * @internal
 */

/* This architecture has direct support for triggering a CPU exception */
# 6247 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief Fatally terminate a thread
 *
 * This should be called when a thread has encountered an unrecoverable
 * runtime condition and needs to terminate. What this ultimately
 * means is determined by the _fatal_error_handler() implementation, which
 * will be called will reason code K_ERR_KERNEL_OOPS.
 *
 * If this is called from ISR context, the default system fatal error handler
 * will treat it as an unrecoverable system error, just like k_panic().
 */


/**
 * @brief Fatally terminate the system
 *
 * This should be called when the Zephyr kernel has encountered an
 * unrecoverable runtime condition and needs to terminate. What this ultimately
 * means is determined by the _fatal_error_handler() implementation, which
 * will be called will reason code K_ERR_KERNEL_PANIC.
 */


/**
 * @cond INTERNAL_HIDDEN
 */

/*
 * private APIs that are utilized by one or more public APIs
 */

/**
 * @internal
 */
void z_timer_expiration_handler(struct _timeout *timeout);
/**
 * INTERNAL_HIDDEN @endcond
 */


/**
 * @brief Emit a character buffer to the console device
 *
 * @param c String of characters to print
 * @param n The length of the string
 *
 */
static inline void k_str_out(char *c, size_t n);


/**
 * @defgroup float_apis Floating Point APIs
 * @ingroup kernel_apis
 * @{
 */

/**
 * @brief Disable preservation of floating point context information.
 *
 * This routine informs the kernel that the specified thread
 * will no longer be using the floating point registers.
 *
 * @warning
 * Some architectures apply restrictions on how the disabling of floating
 * point preservation may be requested, see arch_float_disable.
 *
 * @warning
 * This routine should only be used to disable floating point support for
 * a thread that currently has such support enabled.
 *
 * @param thread ID of thread.
 *
 * @retval 0        On success.
 * @retval -ENOTSUP If the floating point disabling is not implemented.
 *         -EINVAL  If the floating point disabling could not be performed.
 */
static inline int k_float_disable(struct k_thread *thread);

/**
 * @brief Enable preservation of floating point context information.
 *
 * This routine informs the kernel that the specified thread
 * will use the floating point registers.

 * Invoking this routine initializes the thread's floating point context info
 * to that of an FPU that has been reset. The next time the thread is scheduled
 * by z_swap() it will either inherit an FPU that is guaranteed to be in a
 * "sane" state (if the most recent user of the FPU was cooperatively swapped
 * out) or the thread's own floating point context will be loaded (if the most
 * recent user of the FPU was preempted, or if this thread is the first user
 * of the FPU). Thereafter, the kernel will protect the thread's FP context
 * so that it is not altered during a preemptive context switch.
 *
 * The @a options parameter indicates which floating point register sets will
 * be used by the specified thread.
 *
 * For x86 options:
 *
 * - K_FP_REGS  indicates x87 FPU and MMX registers only
 * - K_SSE_REGS indicates SSE registers (and also x87 FPU and MMX registers)
 *
 * @warning
 * Some architectures apply restrictions on how the enabling of floating
 * point preservation may be requested, see arch_float_enable.
 *
 * @warning
 * This routine should only be used to enable floating point support for
 * a thread that currently has such support enabled.
 *
 * @param thread  ID of thread.
 * @param options architecture dependent options
 *
 * @retval 0        On success.
 * @retval -ENOTSUP If the floating point enabling is not implemented.
 *         -EINVAL  If the floating point enabling could not be performed.
 */
static inline int k_float_enable(struct k_thread *thread, unsigned int options);

/**
 * @}
 */

/**
 * @brief Get the runtime statistics of a thread
 *
 * @param thread ID of thread.
 * @param stats Pointer to struct to copy statistics into.
 * @return -EINVAL if null pointers, otherwise 0
 */
int k_thread_runtime_stats_get(k_tid_t thread,
          k_thread_runtime_stats_t *stats);

/**
 * @brief Get the runtime statistics of all threads
 *
 * @param stats Pointer to struct to copy statistics into.
 * @return -EINVAL if null pointers, otherwise 0
 */
int k_thread_runtime_stats_all_get(k_thread_runtime_stats_t *stats);

/**
 * @brief Get the runtime statistics of all threads on specified cpu
 *
 * @param cpu The cpu number
 * @param stats Pointer to struct to copy statistics into.
 * @return -EINVAL if null pointers, otherwise 0
 */
int k_thread_runtime_stats_cpu_get(int cpu, k_thread_runtime_stats_t *stats);

/**
 * @brief Enable gathering of runtime statistics for specified thread
 *
 * This routine enables the gathering of runtime statistics for the specified
 * thread.
 *
 * @param thread ID of thread
 * @return -EINVAL if invalid thread ID, otherwise 0
 */
int k_thread_runtime_stats_enable(k_tid_t thread);

/**
 * @brief Disable gathering of runtime statistics for specified thread
 *
 * This routine disables the gathering of runtime statistics for the specified
 * thread.
 *
 * @param thread ID of thread
 * @return -EINVAL if invalid thread ID, otherwise 0
 */
int k_thread_runtime_stats_disable(k_tid_t thread);

/**
 * @brief Enable gathering of system runtime statistics
 *
 * This routine enables the gathering of system runtime statistics. Note that
 * it does not affect the gathering of similar statistics for individual
 * threads.
 */
void k_sys_runtime_stats_enable(void);

/**
 * @brief Disable gathering of system runtime statistics
 *
 * This routine disables the gathering of system runtime statistics. Note that
 * it does not affect the gathering of similar statistics for individual
 * threads.
 */
void k_sys_runtime_stats_disable(void);


}


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing.h" 1
/*
 * Copyright (c) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracking.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracking.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel_structs.h" 1
/*
 * Copyright (c) 2016 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/*
 * The purpose of this file is to provide essential/minimal kernel structure
 * definitions, so that they can be used without including kernel.h.
 *
 * The following rules must be observed:
 *  1. kernel_structs.h shall not depend on kernel.h both directly and
 *    indirectly (i.e. it shall not include any header files that include
 *    kernel.h in their dependency chain).
 *  2. kernel.h shall imply kernel_structs.h, such that it shall not be
 *    necessary to include kernel_structs.h explicitly when kernel.h is
 *    included.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracking.h" 2
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing.h" 2
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing.h"
/**
 * @brief Tracing
 *
 * The tracing subsystem provides hooks that permits you to collect data from
 * your application and allows tools running on a host to visualize the
 * inner-working of the kernel and various other subsystems.
 *
 * @defgroup subsys_tracing Tracing
 * @ingroup os_services
 * @{
 */

/**
 * @brief Tracing APIs
 * @defgroup subsys_tracing_apis Tracing APIs
 * @{
 */

/**
 * @brief Thread Tracing APIs
 * @defgroup subsys_tracing_apis_thread Thread Tracing APIs
 * @{
 */

/**
 * @brief Called when entering a k_thread_foreach call
 */


/**
 * @brief Called when exiting a k_thread_foreach call
 */


/**
 * @brief Called when entering a k_thread_foreach_unlocked
 */


/**
 * @brief Called when exiting a k_thread_foreach_unlocked
 */


/**
 * @brief Trace creating a Thread
 * @param new_thread Thread object
 */


/**
 * @brief Trace Thread entering user mode
 */


/**
 * @brief Called when entering a k_thread_join
 * @param thread Thread object
 * @param timeout Timeout period
 */


/**
 * @brief Called when k_thread_join blocks
 * @param thread Thread object
 * @param timeout Timeout period
 */


/**
 * @brief Called when exiting k_thread_join
 * @param thread Thread object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Called when entering k_thread_sleep
 * @param timeout Timeout period
 */


/**
 * @brief Called when exiting k_thread_sleep
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Called when entering k_thread_msleep
 * @param ms Duration in milliseconds
 */


/**
 * @brief Called when exiting k_thread_msleep
 * @param ms Duration in milliseconds
 * @param ret Return value
 */


/**
 * @brief Called when entering k_thread_usleep
 * @param us Duration in microseconds
 */


/**
 * @brief Called when exiting k_thread_usleep
 * @param us Duration in microseconds
 * @param ret Return value
 */


/**
 * @brief Called when entering k_thread_busy_wait
 * @param usec_to_wait Duration in microseconds
 */


/**
 * @brief Called when exiting k_thread_busy_wait
 * @param usec_to_wait Duration in microseconds
 */


/**
 * @brief Called when a thread yields
 */


/**
 * @brief Called when a thread wakes up
 * @param thread Thread object
 */


/**
 * @brief Called when a thread is started
 * @param thread Thread object
 */


/**
 * @brief Called when a thread is being aborted
 * @param thread Thread object
 */


/**
 * @brief Called when a thread enters the k_thread_abort routine
 * @param thread Thread object
 */


/**
 * @brief Called when a thread exits the k_thread_abort routine
 * @param thread Thread object
 */


/**
 * @brief Called when setting priority of a thread
 * @param thread Thread object
 */


/**
 * @brief Called when a thread enters the k_thread_suspend
 * function.
 * @param thread Thread object
 */


/**
 * @brief Called when a thread exits the k_thread_suspend
 * function.
 * @param thread Thread object
 */


/**
 * @brief Called when a thread enters the resume from suspension
 * function.
 * @param thread Thread object
 */


/**
 * @brief Called when a thread exits the resumed from suspension
 * function.
 * @param thread Thread object
 */


/**
 * @brief Called when the thread scheduler is locked
 */


/**
 * @brief Called when the thread scheduler is unlocked
 */


/**
 * @brief Called when a thread name is set
 * @param thread Thread object
 * @param ret Return value
 */


/**
 * @brief Called before a thread has been selected to run
 */


/**
 * @brief Called after a thread has been selected to run
 */


/**
 * @brief Called when a thread is ready to run
 * @param thread Thread object
 */


/**
 * @brief Called when a thread is pending
 * @param thread Thread object
 */


/**
 * @brief Provide information about specific thread
 * @param thread Thread object
 */


/**
 * @brief Trace implicit thread wakeup invocation by the scheduler
 * @param thread Thread object
 */


/**
 * @brief Trace implicit thread abort invocation by the scheduler
 * @param thread Thread object
 */


/**
 * @brief Trace implicit thread set priority invocation by the scheduler
 * @param thread Thread object
 * @param prio Thread priority
 */


/**
 * @brief Trace implicit thread ready invocation by the scheduler
 * @param thread Thread object
 */


/**
 * @brief Trace implicit thread pend invocation by the scheduler
 * @param thread Thread object
 */


/**
 * @brief Trace implicit thread resume invocation by the scheduler
 * @param thread Thread object
 */


/**
 * @brief Trace implicit thread suspend invocation by the scheduler
 * @param thread Thread object
 */


/** @}c*/ /* end of subsys_tracing_apis_thread */

/**
 * @brief Work Tracing APIs
 * @defgroup subsys_tracing_apis_work Work Tracing APIs
 * @{
 */

/**
 * @brief Trace initialisation of a Work structure
 * @param work Work structure
 */


/**
 * @brief Trace submit work to work queue call entry
 * @param queue Work queue structure
 * @param work Work structure
 */


/**
 * @brief Trace submit work to work queue call exit
 * @param queue Work queue structure
 * @param work Work structure
 * @param ret Return value
 */


/**
 * @brief Trace submit work to system work queue call entry
 * @param work Work structure
 */


/**
 * @brief Trace submit work to system work queue call exit
 * @param work Work structure
 * @param ret Return value
 */


/**
 * @brief Trace flush work call entry
 * @param work Work structure
 */


/**
 * @brief Trace flush work call blocking
 * @param work Work structure
 * @param timeout Timeout period
 */


/**
 * @brief Trace flush work call exit
 * @param work Work structure
 * @param ret Return value
 */


/**
 * @brief Trace cancel work call entry
 * @param work Work structure
 */


/**
 * @brief Trace cancel work call exit
 * @param work Work structure
 * @param ret Return value
 */


/**
 * @brief Trace cancel sync work call entry
 * @param work Work structure
 * @param sync Sync object
 */


/**
 * @brief Trace cancel sync work call blocking
 * @param work Work structure
 * @param sync Sync object
 */


/**
 * @brief Trace cancel sync work call exit
 * @param work Work structure
 * @param sync Sync object
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_work */

/**
 * @brief Work Queue Tracing APIs
 * @defgroup subsys_tracing_apis_work_q Work Queue Tracing APIs
 * @{
 */

/**
 * @brief Trace initialisation of a Work Queue structure
 * @param queue Work Queue structure
 */


/**
 * @brief Trace start of a Work Queue call entry
 * @param queue Work Queue structure
 */


/**
 * @brief Trace start of a Work Queue call exit
 * @param queue Work Queue structure
 */


/**
 * @brief Trace stop of a Work Queue call entry
 * @param queue Work Queue structure
 * @param timeout Timeout period
 */


/**
 * @brief Trace stop of a Work Queue call blocking
 * @param queue Work Queue structure
 * @param timeout Timeout period
 */


/**
 * @brief Trace stop of a Work Queue call exit
 * @param queue Work Queue structure
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Work Queue drain call entry
 * @param queue Work Queue structure
 */


/**
 * @brief Trace Work Queue drain call exit
 * @param queue Work Queue structure
 * @param ret Return value
 */


/**
 * @brief Trace Work Queue unplug call entry
 * @param queue Work Queue structure
 */


/**
 * @brief Trace Work Queue unplug call exit
 * @param queue Work Queue structure
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_work_q */

/**
 * @brief Work Delayable Tracing APIs
 * @defgroup subsys_tracing_apis_work_delayable Work Delayable Tracing APIs
 * @{
 */

/**
 * @brief Trace initialisation of a Delayable Work structure
 * @param dwork Delayable Work structure
 */


/**
 * @brief Trace schedule delayable work for queue enter
 * @param queue Work Queue structure
 * @param dwork Delayable Work structure
 * @param delay Delay period
 */


/**
 * @brief Trace schedule delayable work for queue exit
 * @param queue Work Queue structure
 * @param dwork Delayable Work structure
 * @param delay Delay period
 * @param ret Return value
 */


/**
 * @brief Trace schedule delayable work for system work queue enter
 * @param dwork Delayable Work structure
 * @param delay Delay period
 */


/**
 * @brief Trace schedule delayable work for system work queue exit
 * @param dwork Delayable Work structure
 * @param delay Delay period
 * @param ret Return value
 */


/**
 * @brief Trace reschedule delayable work for queue enter
 * @param queue Work Queue structure
 * @param dwork Delayable Work structure
 * @param delay Delay period
 */


/**
 * @brief Trace reschedule delayable work for queue exit
 * @param queue Work Queue structure
 * @param dwork Delayable Work structure
 * @param delay Delay period
 * @param ret Return value
 */


/**
 * @brief Trace reschedule delayable work for system queue enter
 * @param dwork Delayable Work structure
 * @param delay Delay period
 */


/**
 * @brief Trace reschedule delayable work for system queue exit
 * @param dwork Delayable Work structure
 * @param delay Delay period
 * @param ret Return value
 */


/**
 * @brief Trace delayable work flush enter
 * @param dwork Delayable Work structure
 * @param sync Sync object
 */


/**
 * @brief Trace delayable work flush exit
 * @param dwork Delayable Work structure
 * @param sync Sync object
 * @param ret Return value
 */


/**
 * @brief Trace delayable work cancel enter
 * @param dwork Delayable Work structure
 */


/**
 * @brief Trace delayable work cancel enter
 * @param dwork Delayable Work structure
 * @param ret Return value
 */


/**
 * @brief Trace delayable work cancel sync enter
 * @param dwork Delayable Work structure
 * @param sync Sync object
 */


/**
 * @brief Trace delayable work cancel sync enter
 * @param dwork Delayable Work structure
 * @param sync Sync object
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_work_delayable */

/**
 * @brief Work Poll Tracing APIs
 * @defgroup subsys_tracing_apis_work_poll Work Poll Tracing APIs
 * @{
 */

/**
 * @brief Trace initialisation of a Work Poll structure enter
 * @param work Work structure
 */


/**
 * @brief Trace initialisation of a Work Poll structure exit
 * @param work Work structure
 */


/**
 * @brief Trace work poll submit to queue enter
 * @param work_q Work queue
 * @param work Work structure
 * @param timeout Timeout period
 */


/**
 * @brief Trace work poll submit to queue blocking
 * @param work_q Work queue
 * @param work Work structure
 * @param timeout Timeout period
 */


/**
 * @brief Trace work poll submit to queue exit
 * @param work_q Work queue
 * @param work Work structure
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace work poll submit to system queue enter
 * @param work Work structure
 * @param timeout Timeout period
 */


/**
 * @brief Trace work poll submit to system queue exit
 * @param work Work structure
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace work poll cancel enter
 * @param work Work structure
 */


/**
 * @brief Trace work poll cancel exit
 * @param work Work structure
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_work_poll */

/**
 * @brief Poll Tracing APIs
 * @defgroup subsys_tracing_apis_poll Poll Tracing APIs
 * @{
 */

/**
 * @brief Trace initialisation of a Poll Event
 * @param event Poll Event
 */


/**
 * @brief Trace Polling call start
 * @param events Poll Events
 */


/**
 * @brief Trace Polling call outcome
 * @param events Poll Events
 * @param ret Return value
 */


/**
 * @brief Trace initialisation of a Poll Signal
 * @param signal Poll Signal
 */


/**
 * @brief Trace resetting of Poll Signal
 * @param signal Poll Signal
 */


/**
 * @brief Trace checking of Poll Signal
 * @param signal Poll Signal
 */


/**
 * @brief Trace raising of Poll Signal
 * @param signal Poll Signal
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_poll */

/**
 * @brief Semaphore Tracing APIs
 * @defgroup subsys_tracing_apis_sem Semaphore Tracing APIs
 * @{
 */

/**
 * @brief Trace initialisation of a Semaphore
 * @param sem Semaphore object
 * @param ret Return value
 */


/**
 * @brief Trace giving a Semaphore entry
 * @param sem Semaphore object
 */


/**
 * @brief Trace giving a Semaphore exit
 * @param sem Semaphore object
 */


/**
 * @brief Trace taking a Semaphore attempt start
 * @param sem Semaphore object
 * @param timeout Timeout period
 */


/**
 * @brief Trace taking a Semaphore attempt blocking
 * @param sem Semaphore object
 * @param timeout Timeout period
 */


/**
 * @brief Trace taking a Semaphore attempt outcome
 * @param sem Semaphore object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace resetting a Semaphore
 * @param sem Semaphore object
 */


/** @} */ /* end of subsys_tracing_apis_sem */

/**
 * @brief Mutex Tracing APIs
 * @defgroup subsys_tracing_apis_mutex Mutex Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Mutex
 * @param mutex Mutex object
 * @param ret Return value
 */


/**
 * @brief Trace Mutex lock attempt start
 * @param mutex Mutex object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Mutex lock attempt blocking
 * @param mutex Mutex object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Mutex lock attempt outcome
 * @param mutex Mutex object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Mutex unlock entry
 * @param mutex Mutex object
 */


/**
 * @brief Trace Mutex unlock exit
 */


/** @} */ /* end of subsys_tracing_apis_mutex */

/**
 * @brief Conditional Variable Tracing APIs
 * @defgroup subsys_tracing_apis_condvar Conditional Variable Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Conditional Variable
 * @param condvar Conditional Variable object
 * @param ret Return value
 */


/**
 * @brief Trace Conditional Variable signaling start
 * @param condvar Conditional Variable object
 */


/**
 * @brief Trace Conditional Variable signaling blocking
 * @param condvar Conditional Variable object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Conditional Variable signaling outcome
 * @param condvar Conditional Variable object
 * @param ret Return value
 */


/**
 * @brief Trace Conditional Variable broadcast enter
 * @param condvar Conditional Variable object
 */


/**
 * @brief Trace Conditional Variable broadcast exit
 * @param condvar Conditional Variable object
 * @param ret Return value
 */


/**
 * @brief Trace Conditional Variable wait enter
 * @param condvar Conditional Variable object
 */


/**
 * @brief Trace Conditional Variable wait exit
 * @param condvar Conditional Variable object
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_condvar */

/**
 * @brief Queue Tracing APIs
 * @defgroup subsys_tracing_apis_queue Queue Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Queue
 * @param queue Queue object
 */


/**
 * @brief Trace Queue cancel wait
 * @param queue Queue object
 */


/**
 * @brief Trace Queue insert attempt entry
 * @param queue Queue object
 * @param alloc Allocation flag
 */


/**
 * @brief Trace Queue insert attempt blocking
 * @param queue Queue object
 * @param alloc Allocation flag
 * @param timeout Timeout period
 */


/**
 * @brief Trace Queue insert attempt outcome
 * @param queue Queue object
 * @param alloc Allocation flag
 * @param ret Return value
 */


/**
 * @brief Trace Queue append enter
 * @param queue Queue object
 */


/**
 * @brief Trace Queue append exit
 * @param queue Queue object
 */


/**
 * @brief Trace Queue alloc append enter
 * @param queue Queue object
 */


/**
 * @brief Trace Queue alloc append exit
 * @param queue Queue object
 * @param ret Return value
 */


/**
 * @brief Trace Queue prepend enter
 * @param queue Queue object
 */


/**
 * @brief Trace Queue prepend exit
 * @param queue Queue object
 */


/**
 * @brief Trace Queue alloc prepend enter
 * @param queue Queue object
 */


/**
 * @brief Trace Queue alloc prepend exit
 * @param queue Queue object
 * @param ret Return value
 */


/**
 * @brief Trace Queue insert attempt entry
 * @param queue Queue object
 */


/**
 * @brief Trace Queue insert attempt blocking
 * @param queue Queue object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Queue insert attempt exit
 * @param queue Queue object
 */


/**
 * @brief Trace Queue append list enter
 * @param queue Queue object
 */


/**
 * @brief Trace Queue append list exit
 * @param queue Queue object
 * @param ret Return value
 */


/**
 * @brief Trace Queue merge slist enter
 * @param queue Queue object
 */


/**
 * @brief Trace Queue merge slist exit
 * @param queue Queue object
 * @param ret Return value
 */


/**
 * @brief Trace Queue get attempt enter
 * @param queue Queue object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Queue get attempt blockings
 * @param queue Queue object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Queue get attempt outcome
 * @param queue Queue object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Queue remove enter
 * @param queue Queue object
 */


/**
 * @brief Trace Queue remove exit
 * @param queue Queue object
 * @param ret Return value
 */


/**
 * @brief Trace Queue unique append enter
 * @param queue Queue object
 */


/**
 * @brief Trace Queue unique append exit
 * @param queue Queue object
 *
 * @param ret Return value
 */


/**
 * @brief Trace Queue peek head
 * @param queue Queue object
 * @param ret Return value
 */


/**
 * @brief Trace Queue peek tail
 * @param queue Queue object
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_queue */

/**
 * @brief FIFO Tracing APIs
 * @defgroup subsys_tracing_apis_fifo FIFO Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of FIFO Queue entry
 * @param fifo FIFO object
 */


/**
 * @brief Trace initialization of FIFO Queue exit
 * @param fifo FIFO object
 */


/**
 * @brief Trace FIFO Queue cancel wait entry
 * @param fifo FIFO object
 */


/**
 * @brief Trace FIFO Queue cancel wait exit
 * @param fifo FIFO object
 */


/**
 * @brief Trace FIFO Queue put entry
 * @param fifo FIFO object
 * @param data Data item
 */


/**
 * @brief Trace FIFO Queue put exit
 * @param fifo FIFO object
 * @param data Data item
 */


/**
 * @brief Trace FIFO Queue alloc put entry
 * @param fifo FIFO object
 * @param data Data item
 */


/**
 * @brief Trace FIFO Queue alloc put exit
 * @param fifo FIFO object
 * @param data Data item
 * @param ret Return value
 */


/**
 * @brief Trace FIFO Queue put list entry
 * @param fifo FIFO object
 * @param head First ll-node
 * @param tail Last ll-node
 */


/**
 * @brief Trace FIFO Queue put list exit
 * @param fifo FIFO object
 * @param head First ll-node
 * @param tail Last ll-node
 */


/**
 * @brief Trace FIFO Queue put slist entry
 * @param fifo FIFO object
 * @param list Syslist object
 */


/**
 * @brief Trace FIFO Queue put slist exit
 * @param fifo FIFO object
 * @param list Syslist object
 */


/**
 * @brief Trace FIFO Queue get entry
 * @param fifo FIFO object
 * @param timeout Timeout period
 */


/**
 * @brief Trace FIFO Queue get exit
 * @param fifo FIFO object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace FIFO Queue peek head entry
 * @param fifo FIFO object
 */


/**
 * @brief Trace FIFO Queue peek head exit
 * @param fifo FIFO object
 * @param ret Return value
 */


/**
 * @brief Trace FIFO Queue peek tail entry
 * @param fifo FIFO object
 */


/**
 * @brief Trace FIFO Queue peek tail exit
 * @param fifo FIFO object
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_fifo */

/**
 * @brief LIFO Tracing APIs
 * @defgroup subsys_tracing_apis_lifo LIFO Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of LIFO Queue entry
 * @param lifo LIFO object
 */


/**
 * @brief Trace initialization of LIFO Queue exit
 * @param lifo LIFO object
 */


/**
 * @brief Trace LIFO Queue put entry
 * @param lifo LIFO object
 * @param data Data item
 */


/**
 * @brief Trace LIFO Queue put exit
 * @param lifo LIFO object
 * @param data Data item
 */


/**
 * @brief Trace LIFO Queue alloc put entry
 * @param lifo LIFO object
 * @param data Data item
 */


/**
 * @brief Trace LIFO Queue alloc put exit
 * @param lifo LIFO object
 * @param data Data item
 * @param ret Return value
 */


/**
 * @brief Trace LIFO Queue get entry
 * @param lifo LIFO object
 * @param timeout Timeout period
 */


/**
 * @brief Trace LIFO Queue get exit
 * @param lifo LIFO object
 * @param timeout Timeout period
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_lifo */

/**
 * @brief Stack Tracing APIs
 * @defgroup subsys_tracing_apis_stack Stack Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Stack
 * @param stack Stack object
 */


/**
 * @brief Trace Stack alloc init attempt entry
 * @param stack Stack object
 */


/**
 * @brief Trace Stack alloc init outcome
 * @param stack Stack object
 * @param ret Return value
 */


/**
 * @brief Trace Stack cleanup attempt entry
 * @param stack Stack object
 */


/**
 * @brief Trace Stack cleanup outcome
 * @param stack Stack object
 * @param ret Return value
 */


/**
 * @brief Trace Stack push attempt entry
 * @param stack Stack object
 */


/**
 * @brief Trace Stack push attempt outcome
 * @param stack Stack object
 * @param ret Return value
 */


/**
 * @brief Trace Stack pop attempt entry
 * @param stack Stack object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Stack pop attempt blocking
 * @param stack Stack object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Stack pop attempt outcome
 * @param stack Stack object
 * @param timeout Timeout period
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_stack */

/**
 * @brief Message Queue Tracing APIs
 * @defgroup subsys_tracing_apis_msgq Message Queue Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Message Queue
 * @param msgq Message Queue object
 */


/**
 * @brief Trace Message Queue alloc init attempt entry
 * @param msgq Message Queue object
 */


/**
 * @brief Trace Message Queue alloc init attempt outcome
 * @param msgq Message Queue object
 * @param ret Return value
 */


/**
 * @brief Trace Message Queue cleanup attempt entry
 * @param msgq Message Queue object
 */


/**
 * @brief Trace Message Queue cleanup attempt outcome
 * @param msgq Message Queue object
 * @param ret Return value
 */


/**
 * @brief Trace Message Queue put attempt entry
 * @param msgq Message Queue object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Message Queue put attempt blocking
 * @param msgq Message Queue object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Message Queue put attempt outcome
 * @param msgq Message Queue object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Message Queue get attempt entry
 * @param msgq Message Queue object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Message Queue get attempt blockings
 * @param msgq Message Queue object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Message Queue get attempt outcome
 * @param msgq Message Queue object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Message Queue peek
 * @param msgq Message Queue object
 * @param ret Return value
 */


/**
 * @brief Trace Message Queue purge
 * @param msgq Message Queue object
 */


/** @} */ /* end of subsys_tracing_apis_msgq */

/**
 * @brief Mailbox Tracing APIs
 * @defgroup subsys_tracing_apis_mbox Mailbox Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Mailbox
 * @param mbox Mailbox object
 */


/**
 * @brief Trace Mailbox message put attempt entry
 * @param mbox Mailbox object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Mailbox message put attempt blocking
 * @param mbox Mailbox object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Mailbox message put attempt outcome
 * @param mbox Mailbox object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Mailbox put attempt entry
 * @param mbox Mailbox object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Mailbox put attempt blocking
 * @param mbox Mailbox object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Mailbox async put entry
 * @param mbox Mailbox object
 * @param sem Semaphore object
 */


/**
 * @brief Trace Mailbox async put exit
 * @param mbox Mailbox object
 * @param sem Semaphore object
 */


/**
 * @brief Trace Mailbox get attempt entry
 * @param mbox Mailbox entry
 * @param timeout Timeout period
 */


/**
 * @brief Trace Mailbox get attempt blocking
 * @param mbox Mailbox entry
 * @param timeout Timeout period
 */


/**
 * @brief Trace Mailbox get attempt outcome
 * @param mbox Mailbox entry
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Mailbox data get
 * @brief rx_msg Receive Message object
 */


/** @} */ /* end of subsys_tracing_apis_mbox */

/**
 * @brief Pipe Tracing APIs
 * @defgroup subsys_tracing_apis_pipe Pipe Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Pipe
 * @param pipe Pipe object
 * @param buffer data buffer
 * @param size data buffer size
 */


/**
 * @brief Trace Pipe reset entry
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe reset exit
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe close entry
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe close exit
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe write attempt entry
 * @param pipe Pipe object
 * @param data pointer to data
 * @param len length of data
 * @param timeout Timeout period
 */


/**
 * @brief Trace Pipe write attempt blocking
 * @param pipe Pipe object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Pipe write attempt outcome
 * @param pipe Pipe object
 * @param ret Return value
 */


/**
 * @brief Trace Pipe read attempt entry
 * @param pipe Pipe object
 * @param data Pointer to data
 * @param len Length of data
 * @param timeout Timeout period
 */


/**
 * @brief Trace Pipe read attempt blocking
 * @param pipe Pipe object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Pipe read attempt outcome
 * @param pipe Pipe object
 * @param ret Return value
 */


/**
 * @brief Trace Pipe cleanup entry
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe cleanup exit
 * @param pipe Pipe object
 * @param ret Return value
 */


/**
 * @brief Trace Pipe alloc init entry
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe alloc init exit
 * @param pipe Pipe object
 * @param ret Return value
 */


/**
 * @brief Trace Pipe flush entry
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe flush exit
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe buffer flush entry
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe buffer flush exit
 * @param pipe Pipe object
 */


/**
 * @brief Trace Pipe put attempt entry
 * @param pipe Pipe object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Pipe put attempt blocking
 * @param pipe Pipe object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Pipe put attempt outcome
 * @param pipe Pipe object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Pipe get attempt entry
 * @param pipe Pipe object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Pipe get attempt blocking
 * @param pipe Pipe object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Pipe get attempt outcome
 * @param pipe Pipe object
 * @param timeout Timeout period
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_pipe */

/**
 * @brief Heap Tracing APIs
 * @defgroup subsys_tracing_apis_heap Heap Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Heap
 * @param h Heap object
 */


/**
 * @brief Trace Heap aligned alloc attempt entry
 * @param h Heap object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Heap align alloc attempt blocking
 * @param h Heap object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Heap align alloc attempt outcome
 * @param h Heap object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Heap alloc enter
 * @param h Heap object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Heap alloc exit
 * @param h Heap object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Heap calloc enter
 * @param h Heap object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Heap calloc exit
 * @param h Heap object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Heap free
 * @param h Heap object
 */


/**
 * @brief Trace Heap realloc enter
 * @param h Heap object
 * @param ptr Pointer to reallocate
 * @param bytes Bytes to reallocate
 * @param timeout Timeout period
 */


/**
 * @brief Trace Heap realloc exit
 * @param h Heap object
 * @param ptr Pointer to reallocate
 * @param bytes Bytes to reallocate
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace System Heap aligned alloc enter
 * @param heap Heap object
 */


/**
 * @brief Trace System Heap aligned alloc exit
 * @param heap Heap object
 * @param ret Return value
 */


/**
 * @brief Trace System Heap aligned alloc enter
 * @param heap Heap object
 */


/**
 * @brief Trace System Heap aligned alloc exit
 * @param heap Heap object
 * @param ret Return value
 */


/**
 * @brief Trace System Heap free entry
 * @param heap Heap object
 * @param heap_ref Heap reference
 */


/**
 * @brief Trace System Heap free exit
 * @param heap Heap object
 * @param heap_ref Heap reference
 */


/**
 * @brief Trace System heap calloc enter
 * @param heap
 */


/**
 * @brief Trace System heap calloc exit
 * @param heap Heap object
 * @param ret Return value
 */


/**
 * @brief Trace System heap realloc enter
 * @param heap
 * @param ptr
 */


/**
 * @brief Trace System heap realloc exit
 * @param heap Heap object
 * @param ptr Memory pointer
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_heap */

/**
 * @brief Memory Slab Tracing APIs
 * @defgroup subsys_tracing_apis_mslab Memory Slab Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Memory Slab
 * @param slab Memory Slab object
 * @param rc Return value
 */


/**
 * @brief Trace Memory Slab alloc attempt entry
 * @param slab Memory Slab object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Memory Slab alloc attempt blocking
 * @param slab Memory Slab object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Memory Slab alloc attempt outcome
 * @param slab Memory Slab object
 * @param timeout Timeout period
 * @param ret Return value
 */


/**
 * @brief Trace Memory Slab free entry
 * @param slab Memory Slab object
 */


/**
 * @brief Trace Memory Slab free exit
 * @param slab Memory Slab object
 */


/** @} */ /* end of subsys_tracing_apis_mslab */

/**
 * @brief Timer Tracing APIs
 * @defgroup subsys_tracing_apis_timer Timer Tracing APIs
 * @{
 */

/**
 * @brief Trace initialization of Timer
 * @param timer Timer object
 */


/**
 * @brief Trace Timer start
 * @param timer Timer object
 * @param duration Timer duration
 * @param period Timer period
 */


/**
 * @brief Trace Timer stop
 * @param timer Timer object
 */


/**
 * @brief Trace Timer status sync entry
 * @param timer Timer object
 */


/**
 * @brief Trace Timer Status sync blocking
 * @param timer Timer object
 * @param timeout Timeout period
 */


/**
 * @brief Trace Time Status sync outcome
 * @param timer Timer object
 * @param result Return value
 */


/** @} */ /* end of subsys_tracing_apis_timer */

/**
 * @brief Event Tracing APIs
 * @defgroup subsys_tracing_apis_event Event Tracing APIs
 * @{
 */

/**
 * @brief Trace initialisation of an Event
 * @param event Event object
 */


/**
 * @brief Trace posting of an Event call entry
 * @param event Event object
 * @param events Set of posted events
 * @param events_mask Mask to apply against posted events
 */


/**
 * @brief Trace posting of an Event call exit
 * @param event Event object
 * @param events Set of posted events
 * @param events_mask Mask to apply against posted events
 */


/**
 * @brief Trace waiting of an Event call entry
 * @param event Event object
 * @param events Set of events for which to wait
 * @param options Event wait options
 * @param timeout Timeout period
 */


/**
 * @brief Trace waiting of an Event call exit
 * @param event Event object
 * @param events Set of events for which to wait
 * @param options Event wait options
 * @param timeout Timeout period
 */


/**
 * @brief Trace waiting of an Event call exit
 * @param event Event object
 * @param events Set of events for which to wait
 * @param ret Set of received events
 */


/** @} */ /* end of subsys_tracing_apis_event */

/**
 * @brief System PM Tracing APIs
 * @defgroup subsys_tracing_apis_pm_system System PM Tracing APIs
 * @{
 */

/**
 * @brief Trace system suspend call entry.
 * @param ticks Ticks.
 */


/**
 * @brief Trace system suspend call exit.
 * @param ticks Ticks.
 * @param state PM state.
 */


/** @} */ /* end of subsys_tracing_apis_pm_system */

/**
 * @brief PM Device Runtime Tracing APIs
 * @defgroup subsys_tracing_apis_pm_device_runtime PM Device Runtime Tracing APIs
 * @{
 */

/**
 * @brief Trace getting a device call entry.
 * @param dev Device instance.
 */


/**
 * @brief Trace getting a device call exit.
 * @param dev Device instance.
 * @param ret Return value.
 */


/**
 * @brief Trace putting a device call entry.
 * @param dev Device instance.
 */


/**
 * @brief Trace putting a device call exit.
 * @param dev Device instance.
 * @param ret Return value.
 */


/**
 * @brief Trace putting a device (asynchronously) call entry.
 * @param dev Device instance.
 * @param delay Time to delay the operation
 */


/**
 * @brief Trace putting a device (asynchronously) call exit.
 * @param dev Device instance.
 * @param delay Time to delay the operation.
 * @param ret Return value.
 */


/**
 * @brief Trace enabling device runtime PM call entry.
 * @param dev Device instance.
 */


/**
 * @brief Trace enabling device runtime PM call exit.
 * @param dev Device instance.
 * @param ret Return value.
 */


/**
 * @brief Trace disabling device runtime PM call entry.
 * @param dev Device instance.
 */


/**
 * @brief Trace disabling device runtime PM call exit.
 * @param dev Device instance.
 * @param ret Return value.
 */


/** @} */ /* end of subsys_tracing_apis_pm_device_runtime */

/**
 * @brief Network Core Tracing APIs
 * @defgroup subsys_tracing_apis_net Network Core Tracing APIs
 * @{
 */

/**
 * @brief Trace network data receive
 * @param iface Network interface
 * @param pkt Received network packet
 */


/**
 * @brief Trace network data receive attempt
 * @param iface Network interface
 * @param pkt Received network packet
 * @param ret Return value
 */


/**
 * @brief Trace network data send
 * @param pkt Network packet to send
 */


/**
 * @brief Trace network data send attempt
 * @param pkt Received network packet
 * @param ret Return value
 */


/**
 * @brief Trace network data receive time
 * @param pkt Received network packet
 * @param end_time When the RX processing stopped for this pkt (in ticks)
 */


/**
 * @brief Trace network data sent time
 * @param pkt Sent network packet
 * @param end_time When the TX processing stopped for this pkt (in ticks)
 */


/** @} */ /* end of subsys_tracing_apis_net */

/**
 * @brief Network Socket Tracing APIs
 * @defgroup subsys_tracing_apis_socket Network Socket Tracing APIs
 * @{
 */

/**
 * @brief Trace init of network sockets
 * @param socket Network socket is returned
 * @param family Socket address family
 * @param type Socket type
 * @param proto Socket protocol
 */


/**
 * @brief Trace close of network sockets
 * @param socket Socket object
 */


/**
 * @brief Trace network socket close attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace shutdown of network sockets
 * @param socket Socket object
 * @param how Socket shutdown type
 */


/**
 * @brief Trace network socket shutdown attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace bind of network sockets
 * @param socket Socket object
 * @param addr Network address to bind
 * @param addrlen Address length
 */


/**
 * @brief Trace network socket bind attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace connect of network sockets
 * @param socket Socket object
 * @param addr Network address to bind
 * @param addrlen Address length
 */


/**
 * @brief Trace network socket connect attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace listen of network sockets
 * @param socket Socket object
 * @param backlog Socket backlog length
 */


/**
 * @brief Trace network socket listen attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace accept of network sockets
 * @param socket Socket object
 */


/**
 * @brief Trace network socket accept attempt
 * @param socket Socket object
 * @param addr Peer network address
 * @param addrlen Network address length
 * @param ret Return value
 */


/**
 * @brief Trace sendto of network sockets
 * @param socket Socket object
 * @param len Length of the data to send
 * @param flags Flags for this send operation
 * @param dest_addr Destination network address
 * @param addrlen Network address length
 */


/**
 * @brief Trace network socket sendto attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace sendmsg of network sockets
 * @param socket Socket object
 * @param msg Data to send
 * @param flags Flags for this send operation
 */


/**
 * @brief Trace network socket sendmsg attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace recvfrom of network sockets
 * @param socket Socket object
 * @param max_len Maximum length of the data we can receive
 * @param flags Flags for this receive operation
 * @param addr Remote network address
 * @param addrlen Network address length
 */


/**
 * @brief Trace network socket recvfrom attempt
 * @param socket Socket object
 * @param src_addr Peer network address that send the data
 * @param addrlen Length of the network address
 * @param ret Return value
 */


/**
 * @brief Trace recvmsg of network sockets
 * @param socket Socket object
 * @param msg Message buffer to receive
 * @param flags Flags for this receive operation
 */


/**
 * @brief Trace network socket recvmsg attempt
 * @param socket Socket object
 * @param msg Message buffer received
 * @param ret Return value
 */


/**
 * @brief Trace fcntl of network sockets
 * @param socket Socket object
 * @param cmd Command to set for this socket
 * @param flags Flags for this receive operation
 */


/**
 * @brief Trace network socket fcntl attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace ioctl of network sockets
 * @param socket Socket object
 * @param req Request to set for this socket
 */


/**
 * @brief Trace network socket ioctl attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace polling of network sockets
 * @param fds Set of socket object
 * @param nfds Number of socket objects in the set
 * @param timeout Timeout for the poll operation
 */


/**
 * @brief Trace network socket poll attempt
 * @param fds Set of socket object
 * @param nfds Number of socket objects in the set
 * @param ret Return value
 */


/**
 * @brief Trace getsockopt of network sockets
 * @param socket Socket object
 * @param level Option level
 * @param optname Option name
 */


/**
 * @brief Trace network socket getsockopt attempt
 * @param socket Socket object
 * @param level Option level
 * @param optname Option name
 * @param optval Option value
 * @param optlen Option value length
 * @param ret Return value
 */


/**
 * @brief Trace setsockopt of network sockets
 * @param socket Socket object
 * @param level Option level
 * @param optname Option name
 * @param optval Option value
 * @param optlen Option value length
 */


/**
 * @brief Trace network socket setsockopt attempt
 * @param socket Socket object
 * @param ret Return value
 */


/**
 * @brief Trace getpeername of network sockets
 * @param socket Socket object
 */


/**
 * @brief Trace network socket getpeername attempt
 * @param socket Socket object
 * @param addr Peer socket network address
 * @param addrlen Length of the network address
 * @param ret Return value
 */


/**
 * @brief Trace getsockname of network sockets
 * @param socket Socket object
 */


/**
 * @brief Trace network socket getsockname attempt
 * @param socket Socket object
 * @param addr Local socket network address
 * @param addrlen Length of the network address
 * @param ret Return value
 */


/**
 * @brief Trace socketpair enter call
 * @param family Network address family
 * @param type Socket type
 * @param proto Socket protocol
 * @param sv Socketpair buffer
 */


/**
 * @brief Trace network socketpair open attempt
 * @param socket_A Socketpair first socket object
 * @param socket_B Socketpair second socket object
 * @param ret Return value
 */


/** @} */ /* end of subsys_tracing_apis_socket */

/**
 * @brief Named Tracing APIs
 * @defgroup subsys_tracing_apis_named Named tracing APIs
 * @{
 */

/*
 * @brief Called by user to generate named events
 *
 * @param name name of event. Tracing subsystems may place a limit on
 * the length of this string
 * @param arg0 arbitrary user-provided data for this event
 * @param arg1 arbitrary user-provided data for this event
 */


/** @} */ /* end of subsys_tracing_apis_named */

/**
 * @brief GPIO Tracing APIs
 * @defgroup subsys_tracing_apis_gpio GPIO Tracing APIs
 * @{
 */

/**
 * @brief Trace GPIO pin interrupt configure enter call
 * @param port Pointer to device structure for the driver instance
 * @param pin GPIO pin number
 * @param flags Interrupt configuration flags as defined by GPIO_INT_*
 */


/**
 * @brief Trace GPIO pin interrupt configure exit call
 * @param port Pointer to device structure for the driver instance
 * @param pin GPIO pin number
 * @param ret Return value
 */


/**
 * @brief Trace GPIO single pin configure enter call
 * @param port Pointer to device structure for the driver instance
 * @param pin GPIO pin number to configure
 * @param flags GPIO pin configuration flags
 */


/**
 * @brief Trace GPIO single pin configure exit call
 * @param port Pointer to device structure for the driver instance
 * @param pin GPIO pin number to configure
 * @param ret Return value
 */


/**
 * @brief Trace GPIO port get direction enter call
 * @param port Pointer to device structure for the driver instance
 * @param map Bitmap of pin directions to query
 * @param inputs Pointer to a variable where input directions will be stored
 * @param outputs Pointer to a variable where output directions will be stored
 */


/**
 * @brief Trace GPIO port get direction exit call
 * @param port Pointer to device structure for the driver instance
 * @param ret Return value
 */


/**
 * @brief Trace GPIO pin gent config enter call
 * @param port Pointer to device structure for the driver instance
 * @param pin GPIO pin number to configure
 * @param flags GPIO pin configuration flags
 */


/**
 * @brief Trace GPIO pin get config exit call
 * @param port Pointer to device structure for the driver instance
 * @param pin GPIO pin number to configure
 * @param ret Return value
 */


/**
 * @brief Trace GPIO port get raw enter call
 * @param port Pointer to device structure for the driver instance
 * @param value Pointer to a variable where the raw value will be stored
 */


/**
 * @brief Trace GPIO port get raw exit call
 * @param port Pointer to device structure for the driver instance
 * @param ret Return value
 */


/**
 * @brief Trace GPIO port set masked raw enter call
 * @param port Pointer to device structure for the driver instance
 * @param mask Mask indicating which pins will be modified
 * @param value Value to be written to the output pins
 */


/**
 * @brief Trace GPIO port set masked raw exit call
 * @param port Pointer to device structure for the driver instance
 * @param ret Return value
 */


/**
 * @brief Trace GPIO port set bits raw enter call
 * @param port Pointer to device structure for the driver instance
 * @param pins Value indicating which pins will be modified
 */


/**
 * @brief Trace GPIO port set bits raw exit call
 * @param port Pointer to device structure for the driver instance
 * @param ret Return value
 */


/**
 * @brief Trace GPIO port clear bits raw enter call
 * @param port Pointer to device structure for the driver instance
 * @param pins Value indicating which pins will be modified
 */


/**
 * @brief Trace GPIO port clear bits raw exit call
 * @param port Pointer to device structure for the driver instance
 * @param ret Return value
 */


/**
 * @brief Trace GPIO port toggle bits enter call
 * @param port Pointer to device structure for the driver instance
 * @param pins Value indicating which pins will be modified
 */


/**
 * @brief Trace GPIO port toggle bits exit call
 * @param port Pointer to device structure for the driver instance
 * @param ret Return value
 */


/**
 * @brief Trace GPIO init callback enter call
 * @param callback A valid application's callback structure pointer
 * @param handler A valid handler function pointer
 * @param pin_mask A bit mask of relevant pins for the handler
 */


/**
 * @brief Trace GPIO init callback exit call
 * @param callback A valid application's callback structure pointer
 */


/**
 * @brief Trace GPIO add callback enter call
 * @param port Pointer to device structure for the driver instance
 * @param callback A valid application's callback structure pointer
 */


/**
 * @brief Trace GPIO add callback exit call
 * @param port Pointer to device structure for the driver instance
 * @param ret Return value
 */


/**
 * @brief Trace GPIO remove callback enter call
 * @param port Pointer to device structure for the driver instance
 * @param callback A valid application's callback structure pointer
 */


/**
 * @brief Trace GPIO remove callback exit call
 * @param port Pointer to device structure for the driver instance
 * @param ret Return value
 */


/**
 * @brief Trace GPIO get pending interrupt enter call
 * @param dev Pointer to the device structure for the device instance
 */


/**
 * @brief Trace GPIO get pending interrupt exit call
 * @param dev Pointer to the device structure for the device instance
 * @param ret Return value
 */


/**
 * @brief
 * @param list @ref sys_slist_t representing gpio_callback pointers
 * @param port @ref device representing the GPIO port
 * @param pins @ref gpio_pin_t representing the pins
 */


/**
 * @brief
 * @param port @ref device representing the GPIO port
 * @param callback @ref gpio_callback a valid Application's callback structure pointer
 */


/** @} */ /* end of subsys_tracing_apis_gpio */
# 2728 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing.h"
/**
 * @brief Called when entering an ISR
 */
void sys_trace_isr_enter(void);

/**
 * @brief Called when exiting an ISR
 */
void sys_trace_isr_exit(void);

/**
 * @brief Called when exiting an ISR and switching to scheduler
 */
void sys_trace_isr_exit_to_scheduler(void);

/**
 * @brief Called when the cpu enters the idle state
 */
void sys_trace_idle(void);

/**
 * @brief Called when the cpu exits the idle state
 */
void sys_trace_idle_exit(void);



/**
 * @brief Called when entering an init function
 */


/**
 * @brief Called when exiting an init function
 */


/** @} */ /* end of subsys_tracing_apis */

/** @} */ /* end of subsys_tracing */
# 6445 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h" 1
/* auto-generated by gen_syscalls.py, don't edit */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* auto-generated by gen_syscalls.py, don't edit */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h" 2



extern "C" {


extern k_thread_stack_t * z_impl_k_thread_stack_alloc(size_t size, int flags);


static inline k_thread_stack_t * k_thread_stack_alloc(size_t size, int flags)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_stack_alloc(size, flags);
}


extern int z_impl_k_thread_stack_free(k_thread_stack_t * stack);


static inline int k_thread_stack_free(k_thread_stack_t * stack)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_stack_free(stack);
}


extern k_tid_t z_impl_k_thread_create(struct k_thread * new_thread, k_thread_stack_t * stack, size_t stack_size, k_thread_entry_t entry, void * p1, void * p2, void * p3, int prio, uint32_t options, k_timeout_t delay);


static inline k_tid_t k_thread_create(struct k_thread * new_thread, k_thread_stack_t * stack, size_t stack_size, k_thread_entry_t entry, void * p1, void * p2, void * p3, int prio, uint32_t options, k_timeout_t delay)
{
# 84 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_create(new_thread, stack, stack_size, entry, p1, p2, p3, prio, options, delay);
}


extern int z_impl_k_thread_stack_space_get(const struct k_thread * thread, size_t * unused_ptr);


static inline int k_thread_stack_space_get(const struct k_thread * thread, size_t * unused_ptr)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_stack_space_get(thread, unused_ptr);
}


extern int z_impl_k_thread_join(struct k_thread * thread, k_timeout_t timeout);


static inline int k_thread_join(struct k_thread * thread, k_timeout_t timeout)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_join(thread, timeout);
}


extern int32_t z_impl_k_sleep(k_timeout_t timeout);


static inline int32_t k_sleep(k_timeout_t timeout)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_sleep(timeout);
}


extern int32_t z_impl_k_usleep(int32_t us);


static inline int32_t k_usleep(int32_t us)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_usleep(us);
}


extern void z_impl_k_busy_wait(uint32_t usec_to_wait);


static inline void k_busy_wait(uint32_t usec_to_wait)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_busy_wait(usec_to_wait);
}


extern void z_impl_k_yield(void);


static inline void k_yield(void)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_yield();
}


extern void z_impl_k_wakeup(k_tid_t thread);


static inline void k_wakeup(k_tid_t thread)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_wakeup(thread);
}


extern k_tid_t z_impl_k_sched_current_thread_query(void);


static inline k_tid_t k_sched_current_thread_query(void)
{





 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_sched_current_thread_query();
}


extern void z_impl_k_thread_abort(k_tid_t thread);


static inline void k_thread_abort(k_tid_t thread)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_thread_abort(thread);
}


extern k_ticks_t z_impl_k_thread_timeout_expires_ticks(const struct k_thread * thread);


static inline k_ticks_t k_thread_timeout_expires_ticks(const struct k_thread * thread)
{
# 250 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_timeout_expires_ticks(thread);
}


extern k_ticks_t z_impl_k_thread_timeout_remaining_ticks(const struct k_thread * thread);


static inline k_ticks_t k_thread_timeout_remaining_ticks(const struct k_thread * thread)
{
# 268 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_timeout_remaining_ticks(thread);
}


extern int z_impl_k_thread_priority_get(k_tid_t thread);


static inline int k_thread_priority_get(k_tid_t thread)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_priority_get(thread);
}


extern void z_impl_k_thread_priority_set(k_tid_t thread, int prio);


static inline void k_thread_priority_set(k_tid_t thread, int prio)
{
# 302 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_thread_priority_set(thread, prio);
}


extern void z_impl_k_thread_deadline_set(k_tid_t thread, int deadline);


static inline void k_thread_deadline_set(k_tid_t thread, int deadline)
{
# 320 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_thread_deadline_set(thread, deadline);
}


extern void z_impl_k_reschedule(void);


static inline void k_reschedule(void)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_reschedule();
}


extern void z_impl_k_thread_suspend(k_tid_t thread);


static inline void k_thread_suspend(k_tid_t thread)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_thread_suspend(thread);
}


extern void z_impl_k_thread_resume(k_tid_t thread);


static inline void k_thread_resume(k_tid_t thread)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_thread_resume(thread);
}


extern int z_impl_k_is_preempt_thread(void);


static inline int k_is_preempt_thread(void)
{





 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_is_preempt_thread();
}


extern void z_impl_k_thread_custom_data_set(void * value);


static inline void k_thread_custom_data_set(void * value)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_thread_custom_data_set(value);
}


extern void * z_impl_k_thread_custom_data_get(void);


static inline void * k_thread_custom_data_get(void)
{





 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_custom_data_get();
}


extern int z_impl_k_thread_name_set(k_tid_t thread, const char * str);


static inline int k_thread_name_set(k_tid_t thread, const char * str)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_name_set(thread, str);
}


extern int z_impl_k_thread_name_copy(k_tid_t thread, char * buf, size_t size);


static inline int k_thread_name_copy(k_tid_t thread, char * buf, size_t size)
{
# 452 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_thread_name_copy(thread, buf, size);
}


extern void z_impl_k_timer_start(struct k_timer * timer, k_timeout_t duration, k_timeout_t period);


static inline void k_timer_start(struct k_timer * timer, k_timeout_t duration, k_timeout_t period)
{
# 471 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_timer_start(timer, duration, period);
}


extern void z_impl_k_timer_stop(struct k_timer * timer);


static inline void k_timer_stop(struct k_timer * timer)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_timer_stop(timer);
}


extern uint32_t z_impl_k_timer_status_get(struct k_timer * timer);


static inline uint32_t k_timer_status_get(struct k_timer * timer)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_timer_status_get(timer);
}


extern uint32_t z_impl_k_timer_status_sync(struct k_timer * timer);


static inline uint32_t k_timer_status_sync(struct k_timer * timer)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_timer_status_sync(timer);
}


extern k_ticks_t z_impl_k_timer_expires_ticks(const struct k_timer * timer);


static inline k_ticks_t k_timer_expires_ticks(const struct k_timer * timer)
{
# 538 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_timer_expires_ticks(timer);
}


extern k_ticks_t z_impl_k_timer_remaining_ticks(const struct k_timer * timer);


static inline k_ticks_t k_timer_remaining_ticks(const struct k_timer * timer)
{
# 556 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_timer_remaining_ticks(timer);
}


extern void z_impl_k_timer_user_data_set(struct k_timer * timer, void * user_data);


static inline void k_timer_user_data_set(struct k_timer * timer, void * user_data)
{
# 574 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_timer_user_data_set(timer, user_data);
}


extern void * z_impl_k_timer_user_data_get(const struct k_timer * timer);


static inline void * k_timer_user_data_get(const struct k_timer * timer)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_timer_user_data_get(timer);
}


extern int64_t z_impl_k_uptime_ticks(void);


static inline int64_t k_uptime_ticks(void)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_uptime_ticks();
}


extern void z_impl_k_queue_init(struct k_queue * queue);


static inline void k_queue_init(struct k_queue * queue)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_queue_init(queue);
}


extern void z_impl_k_queue_cancel_wait(struct k_queue * queue);


static inline void k_queue_cancel_wait(struct k_queue * queue)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_queue_cancel_wait(queue);
}


extern int32_t z_impl_k_queue_alloc_append(struct k_queue * queue, void * data);


static inline int32_t k_queue_alloc_append(struct k_queue * queue, void * data)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_queue_alloc_append(queue, data);
}


extern int32_t z_impl_k_queue_alloc_prepend(struct k_queue * queue, void * data);


static inline int32_t k_queue_alloc_prepend(struct k_queue * queue, void * data)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_queue_alloc_prepend(queue, data);
}


extern void * z_impl_k_queue_get(struct k_queue * queue, k_timeout_t timeout);


static inline void * k_queue_get(struct k_queue * queue, k_timeout_t timeout)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_queue_get(queue, timeout);
}


extern int z_impl_k_queue_is_empty(struct k_queue * queue);


static inline int k_queue_is_empty(struct k_queue * queue)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_queue_is_empty(queue);
}


extern void * z_impl_k_queue_peek_head(struct k_queue * queue);


static inline void * k_queue_peek_head(struct k_queue * queue)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_queue_peek_head(queue);
}


extern void * z_impl_k_queue_peek_tail(struct k_queue * queue);


static inline void * k_queue_peek_tail(struct k_queue * queue)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_queue_peek_tail(queue);
}


extern int z_impl_k_futex_wait(struct k_futex * futex, int expected, k_timeout_t timeout);


static inline int k_futex_wait(struct k_futex * futex, int expected, k_timeout_t timeout)
{
# 758 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_futex_wait(futex, expected, timeout);
}


extern int z_impl_k_futex_wake(struct k_futex * futex, bool wake_all);


static inline int k_futex_wake(struct k_futex * futex, bool wake_all)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_futex_wake(futex, wake_all);
}


extern void z_impl_k_event_init(struct k_event * event);


static inline void k_event_init(struct k_event * event)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_event_init(event);
}


extern uint32_t z_impl_k_event_post(struct k_event * event, uint32_t events);


static inline uint32_t k_event_post(struct k_event * event, uint32_t events)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_event_post(event, events);
}


extern uint32_t z_impl_k_event_set(struct k_event * event, uint32_t events);


static inline uint32_t k_event_set(struct k_event * event, uint32_t events)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_event_set(event, events);
}


extern uint32_t z_impl_k_event_set_masked(struct k_event * event, uint32_t events, uint32_t events_mask);


static inline uint32_t k_event_set_masked(struct k_event * event, uint32_t events, uint32_t events_mask)
{
# 844 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_event_set_masked(event, events, events_mask);
}


extern uint32_t z_impl_k_event_clear(struct k_event * event, uint32_t events);


static inline uint32_t k_event_clear(struct k_event * event, uint32_t events)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_event_clear(event, events);
}


extern uint32_t z_impl_k_event_wait(struct k_event * event, uint32_t events, bool reset, k_timeout_t timeout);


static inline uint32_t k_event_wait(struct k_event * event, uint32_t events, bool reset, k_timeout_t timeout)
{
# 880 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_event_wait(event, events, reset, timeout);
}


extern uint32_t z_impl_k_event_wait_all(struct k_event * event, uint32_t events, bool reset, k_timeout_t timeout);


static inline uint32_t k_event_wait_all(struct k_event * event, uint32_t events, bool reset, k_timeout_t timeout)
{
# 899 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_event_wait_all(event, events, reset, timeout);
}


extern int32_t z_impl_k_stack_alloc_init(struct k_stack * stack, uint32_t num_entries);


static inline int32_t k_stack_alloc_init(struct k_stack * stack, uint32_t num_entries)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_stack_alloc_init(stack, num_entries);
}


extern int z_impl_k_stack_push(struct k_stack * stack, stack_data_t data);


static inline int k_stack_push(struct k_stack * stack, stack_data_t data)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_stack_push(stack, data);
}


extern int z_impl_k_stack_pop(struct k_stack * stack, stack_data_t * data, k_timeout_t timeout);


static inline int k_stack_pop(struct k_stack * stack, stack_data_t * data, k_timeout_t timeout)
{
# 951 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_stack_pop(stack, data, timeout);
}


extern int z_impl_k_mutex_init(struct k_mutex * mutex);


static inline int k_mutex_init(struct k_mutex * mutex)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_mutex_init(mutex);
}


extern int z_impl_k_mutex_lock(struct k_mutex * mutex, k_timeout_t timeout);


static inline int k_mutex_lock(struct k_mutex * mutex, k_timeout_t timeout)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_mutex_lock(mutex, timeout);
}


extern int z_impl_k_mutex_unlock(struct k_mutex * mutex);


static inline int k_mutex_unlock(struct k_mutex * mutex)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_mutex_unlock(mutex);
}


extern int z_impl_k_condvar_init(struct k_condvar * condvar);


static inline int k_condvar_init(struct k_condvar * condvar)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_condvar_init(condvar);
}


extern int z_impl_k_condvar_signal(struct k_condvar * condvar);


static inline int k_condvar_signal(struct k_condvar * condvar)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_condvar_signal(condvar);
}


extern int z_impl_k_condvar_broadcast(struct k_condvar * condvar);


static inline int k_condvar_broadcast(struct k_condvar * condvar)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_condvar_broadcast(condvar);
}


extern int z_impl_k_condvar_wait(struct k_condvar * condvar, struct k_mutex * mutex, k_timeout_t timeout);


static inline int k_condvar_wait(struct k_condvar * condvar, struct k_mutex * mutex, k_timeout_t timeout)
{
# 1066 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_condvar_wait(condvar, mutex, timeout);
}


extern int z_impl_k_sem_init(struct k_sem * sem, unsigned int initial_count, unsigned int limit);


static inline int k_sem_init(struct k_sem * sem, unsigned int initial_count, unsigned int limit)
{
# 1084 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_sem_init(sem, initial_count, limit);
}


extern int z_impl_k_sem_take(struct k_sem * sem, k_timeout_t timeout);


static inline int k_sem_take(struct k_sem * sem, k_timeout_t timeout)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_sem_take(sem, timeout);
}


extern void z_impl_k_sem_give(struct k_sem * sem);


static inline void k_sem_give(struct k_sem * sem)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_sem_give(sem);
}


extern void z_impl_k_sem_reset(struct k_sem * sem);


static inline void k_sem_reset(struct k_sem * sem)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_sem_reset(sem);
}


extern unsigned int z_impl_k_sem_count_get(struct k_sem * sem);


static inline unsigned int k_sem_count_get(struct k_sem * sem)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_sem_count_get(sem);
}


extern int z_impl_k_msgq_alloc_init(struct k_msgq * msgq, size_t msg_size, uint32_t max_msgs);


static inline int k_msgq_alloc_init(struct k_msgq * msgq, size_t msg_size, uint32_t max_msgs)
{
# 1169 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_msgq_alloc_init(msgq, msg_size, max_msgs);
}


extern int z_impl_k_msgq_put(struct k_msgq * msgq, const void * data, k_timeout_t timeout);


static inline int k_msgq_put(struct k_msgq * msgq, const void * data, k_timeout_t timeout)
{
# 1187 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_msgq_put(msgq, data, timeout);
}


extern int z_impl_k_msgq_get(struct k_msgq * msgq, void * data, k_timeout_t timeout);


static inline int k_msgq_get(struct k_msgq * msgq, void * data, k_timeout_t timeout)
{
# 1205 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_msgq_get(msgq, data, timeout);
}


extern int z_impl_k_msgq_peek(struct k_msgq * msgq, void * data);


static inline int k_msgq_peek(struct k_msgq * msgq, void * data)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_msgq_peek(msgq, data);
}


extern int z_impl_k_msgq_peek_at(struct k_msgq * msgq, void * data, uint32_t idx);


static inline int k_msgq_peek_at(struct k_msgq * msgq, void * data, uint32_t idx)
{
# 1240 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_msgq_peek_at(msgq, data, idx);
}


extern void z_impl_k_msgq_purge(struct k_msgq * msgq);


static inline void k_msgq_purge(struct k_msgq * msgq)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_msgq_purge(msgq);
}


extern uint32_t z_impl_k_msgq_num_free_get(struct k_msgq * msgq);


static inline uint32_t k_msgq_num_free_get(struct k_msgq * msgq)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_msgq_num_free_get(msgq);
}


extern void z_impl_k_msgq_get_attrs(struct k_msgq * msgq, struct k_msgq_attrs * attrs);


static inline void k_msgq_get_attrs(struct k_msgq * msgq, struct k_msgq_attrs * attrs)
{
# 1291 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_msgq_get_attrs(msgq, attrs);
}


extern uint32_t z_impl_k_msgq_num_used_get(struct k_msgq * msgq);


static inline uint32_t k_msgq_num_used_get(struct k_msgq * msgq)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_msgq_num_used_get(msgq);
}


extern void z_impl_k_pipe_init(struct k_pipe * pipe, uint8_t * buffer, size_t buffer_size);


static inline void k_pipe_init(struct k_pipe * pipe, uint8_t * buffer, size_t buffer_size)
{
# 1326 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_pipe_init(pipe, buffer, buffer_size);
}


extern int z_impl_k_pipe_alloc_init(struct k_pipe * pipe, size_t size);


static inline int k_pipe_alloc_init(struct k_pipe * pipe, size_t size)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_pipe_alloc_init(pipe, size);
}


extern int z_impl_k_pipe_put(struct k_pipe * pipe, const void * data, size_t bytes_to_write, size_t * bytes_written, size_t min_xfer, k_timeout_t timeout);


static inline int k_pipe_put(struct k_pipe * pipe, const void * data, size_t bytes_to_write, size_t * bytes_written, size_t min_xfer, k_timeout_t timeout)
{
# 1368 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_pipe_put(pipe, data, bytes_to_write, bytes_written, min_xfer, timeout);
}


extern int z_impl_k_pipe_get(struct k_pipe * pipe, void * data, size_t bytes_to_read, size_t * bytes_read, size_t min_xfer, k_timeout_t timeout);


static inline int k_pipe_get(struct k_pipe * pipe, void * data, size_t bytes_to_read, size_t * bytes_read, size_t min_xfer, k_timeout_t timeout)
{
# 1393 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_pipe_get(pipe, data, bytes_to_read, bytes_read, min_xfer, timeout);
}


extern size_t z_impl_k_pipe_read_avail(struct k_pipe * pipe);


static inline size_t k_pipe_read_avail(struct k_pipe * pipe)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_pipe_read_avail(pipe);
}


extern size_t z_impl_k_pipe_write_avail(struct k_pipe * pipe);


static inline size_t k_pipe_write_avail(struct k_pipe * pipe)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_pipe_write_avail(pipe);
}


extern void z_impl_k_pipe_flush(struct k_pipe * pipe);


static inline void k_pipe_flush(struct k_pipe * pipe)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_pipe_flush(pipe);
}


extern void z_impl_k_pipe_buffer_flush(struct k_pipe * pipe);


static inline void k_pipe_buffer_flush(struct k_pipe * pipe)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_pipe_buffer_flush(pipe);
}


extern int z_impl_k_pipe_write(struct k_pipe * pipe, const uint8_t * data, size_t len, k_timeout_t timeout);


static inline int k_pipe_write(struct k_pipe * pipe, const uint8_t * data, size_t len, k_timeout_t timeout)
{
# 1478 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_pipe_write(pipe, data, len, timeout);
}


extern int z_impl_k_pipe_read(struct k_pipe * pipe, uint8_t * data, size_t len, k_timeout_t timeout);


static inline int k_pipe_read(struct k_pipe * pipe, uint8_t * data, size_t len, k_timeout_t timeout)
{
# 1497 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_pipe_read(pipe, data, len, timeout);
}


extern void z_impl_k_pipe_reset(struct k_pipe * pipe);


static inline void k_pipe_reset(struct k_pipe * pipe)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_pipe_reset(pipe);
}


extern void z_impl_k_pipe_close(struct k_pipe * pipe);


static inline void k_pipe_close(struct k_pipe * pipe)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_pipe_close(pipe);
}


extern int z_impl_k_poll(struct k_poll_event * events, int num_events, k_timeout_t timeout);


static inline int k_poll(struct k_poll_event * events, int num_events, k_timeout_t timeout)
{
# 1549 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_poll(events, num_events, timeout);
}


extern void z_impl_k_poll_signal_init(struct k_poll_signal * sig);


static inline void k_poll_signal_init(struct k_poll_signal * sig)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_poll_signal_init(sig);
}


extern void z_impl_k_poll_signal_reset(struct k_poll_signal * sig);


static inline void k_poll_signal_reset(struct k_poll_signal * sig)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_poll_signal_reset(sig);
}


extern void z_impl_k_poll_signal_check(struct k_poll_signal * sig, unsigned int * signaled, int * result);


static inline void k_poll_signal_check(struct k_poll_signal * sig, unsigned int * signaled, int * result)
{
# 1602 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_poll_signal_check(sig, signaled, result);
}


extern int z_impl_k_poll_signal_raise(struct k_poll_signal * sig, int result);


static inline int k_poll_signal_raise(struct k_poll_signal * sig, int result)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_poll_signal_raise(sig, result);
}


extern void z_impl_k_str_out(char * c, size_t n);


static inline void k_str_out(char * c, size_t n)
{
# 1637 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/kernel.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_k_str_out(c, n);
}


extern int z_impl_k_float_disable(struct k_thread * thread);


static inline int k_float_disable(struct k_thread * thread)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_float_disable(thread);
}


extern int z_impl_k_float_enable(struct k_thread * thread, unsigned int options);


static inline int k_float_enable(struct k_thread * thread, unsigned int options)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_k_float_enable(thread, options);
}



}
# 6446 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 2
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 1
/*
 * Copyright (c) 2019-2020 Nordic Semiconductor ASA
 * Copyright (c) 2019 Piotr Mienkowski
 * Copyright (c) 2017 ARM Ltd
 * Copyright (c) 2015-2016 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Public APIs for GPIO drivers
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h"
/*
 * Copyright (c) 2011-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 1
/*
 * Copyright (c) 2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

 /**
  * @file
  * @defgroup single-linked-list_apis Single-linked list
  * @ingroup datastructure_apis
  *
  * @brief Single-linked list implementation.
  *
  * Single-linked list implementation using inline macros/functions.
  * This API is not thread safe, and thus if a list is used across threads,
  * calls to functions must be protected with synchronization primitives.
  * @{
  */
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing.h" 1
/*
 * Copyright (c) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/dt-bindings/gpio/gpio.h" 1
/*
 * Copyright (c) 2019 Piotr Mienkowski
 * Copyright (c) 2018 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */



/**
 * @brief GPIO Driver APIs
 * @defgroup gpio_interface GPIO Driver APIs
 * @ingroup io_interfaces
 * @{
 */

/** Mask for DT GPIO flags. */


/**
 * @name GPIO pin active level flags
 * @{
 */

/** GPIO pin is active (has logical value '1') in low state. */

/** GPIO pin is active (has logical value '1') in high state. */


/** @} */

/**
 * @name GPIO pin drive flags
 * @{
 */

/** @cond INTERNAL_HIDDEN */

/* Configures GPIO output in single-ended mode (open drain or open source). */

/* Configures GPIO output in push-pull mode */


/* Indicates single ended open drain mode (wired AND). */

/* Indicates single ended open source mode (wired OR). */


/** @endcond */

/** Configures GPIO output in open drain mode (wired AND).
 *
 * @note 'Open Drain' mode also known as 'Open Collector' is an output
 * configuration which behaves like a switch that is either connected to ground
 * or disconnected.
 */

/** Configures GPIO output in open source mode (wired OR).
 *
 * @note 'Open Source' is a term used by software engineers to describe output
 * mode opposite to 'Open Drain'. It behaves like a switch that is either
 * connected to power supply or disconnected. There exist no corresponding
 * hardware schematic and the term is generally unknown to hardware engineers.
 */


/** @} */

/**
 * @name GPIO pin bias flags
 * @{
 */

/** Enables GPIO pin pull-up. */


/** Enable GPIO pin pull-down. */


/** @} */

/**
 * Configures GPIO interrupt to wakeup the system from low power mode.
 */


/* Note: Bits 15 downto 8 are reserved for SoC specific flags. */

/**
 * @}
 */
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 2


extern "C" {


/**
 * @brief GPIO Driver APIs
 * @defgroup gpio_interface GPIO Driver APIs
 * @since 1.0
 * @version 1.0.0
 * @ingroup io_interfaces
 * @{
 */

/**
 * @name GPIO input/output configuration flags
 * @{
 */

/** Enables pin as input. */


/** Enables pin as output, no change to the output state. */


/** Disables pin for both input and output. */


/** @cond INTERNAL_HIDDEN */

/* Initializes output to a low state. */


/* Initializes output to a high state. */


/* Initializes output based on logic level */


/** @endcond */

/** Configures GPIO pin as output and initializes it to a low state. */

/** Configures GPIO pin as output and initializes it to a high state. */

/** Configures GPIO pin as output and initializes it to a logic 0. */



/** Configures GPIO pin as output and initializes it to a logic 1. */




/** @} */

/**
 * @name GPIO interrupt configuration flags
 * The `GPIO_INT_*` flags are used to specify how input GPIO pins will trigger
 * interrupts. The interrupts can be sensitive to pin physical or logical level.
 * Interrupts sensitive to pin logical level take into account GPIO_ACTIVE_LOW
 * flag. If a pin was configured as Active Low, physical level low will be
 * considered as logical level 1 (an active state), physical level high will
 * be considered as logical level 0 (an inactive state).
 * The GPIO controller should reset the interrupt status, such as clearing the
 * pending bit, etc, when configuring the interrupt triggering properties.
 * Applications should use the `GPIO_INT_MODE_ENABLE_ONLY` and
 * `GPIO_INT_MODE_DISABLE_ONLY` flags to enable and disable interrupts on the
 * pin without changing any GPIO settings.
 * @{
 */

/** Disables GPIO pin interrupt. */


/** @cond INTERNAL_HIDDEN */

/* Enables GPIO pin interrupt. */


/* GPIO interrupt is sensitive to logical levels.
 *
 * This is a component flag that should be combined with other
 * `GPIO_INT_*` flags to produce a meaningful configuration.
 */


/* GPIO interrupt is edge sensitive.
 *
 * Note: by default interrupts are level sensitive.
 *
 * This is a component flag that should be combined with other
 * `GPIO_INT_*` flags to produce a meaningful configuration.
 */


/* Trigger detection when input state is (or transitions to) physical low or
 * logical 0 level.
 *
 * This is a component flag that should be combined with other
 * `GPIO_INT_*` flags to produce a meaningful configuration.
 */


/* Trigger detection on input state is (or transitions to) physical high or
 * logical 1 level.
 *
 * This is a component flag that should be combined with other
 * `GPIO_INT_*` flags to produce a meaningful configuration.
 */
# 157 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
/** @endcond */

/** Configures GPIO interrupt to be triggered on pin rising edge and enables it.
 */




/** Configures GPIO interrupt to be triggered on pin falling edge and enables
 * it.
 */




/** Configures GPIO interrupt to be triggered on pin rising or falling edge and
 * enables it.
 */





/** Configures GPIO interrupt to be triggered on pin physical level low and
 * enables it.
 */



/** Configures GPIO interrupt to be triggered on pin physical level high and
 * enables it.
 */



/** Configures GPIO interrupt to be triggered on pin state change to logical
 * level 0 and enables it.
 */





/** Configures GPIO interrupt to be triggered on pin state change to logical
 * level 1 and enables it.
 */





/** Configures GPIO interrupt to be triggered on pin logical level 0 and enables
 * it.
 */




/** Configures GPIO interrupt to be triggered on pin logical level 1 and enables
 * it.
 */




/** @} */

/** @cond INTERNAL_HIDDEN */

/** @endcond */

/**
 * @brief Identifies a set of pins associated with a port.
 *
 * The pin with index n is present in the set if and only if the bit
 * identified by (1U << n) is set.
 */
typedef uint32_t gpio_port_pins_t;

/**
 * @brief Provides values for a set of pins associated with a port.
 *
 * The value for a pin with index n is high (physical mode) or active
 * (logical mode) if and only if the bit identified by (1U << n) is set.
 * Otherwise the value for the pin is low (physical mode) or inactive
 * (logical mode).
 *
 * Values of this type are often paired with a `gpio_port_pins_t` value
 * that specifies which encoded pin values are valid for the operation.
 */
typedef uint32_t gpio_port_value_t;

/**
 * @brief Provides a type to hold a GPIO pin index.
 *
 * This reduced-size type is sufficient to record a pin number,
 * e.g. from a devicetree GPIOS property.
 */
typedef uint8_t gpio_pin_t;

/**
 * @brief Provides a type to hold GPIO devicetree flags.
 *
 * All GPIO flags that can be expressed in devicetree fit in the low 16
 * bits of the full flags field, so use a reduced-size type to record
 * that part of a GPIOS property.
 *
 * The lower 8 bits are used for standard flags. The upper 8 bits are reserved
 * for SoC specific flags.
 */
typedef uint16_t gpio_dt_flags_t;

/**
 * @brief Provides a type to hold GPIO configuration flags.
 *
 * This type is sufficient to hold all flags used to control GPIO
 * configuration, whether pin or interrupt.
 */
typedef uint32_t gpio_flags_t;

/**
 * @brief Container for GPIO pin information specified in devicetree
 *
 * This type contains a pointer to a GPIO device, pin number for a pin
 * controlled by that device, and the subset of pin configuration
 * flags which may be given in devicetree.
 *
 * @see GPIO_DT_SPEC_GET_BY_IDX
 * @see GPIO_DT_SPEC_GET_BY_IDX_OR
 * @see GPIO_DT_SPEC_GET
 * @see GPIO_DT_SPEC_GET_OR
 */
struct gpio_dt_spec {
 /** GPIO device controlling the pin */
 const struct device *port;
 /** The pin's number on the device */
 gpio_pin_t pin;
 /** The pin's configuration flags as specified in devicetree */
 gpio_dt_flags_t dt_flags;
};

/**
 * @brief Static initializer for a @p gpio_dt_spec
 *
 * This returns a static initializer for a @p gpio_dt_spec structure given a
 * devicetree node identifier, a property specifying a GPIO and an index.
 *
 * Example devicetree fragment:
 *
 *	n: node {
 *		foo-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>,
 *			    <&gpio1 2 GPIO_ACTIVE_LOW>;
 *	}
 *
 * Example usage:
 *
 *	const struct gpio_dt_spec spec = GPIO_DT_SPEC_GET_BY_IDX(DT_NODELABEL(n),
 *								 foo_gpios, 1);
 *	// Initializes 'spec' to:
 *	// {
 *	//         .port = DEVICE_DT_GET(DT_NODELABEL(gpio1)),
 *	//         .pin = 2,
 *	//         .dt_flags = GPIO_ACTIVE_LOW
 *	// }
 *
 * The 'gpio' field must still be checked for readiness, e.g. using
 * device_is_ready(). It is an error to use this macro unless the node
 * exists, has the given property, and that property specifies a GPIO
 * controller, pin number, and flags as shown above.
 *
 * @param node_id devicetree node identifier
 * @param prop lowercase-and-underscores property name
 * @param idx logical index into "prop"
 * @return static initializer for a struct gpio_dt_spec for the property
 */







/**
 * @brief Like GPIO_DT_SPEC_GET_BY_IDX(), with a fallback to a default value
 *
 * If the devicetree node identifier 'node_id' refers to a node with a
 * property 'prop', and the index @p idx is valid for that property,
 * this expands to <tt>GPIO_DT_SPEC_GET_BY_IDX(node_id, prop, idx)</tt>. The @p
 * default_value parameter is not expanded in this case.
 *
 * Otherwise, this expands to @p default_value.
 *
 * @param node_id devicetree node identifier
 * @param prop lowercase-and-underscores property name
 * @param idx logical index into "prop"
 * @param default_value fallback value to expand to
 * @return static initializer for a struct gpio_dt_spec for the property,
 *         or default_value if the node or property do not exist
 */





/**
 * @brief Equivalent to GPIO_DT_SPEC_GET_BY_IDX(node_id, prop, 0).
 *
 * @param node_id devicetree node identifier
 * @param prop lowercase-and-underscores property name
 * @return static initializer for a struct gpio_dt_spec for the property
 * @see GPIO_DT_SPEC_GET_BY_IDX()
 */



/**
 * @brief Equivalent to
 *        GPIO_DT_SPEC_GET_BY_IDX_OR(node_id, prop, 0, default_value).
 *
 * @param node_id devicetree node identifier
 * @param prop lowercase-and-underscores property name
 * @param default_value fallback value to expand to
 * @return static initializer for a struct gpio_dt_spec for the property
 * @see GPIO_DT_SPEC_GET_BY_IDX_OR()
 */



/**
 * @brief Static initializer for a @p gpio_dt_spec from a DT_DRV_COMPAT
 * instance's GPIO property at an index.
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param prop lowercase-and-underscores property name
 * @param idx logical index into "prop"
 * @return static initializer for a struct gpio_dt_spec for the property
 * @see GPIO_DT_SPEC_GET_BY_IDX()
 */



/**
 * @brief Static initializer for a @p gpio_dt_spec from a DT_DRV_COMPAT
 *        instance's GPIO property at an index, with fallback
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param prop lowercase-and-underscores property name
 * @param idx logical index into "prop"
 * @param default_value fallback value to expand to
 * @return static initializer for a struct gpio_dt_spec for the property
 * @see GPIO_DT_SPEC_GET_BY_IDX()
 */





/**
 * @brief Equivalent to GPIO_DT_SPEC_INST_GET_BY_IDX(inst, prop, 0).
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param prop lowercase-and-underscores property name
 * @return static initializer for a struct gpio_dt_spec for the property
 * @see GPIO_DT_SPEC_INST_GET_BY_IDX()
 */



/**
 * @brief Equivalent to
 *        GPIO_DT_SPEC_INST_GET_BY_IDX_OR(inst, prop, 0, default_value).
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param prop lowercase-and-underscores property name
 * @param default_value fallback value to expand to
 * @return static initializer for a struct gpio_dt_spec for the property
 * @see GPIO_DT_SPEC_INST_GET_BY_IDX()
 */



/*
 * @cond INTERNAL_HIDDEN
 */

/**
 * Auxiliary conditional macro that generates a bitmask for the range
 * from @p "prop" array defined by the (off_idx, sz_idx) pair,
 * or 0 if the range does not exist.
 *
 * @param node_id devicetree node identifier
 * @param prop lowercase-and-underscores array property name
 * @param off_idx logical index of bitmask offset value into "prop" array
 * @param sz_idx logical index of bitmask size value into "prop" array
 */
# 461 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
/**
 * A helper conditional macro returning generated bitmask for one element
 * from @p "gpio-reserved-ranges"
 *
 * @param odd_it the value of an odd sequential iterator
 * @param node_id devicetree node identifier
 */
# 476 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
/**
 * @endcond
 */

/**
 * @brief Makes a bitmask of reserved GPIOs from DT @p "gpio-reserved-ranges"
 *        property and @p "ngpios" argument
 *
 * This macro returns the value as a bitmask of the @p "gpio-reserved-ranges"
 * property. This property defines the disabled (or 'reserved') GPIOs in the
 * range @p 0...ngpios-1 and is specified as an array of value's pairs that
 * define the start offset and size of the reserved ranges.
 *
 * For example, setting "gpio-reserved-ranges = <3 2>, <10 1>;"
 * means that GPIO offsets 3, 4 and 10 cannot be used even if @p ngpios = <18>.
 *
 * The implementation constraint is inherited from common DT limitations:
 * a maximum of 64 pairs can be used (with result limited to bitsize
 * of gpio_port_pins_t type).
 *
 * NB: Due to the nature of C macros, some incorrect tuple definitions
 *    (for example, overlapping or out of range) will produce undefined results.
 *
 *    Also be aware that if @p ngpios is less than 32 (bit size of DT int type),
 *    then all unused MSBs outside the range defined by @p ngpios will be
 *    marked as reserved too.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	a {
 *		compatible = "some,gpio-controller";
 *		ngpios = <32>;
 *		gpio-reserved-ranges = <0  4>, <5  3>, <9  5>, <11 2>, <15 2>,
 *					<18 2>, <21 1>, <23 1>, <25 4>, <30 2>;
 *	};
 *
 *	b {
 *		compatible = "some,gpio-controller";
 *		ngpios = <18>;
 *		gpio-reserved-ranges = <3 2>, <10 1>;
 *	};
 *
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *	struct some_config {
 *		uint32_t ngpios;
 *		uint32_t gpios_reserved;
 *	};
 *
 *	static const struct some_config dev_cfg_a = {
 *		.ngpios = DT_PROP_OR(DT_LABEL(a), ngpios, 0),
 *		.gpios_reserved = GPIO_DT_RESERVED_RANGES_NGPIOS(DT_LABEL(a),
 *					DT_PROP(DT_LABEL(a), ngpios)),
 *	};
 *
 *	static const struct some_config dev_cfg_b = {
 *		.ngpios = DT_PROP_OR(DT_LABEL(b), ngpios, 0),
 *		.gpios_reserved = GPIO_DT_RESERVED_RANGES_NGPIOS(DT_LABEL(b),
 *					DT_PROP(DT_LABEL(b), ngpios)),
 *	};
 *@endcode
 *
 * This expands to:
 *
 * @code{.c}
 *	struct some_config {
 *		uint32_t ngpios;
 *		uint32_t gpios_reserved;
 *	};
 *
 *	static const struct some_config dev_cfg_a = {
 *		.ngpios = 32,
 *		.gpios_reserved = 0xdeadbeef,
 *		               // 0b1101 1110 1010 1101 1011 1110 1110 1111
 *	};
 *	static const struct some_config dev_cfg_b = {
 *		.ngpios = 18,
 *		.gpios_reserved = 0xfffc0418,
 *		               // 0b1111 1111 1111 1100 0000 0100 0001 1000
 *		               // unused MSBs were marked as reserved too
 *	};
 * @endcode
 *
 * @param node_id GPIO controller node identifier.
 * @param ngpios number of GPIOs.
 * @return the bitmask of reserved gpios
 */
# 577 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
/**
 * @brief Makes a bitmask of reserved GPIOs from the @p "gpio-reserved-ranges"
 *        and @p "ngpios" DT properties values
 *
 * @param node_id GPIO controller node identifier.
 * @return the bitmask of reserved gpios
 */



/**
 * @brief Makes a bitmask of reserved GPIOs from a DT_DRV_COMPAT instance's
 *        @p "gpio-reserved-ranges" property and @p "ngpios" argument
 *
 * @param inst DT_DRV_COMPAT instance number
 * @return the bitmask of reserved gpios
 * @param ngpios  number of GPIOs
 * @see GPIO_DT_RESERVED_RANGES()
 */



/**
 * @brief Make a bitmask of reserved GPIOs from a DT_DRV_COMPAT instance's GPIO
 *        @p "gpio-reserved-ranges" and @p "ngpios" properties
 *
 * @param inst DT_DRV_COMPAT instance number
 * @return the bitmask of reserved gpios
 * @see GPIO_DT_RESERVED_RANGES()
 */



/**
 * @brief Makes a bitmask of allowed GPIOs from DT @p "gpio-reserved-ranges"
 *        property and @p "ngpios" argument
 *
 * This macro is paired with GPIO_DT_RESERVED_RANGES_NGPIOS(), however unlike
 * the latter, it returns a bitmask of ALLOWED gpios.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *	a {
 *		compatible = "some,gpio-controller";
 *		ngpios = <32>;
 *		gpio-reserved-ranges = <0 8>, <9 5>, <15 16>;
 *	};
 *
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *	struct some_config {
 *		uint32_t port_pin_mask;
 *	};
 *
 *	static const struct some_config dev_cfg = {
 *		.port_pin_mask = GPIO_DT_PORT_PIN_MASK_NGPIOS_EXC(
 *					DT_LABEL(a), 32),
 *	};
 * @endcode
 *
 * This expands to:
 *
 * @code{.c}
 *	struct some_config {
 *		uint32_t port_pin_mask;
 *	};
 *
 *	static const struct some_config dev_cfg = {
 *		.port_pin_mask = 0x80004100,
 *				// 0b1000 0000 0000 0000 0100 0001 00000 000
 *	};
 * @endcode
 *
 * @param node_id GPIO controller node identifier.
 * @param ngpios  number of GPIOs
 * @return the bitmask of allowed gpios
 */
# 669 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
/**
 * @brief Makes a bitmask of allowed GPIOs from a DT_DRV_COMPAT instance's
 *        @p "gpio-reserved-ranges" property and @p "ngpios" argument
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param ngpios number of GPIOs
 * @return the bitmask of allowed gpios
 * @see GPIO_DT_NGPIOS_PORT_PIN_MASK_EXC()
 */



/**
 * @brief Maximum number of pins that are supported by `gpio_port_pins_t`.
 */


/**
 * This structure is common to all GPIO drivers and is expected to be
 * the first element in the object pointed to by the config field
 * in the device structure.
 */
struct gpio_driver_config {
 /** Mask identifying pins supported by the controller.
	 *
	 * Initialization of this mask is the responsibility of device
	 * instance generation in the driver.
	 */
 gpio_port_pins_t port_pin_mask;
};

/**
 * This structure is common to all GPIO drivers and is expected to be the first
 * element in the driver's struct driver_data declaration.
 */
struct gpio_driver_data {
 /** Mask identifying pins that are configured as active low.
	 *
	 * Management of this mask is the responsibility of the
	 * wrapper functions in this header.
	 */
 gpio_port_pins_t invert;
};

struct gpio_callback;

/**
 * @typedef gpio_callback_handler_t
 * @brief Define the application callback handler function signature
 *
 * @param port Device struct for the GPIO device.
 * @param cb Original struct gpio_callback owning this handler
 * @param pins Mask of pins that triggers the callback handler
 *
 * Note: cb pointer can be used to retrieve private data through
 * CONTAINER_OF() if original struct gpio_callback is stored in
 * another private structure.
 */
typedef void (*gpio_callback_handler_t)(const struct device *port,
     struct gpio_callback *cb,
     gpio_port_pins_t pins);

/**
 * @brief GPIO callback structure
 *
 * Used to register a callback in the driver instance callback list.
 * As many callbacks as needed can be added as long as each of them
 * are unique pointers of struct gpio_callback.
 * Beware such structure should not be allocated on stack.
 *
 * Note: To help setting it, see gpio_init_callback() below
 */
struct gpio_callback {
 /** This is meant to be used in the driver and the user should not
	 * mess with it (see drivers/gpio/gpio_utils.h)
	 */
 sys_snode_t node;

 /** Actual callback function being called when relevant. */
 gpio_callback_handler_t handler;

 /** A mask of pins the callback is interested in, if 0 the callback
	 * will never be called. Such pin_mask can be modified whenever
	 * necessary by the owner, and thus will affect the handler being
	 * called or not. The selected pins must be configured to trigger
	 * an interrupt.
	 */
 gpio_port_pins_t pin_mask;
};

/**
 * @cond INTERNAL_HIDDEN
 *
 * For internal use only, skip these in public documentation.
 */

/* Used by driver api function pin_interrupt_configure, these are defined
 * in terms of the public flags so we can just mask and pass them
 * through to the driver api
 */
enum gpio_int_mode {
 GPIO_INT_MODE_DISABLED = (1U << 21),
 GPIO_INT_MODE_LEVEL = (1U << 22),
 GPIO_INT_MODE_EDGE = (1U << 22) | (1U << 24),




};

enum gpio_int_trig {
 /* Trigger detection when input state is (or transitions to)
	 * physical low. (Edge Falling or Active Low)
	 */
 GPIO_INT_TRIG_LOW = (1U << 25),
 /* Trigger detection when input state is (or transitions to)
	 * physical high. (Edge Rising or Active High) */
 GPIO_INT_TRIG_HIGH = (1U << 26),
 /* Trigger detection on pin rising or falling edge. */
 GPIO_INT_TRIG_BOTH = (1U << 25) | (1U << 26),
 /* Trigger a system wakeup. */
 GPIO_INT_TRIG_WAKE = (1 << 6),
};

 struct gpio_driver_api {
 int (*pin_configure)(const struct device *port, gpio_pin_t pin,
        gpio_flags_t flags);




 int (*port_get_raw)(const struct device *port,
       gpio_port_value_t *value);
 int (*port_set_masked_raw)(const struct device *port,
       gpio_port_pins_t mask,
       gpio_port_value_t value);
 int (*port_set_bits_raw)(const struct device *port,
     gpio_port_pins_t pins);
 int (*port_clear_bits_raw)(const struct device *port,
       gpio_port_pins_t pins);
 int (*port_toggle_bits)(const struct device *port,
    gpio_port_pins_t pins);
 int (*pin_interrupt_configure)(const struct device *port,
           gpio_pin_t pin,
           enum gpio_int_mode mode,
           enum gpio_int_trig trig);
 int (*manage_callback)(const struct device *port,
          struct gpio_callback *cb,
          bool set);
 uint32_t (*get_pending_int)(const struct device *dev);




};

/**
 * @endcond
 */

/**
 * @brief Validate that GPIO port is ready.
 *
 * @param spec GPIO specification from devicetree
 *
 * @retval true if the GPIO spec is ready for use.
 * @retval false if the GPIO spec is not ready for use.
 */
static inline bool gpio_is_ready_dt(const struct gpio_dt_spec *spec)
{
 /* Validate port is ready */
 return device_is_ready(spec->port);
}

/**
 * @brief Configure pin interrupt.
 *
 * @note This function can also be used to configure interrupts on pins
 *       not controlled directly by the GPIO module. That is, pins which are
 *       routed to other modules such as I2C, SPI, UART.
 *
 * @funcprops \isr_ok
 *
 * @param port Pointer to device structure for the driver instance.
 * @param pin Pin number.
 * @param flags Interrupt configuration flags as defined by GPIO_INT_*.
 *
 * @retval 0 If successful.
 * @retval -ENOSYS If the operation is not implemented by the driver.
 * @retval -ENOTSUP If any of the configuration options is not supported
 *                  (unless otherwise directed by flag documentation).
 * @retval -EINVAL  Invalid argument.
 * @retval -EBUSY   Interrupt line required to configure pin interrupt is
 *                  already in use.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_interrupt_configure(const struct device *port,
        gpio_pin_t pin,
        gpio_flags_t flags);

static inline int z_impl_gpio_pin_interrupt_configure(const struct device *port,
            gpio_pin_t pin,
            gpio_flags_t flags)
{
 const struct gpio_driver_api *api =
  (const struct gpio_driver_api *)port->api;
 __attribute__((__unused__)) const struct gpio_driver_config *const cfg =
  (const struct gpio_driver_config *)port->config;
 const struct gpio_driver_data *const data =
  (const struct gpio_driver_data *)port->data;
 enum gpio_int_trig trig;
 enum gpio_int_mode mode;
 int ret;

 do { } while (false);

 if (api->pin_interrupt_configure == 
# 886 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
                                    __null
# 886 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
                                        ) {
  do { } while (false);
  return -
# 888 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
         88 /* Function not implemented */
# 888 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
               ;
 }

 { }

                                               ;

 { }
                                              ;

 { }




                                    ;

 { }







              ;

 { }
                     ;

 if (((flags & (1U << 23)) != 0) &&
     ((data->invert & (gpio_port_pins_t)(1UL << (pin))) != 0)) {
  /* Invert signal bits */
  flags ^= ((1U << 25) | (1U << 26));
 }

 trig = (enum gpio_int_trig)(flags & ((1U << 25) | (1U << 26) | (1 << 6)));




 mode = (enum gpio_int_mode)(flags & ((1U << 24) | (1U << 21) | (1U << 22)));


 ret = api->pin_interrupt_configure(port, pin, mode, trig);
 do { } while (false);
 return ret;
}

/**
 * @brief Configure pin interrupts from a @p gpio_dt_spec.
 *
 * @funcprops \isr_ok
 *
 * This is equivalent to:
 *
 *     gpio_pin_interrupt_configure(spec->port, spec->pin, flags);
 *
 * The <tt>spec->dt_flags</tt> value is not used.
 *
 * @param spec GPIO specification from devicetree
 * @param flags interrupt configuration flags
 * @return a value from gpio_pin_interrupt_configure()
 */
static inline int gpio_pin_interrupt_configure_dt(const struct gpio_dt_spec *spec,
        gpio_flags_t flags)
{
 return gpio_pin_interrupt_configure(spec->port, spec->pin, flags);
}

/**
 * @brief Configure a single pin.
 *
 * @param port Pointer to device structure for the driver instance.
 * @param pin Pin number to configure.
 * @param flags Flags for pin configuration: 'GPIO input/output configuration
 *        flags', 'GPIO pin drive flags', 'GPIO pin bias flags'.
 *
 * @retval 0 If successful.
 * @retval -ENOTSUP if any of the configuration options is not supported
 *                  (unless otherwise directed by flag documentation).
 * @retval -EINVAL Invalid argument.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_configure(const struct device *port,
     gpio_pin_t pin,
     gpio_flags_t flags);

static inline int z_impl_gpio_pin_configure(const struct device *port,
         gpio_pin_t pin,
         gpio_flags_t flags)
{
 const struct gpio_driver_api *api =
  (const struct gpio_driver_api *)port->api;
 __attribute__((__unused__)) const struct gpio_driver_config *const cfg =
  (const struct gpio_driver_config *)port->config;
 struct gpio_driver_data *data =
  (struct gpio_driver_data *)port->data;
 int ret;

 do { } while (false);

 { }
                                       ;

 { }

                                                                ;

 { }
                                                                                  ;

 { }
                                       ;

 { }

                                                              ;

 { }

                                               ;

 if (((flags & (1U << 20)) != 0)
     && ((flags & ((1U << 18) | (1U << 19))) != 0)
     && ((flags & (1 << 0)) != 0)) {
  flags ^= (1U << 18) | (1U << 19);
 }

 flags &= ~(1U << 20);

 { }
                     ;

 if ((flags & (1 << 0)) != 0) {
  data->invert |= (gpio_port_pins_t)(1UL << (pin));
 } else {
  data->invert &= ~(gpio_port_pins_t)(1UL << (pin));
 }

 ret = api->pin_configure(port, pin, flags);
 do { } while (false);
 return ret;
}

/**
 * @brief Configure a single pin from a @p gpio_dt_spec and some extra flags.
 *
 * This is equivalent to:
 *
 *     gpio_pin_configure(spec->port, spec->pin, spec->dt_flags | extra_flags);
 *
 * @param spec GPIO specification from devicetree
 * @param extra_flags additional flags
 * @return a value from gpio_pin_configure()
 */
static inline int gpio_pin_configure_dt(const struct gpio_dt_spec *spec,
     gpio_flags_t extra_flags)
{
 return gpio_pin_configure(spec->port,
      spec->pin,
      spec->dt_flags | extra_flags);
}

/**
 * @brief Get direction of select pins in a port.
 *
 * Retrieve direction of each pin specified in @p map.
 *
 * If @p inputs or @p outputs is NULL, then this function does not get the
 * respective input or output direction information.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param map Bitmap of pin directions to query.
 * @param inputs Pointer to a variable where input directions will be stored.
 * @param outputs Pointer to a variable where output directions will be stored.
 *
 * @retval 0 If successful.
 * @retval -ENOSYS if the underlying driver does not support this call.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_get_direction(const struct device *port, gpio_port_pins_t map,
          gpio_port_pins_t *inputs, gpio_port_pins_t *outputs);
# 1095 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
/**
 * @brief Check if @p pin is configured for input
 *
 * @param port Pointer to device structure for the driver instance.
 * @param pin Pin number to query the direction of
 *
 * @retval 1 if @p pin is configured as @ref GPIO_INPUT.
 * @retval 0 if @p pin is not configured as @ref GPIO_INPUT.
 * @retval -ENOSYS if the underlying driver does not support this call.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_is_input(const struct device *port, gpio_pin_t pin)
{
 int rv;
 gpio_port_pins_t pins;
 __attribute__((__unused__)) const struct gpio_driver_config *cfg =
  (const struct gpio_driver_config *)port->config;

 { };

 rv = gpio_port_get_direction(port, (1UL << (pin)), &pins, 
# 1116 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
                                                    __null
# 1116 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
                                                        );
 if (rv < 0) {
  return rv;
 }

 return (int)!!((gpio_port_pins_t)(1UL << (pin)) & pins);
}

/**
 * @brief Check if a single pin from @p gpio_dt_spec is configured for input
 *
 * This is equivalent to:
 *
 *     gpio_pin_is_input(spec->port, spec->pin);
 *
 * @param spec GPIO specification from devicetree.
 *
 * @return A value from gpio_pin_is_input().
 */
static inline int gpio_pin_is_input_dt(const struct gpio_dt_spec *spec)
{
 return gpio_pin_is_input(spec->port, spec->pin);
}

/**
 * @brief Check if @p pin is configured for output
 *
 * @param port Pointer to device structure for the driver instance.
 * @param pin Pin number to query the direction of
 *
 * @retval 1 if @p pin is configured as @ref GPIO_OUTPUT.
 * @retval 0 if @p pin is not configured as @ref GPIO_OUTPUT.
 * @retval -ENOSYS if the underlying driver does not support this call.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_is_output(const struct device *port, gpio_pin_t pin)
{
 int rv;
 gpio_port_pins_t pins;
 __attribute__((__unused__)) const struct gpio_driver_config *cfg =
  (const struct gpio_driver_config *)port->config;

 { };

 rv = gpio_port_get_direction(port, (1UL << (pin)), 
# 1161 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
                                             __null
# 1161 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
                                                 , &pins);
 if (rv < 0) {
  return rv;
 }

 return (int)!!((gpio_port_pins_t)(1UL << (pin)) & pins);
}

/**
 * @brief Check if a single pin from @p gpio_dt_spec is configured for output
 *
 * This is equivalent to:
 *
 *     gpio_pin_is_output(spec->port, spec->pin);
 *
 * @param spec GPIO specification from devicetree.
 *
 * @return A value from gpio_pin_is_output().
 */
static inline int gpio_pin_is_output_dt(const struct gpio_dt_spec *spec)
{
 return gpio_pin_is_output(spec->port, spec->pin);
}

/**
 * @brief Get a configuration of a single pin.
 *
 * @param port Pointer to device structure for the driver instance.
 * @param pin Pin number which configuration is get.
 * @param flags Pointer to variable in which the current configuration will
 *              be stored if function is successful.
 *
 * @retval 0 If successful.
 * @retval -ENOSYS if getting current pin configuration is not implemented
 *                  by the driver.
 * @retval -EINVAL Invalid argument.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_get_config(const struct device *port, gpio_pin_t pin,
      gpio_flags_t *flags);
# 1225 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
/**
 * @brief Get a configuration of a single pin from a @p gpio_dt_spec.
 *
 * This is equivalent to:
 *
 *     gpio_pin_get_config(spec->port, spec->pin, flags);
 *
 * @param spec GPIO specification from devicetree
 * @param flags Pointer to variable in which the current configuration will
 *              be stored if function is successful.
 * @return a value from gpio_pin_configure()
 */
static inline int gpio_pin_get_config_dt(const struct gpio_dt_spec *spec,
     gpio_flags_t *flags)
{
 return gpio_pin_get_config(spec->port, spec->pin, flags);
}

/**
 * @brief Get physical level of all input pins in a port.
 *
 * A low physical level on the pin will be interpreted as value 0. A high
 * physical level will be interpreted as value 1. This function ignores
 * GPIO_ACTIVE_LOW flag.
 *
 * Value of a pin with index n will be represented by bit n in the returned
 * port value.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param value Pointer to a variable where pin values will be stored.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_get_raw(const struct device *port,
    gpio_port_value_t *value);

static inline int z_impl_gpio_port_get_raw(const struct device *port, gpio_port_value_t *value)
{
 const struct gpio_driver_api *api = (const struct gpio_driver_api *)port->api;
 int ret;

 do { } while (false);

 ret = api->port_get_raw(port, value);
 do { } while (false);
 return ret;
}

/**
 * @brief Get logical level of all input pins in a port.
 *
 * Get logical level of an input pin taking into account GPIO_ACTIVE_LOW flag.
 * If pin is configured as Active High, a low physical level will be interpreted
 * as logical value 0. If pin is configured as Active Low, a low physical level
 * will be interpreted as logical value 1.
 *
 * Value of a pin with index n will be represented by bit n in the returned
 * port value.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param value Pointer to a variable where pin values will be stored.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_get(const struct device *port,
    gpio_port_value_t *value)
{
 const struct gpio_driver_data *const data =
   (const struct gpio_driver_data *)port->data;
 int ret;

 ret = gpio_port_get_raw(port, value);
 if (ret == 0) {
  *value ^= data->invert;
 }

 return ret;
}

/**
 * @brief Set physical level of output pins in a port.
 *
 * Writing value 0 to the pin will set it to a low physical level. Writing
 * value 1 will set it to a high physical level. This function ignores
 * GPIO_ACTIVE_LOW flag.
 *
 * Pin with index n is represented by bit n in mask and value parameter.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param mask Mask indicating which pins will be modified.
 * @param value Value assigned to the output pins.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_set_masked_raw(const struct device *port,
           gpio_port_pins_t mask,
           gpio_port_value_t value);

static inline int z_impl_gpio_port_set_masked_raw(const struct device *port,
        gpio_port_pins_t mask,
        gpio_port_value_t value)
{
 const struct gpio_driver_api *api =
  (const struct gpio_driver_api *)port->api;
 int ret;

 do { } while (false);

 ret = api->port_set_masked_raw(port, mask, value);
 do { } while (false);
 return ret;
}

/**
 * @brief Set logical level of output pins in a port.
 *
 * Set logical level of an output pin taking into account GPIO_ACTIVE_LOW flag.
 * Value 0 sets the pin in logical 0 / inactive state. Value 1 sets the pin in
 * logical 1 / active state. If pin is configured as Active High, the default,
 * setting it in inactive state will force the pin to a low physical level. If
 * pin is configured as Active Low, setting it in inactive state will force the
 * pin to a high physical level.
 *
 * Pin with index n is represented by bit n in mask and value parameter.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param mask Mask indicating which pins will be modified.
 * @param value Value assigned to the output pins.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_set_masked(const struct device *port,
           gpio_port_pins_t mask,
           gpio_port_value_t value)
{
 const struct gpio_driver_data *const data =
   (const struct gpio_driver_data *)port->data;

 value ^= data->invert;

 return gpio_port_set_masked_raw(port, mask, value);
}

/**
 * @brief Set physical level of selected output pins to high.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pins Value indicating which pins will be modified.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_set_bits_raw(const struct device *port,
         gpio_port_pins_t pins);

static inline int z_impl_gpio_port_set_bits_raw(const struct device *port,
      gpio_port_pins_t pins)
{
 const struct gpio_driver_api *api =
  (const struct gpio_driver_api *)port->api;
 int ret;

 do { } while (false);

 ret = api->port_set_bits_raw(port, pins);
 do { } while (false);
 return ret;
}

/**
 * @brief Set logical level of selected output pins to active.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pins Value indicating which pins will be modified.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_set_bits(const struct device *port,
         gpio_port_pins_t pins)
{
 return gpio_port_set_masked(port, pins, pins);
}

/**
 * @brief Set physical level of selected output pins to low.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pins Value indicating which pins will be modified.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_clear_bits_raw(const struct device *port,
           gpio_port_pins_t pins);

static inline int z_impl_gpio_port_clear_bits_raw(const struct device *port,
        gpio_port_pins_t pins)
{
 const struct gpio_driver_api *api =
  (const struct gpio_driver_api *)port->api;
 int ret;

 do { } while (false);

 ret = api->port_clear_bits_raw(port, pins);
 do { } while (false);
 return ret;
}

/**
 * @brief Set logical level of selected output pins to inactive.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pins Value indicating which pins will be modified.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_clear_bits(const struct device *port,
           gpio_port_pins_t pins)
{
 return gpio_port_set_masked(port, pins, 0);
}

/**
 * @brief Toggle level of selected output pins.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pins Value indicating which pins will be modified.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_toggle_bits(const struct device *port,
        gpio_port_pins_t pins);

static inline int z_impl_gpio_port_toggle_bits(const struct device *port,
            gpio_port_pins_t pins)
{
 const struct gpio_driver_api *api =
  (const struct gpio_driver_api *)port->api;
 int ret;

 do { } while (false);

 ret = api->port_toggle_bits(port, pins);
 do { } while (false);
 return ret;
}

/**
 * @brief Set physical level of selected output pins.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param set_pins Value indicating which pins will be set to high.
 * @param clear_pins Value indicating which pins will be set to low.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_set_clr_bits_raw(const struct device *port,
          gpio_port_pins_t set_pins,
          gpio_port_pins_t clear_pins)
{
 { };

 return gpio_port_set_masked_raw(port, set_pins | clear_pins, set_pins);
}

/**
 * @brief Set logical level of selected output pins.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param set_pins Value indicating which pins will be set to active.
 * @param clear_pins Value indicating which pins will be set to inactive.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_port_set_clr_bits(const struct device *port,
      gpio_port_pins_t set_pins,
      gpio_port_pins_t clear_pins)
{
 { };

 return gpio_port_set_masked(port, set_pins | clear_pins, set_pins);
}

/**
 * @brief Get physical level of an input pin.
 *
 * A low physical level on the pin will be interpreted as value 0. A high
 * physical level will be interpreted as value 1. This function ignores
 * GPIO_ACTIVE_LOW flag.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pin Pin number.
 *
 * @retval 1 If pin physical level is high.
 * @retval 0 If pin physical level is low.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_get_raw(const struct device *port, gpio_pin_t pin)
{
 __attribute__((__unused__)) const struct gpio_driver_config *const cfg =
  (const struct gpio_driver_config *)port->config;
 gpio_port_value_t value;
 int ret;

 { }
                     ;

 ret = gpio_port_get_raw(port, &value);
 if (ret == 0) {
  ret = (value & (gpio_port_pins_t)(1UL << (pin))) != 0 ? 1 : 0;
 }

 return ret;
}

/**
 * @brief Get logical level of an input pin.
 *
 * Get logical level of an input pin taking into account GPIO_ACTIVE_LOW flag.
 * If pin is configured as Active High, a low physical level will be interpreted
 * as logical value 0. If pin is configured as Active Low, a low physical level
 * will be interpreted as logical value 1.
 *
 * Note: If pin is configured as Active High, the default, gpio_pin_get()
 *       function is equivalent to gpio_pin_get_raw().
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pin Pin number.
 *
 * @retval 1 If pin logical value is 1 / active.
 * @retval 0 If pin logical value is 0 / inactive.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_get(const struct device *port, gpio_pin_t pin)
{
 __attribute__((__unused__)) const struct gpio_driver_config *const cfg =
  (const struct gpio_driver_config *)port->config;
 gpio_port_value_t value;
 int ret;

 { }
                     ;

 ret = gpio_port_get(port, &value);
 if (ret == 0) {
  ret = (value & (gpio_port_pins_t)(1UL << (pin))) != 0 ? 1 : 0;
 }

 return ret;
}

/**
 * @brief Get logical level of an input pin from a @p gpio_dt_spec.
 *
 * This is equivalent to:
 *
 *     gpio_pin_get(spec->port, spec->pin);
 *
 * @param spec GPIO specification from devicetree
 * @return a value from gpio_pin_get()
 */
static inline int gpio_pin_get_dt(const struct gpio_dt_spec *spec)
{
 return gpio_pin_get(spec->port, spec->pin);
}

/**
 * @brief Set physical level of an output pin.
 *
 * Writing value 0 to the pin will set it to a low physical level. Writing any
 * value other than 0 will set it to a high physical level. This function
 * ignores GPIO_ACTIVE_LOW flag.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pin Pin number.
 * @param value Value assigned to the pin.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_set_raw(const struct device *port, gpio_pin_t pin,
       int value)
{
 __attribute__((__unused__)) const struct gpio_driver_config *const cfg =
  (const struct gpio_driver_config *)port->config;
 int ret;

 { }
                     ;

 if (value != 0) {
  ret = gpio_port_set_bits_raw(port, (gpio_port_pins_t)(1UL << (pin)));
 } else {
  ret = gpio_port_clear_bits_raw(port, (gpio_port_pins_t)(1UL << (pin)));
 }

 return ret;
}

/**
 * @brief Set logical level of an output pin.
 *
 * Set logical level of an output pin taking into account GPIO_ACTIVE_LOW flag.
 * Value 0 sets the pin in logical 0 / inactive state. Any value other than 0
 * sets the pin in logical 1 / active state. If pin is configured as Active
 * High, the default, setting it in inactive state will force the pin to a low
 * physical level. If pin is configured as Active Low, setting it in inactive
 * state will force the pin to a high physical level.
 *
 * Note: If pin is configured as Active High, gpio_pin_set() function is
 *       equivalent to gpio_pin_set_raw().
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pin Pin number.
 * @param value Value assigned to the pin.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_set(const struct device *port, gpio_pin_t pin,
          int value)
{
 __attribute__((__unused__)) const struct gpio_driver_config *const cfg =
  (const struct gpio_driver_config *)port->config;
 const struct gpio_driver_data *const data =
   (const struct gpio_driver_data *)port->data;

 { }
                     ;

 if (data->invert & (gpio_port_pins_t)(1UL << (pin))) {
  value = (value != 0) ? 0 : 1;
 }

 return gpio_pin_set_raw(port, pin, value);
}

/**
 * @brief Set logical level of a output pin from a @p gpio_dt_spec.
 *
 * This is equivalent to:
 *
 *     gpio_pin_set(spec->port, spec->pin, value);
 *
 * @param spec GPIO specification from devicetree
 * @param value Value assigned to the pin.
 * @return a value from gpio_pin_set()
 */
static inline int gpio_pin_set_dt(const struct gpio_dt_spec *spec, int value)
{
 return gpio_pin_set(spec->port, spec->pin, value);
}

/**
 * @brief Toggle pin level.
 *
 * @param port Pointer to the device structure for the driver instance.
 * @param pin Pin number.
 *
 * @retval 0 If successful.
 * @retval -EIO I/O error when accessing an external GPIO chip.
 * @retval -EWOULDBLOCK if operation would block.
 */
static inline int gpio_pin_toggle(const struct device *port, gpio_pin_t pin)
{
 __attribute__((__unused__)) const struct gpio_driver_config *const cfg =
  (const struct gpio_driver_config *)port->config;

 { }
                     ;

 return gpio_port_toggle_bits(port, (gpio_port_pins_t)(1UL << (pin)));
}

/**
 * @brief Toggle pin level from a @p gpio_dt_spec.
 *
 * This is equivalent to:
 *
 *     gpio_pin_toggle(spec->port, spec->pin);
 *
 * @param spec GPIO specification from devicetree
 * @return a value from gpio_pin_toggle()
 */
static inline int gpio_pin_toggle_dt(const struct gpio_dt_spec *spec)
{
 return gpio_pin_toggle(spec->port, spec->pin);
}

/**
 * @brief Helper to initialize a struct gpio_callback properly
 * @param callback A valid Application's callback structure pointer.
 * @param handler A valid handler function pointer.
 * @param pin_mask A bit mask of relevant pins for the handler
 */
static inline void gpio_init_callback(struct gpio_callback *callback,
          gpio_callback_handler_t handler,
          gpio_port_pins_t pin_mask)
{
 do { } while (false);

 { };
 { };

 callback->handler = handler;
 callback->pin_mask = pin_mask;

 do { } while (false);
}

/**
 * @brief Add an application callback.
 * @param port Pointer to the device structure for the driver instance.
 * @param callback A valid Application's callback structure pointer.
 * @retval 0 If successful
 * @retval -ENOSYS If driver does not implement the operation
 * @retval -errno Other negative errno code on failure.
 *
 * @note Callbacks may be added to the device from within a callback
 * handler invocation, but whether they are invoked for the current
 * GPIO event is not specified.
 *
 * Note: enables to add as many callback as needed on the same port.
 */
static inline int gpio_add_callback(const struct device *port,
        struct gpio_callback *callback)
{
 const struct gpio_driver_api *api =
  (const struct gpio_driver_api *)port->api;
 int ret;

 do { } while (false);

 if (api->manage_callback == 
# 1783 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
                            __null
# 1783 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
                                ) {
  do { } while (false);
  return -
# 1785 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
         88 /* Function not implemented */
# 1785 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
               ;
 }

 ret = api->manage_callback(port, callback, true);
 do { } while (false);
 return ret;
}

/**
 * @brief Add an application callback.
 *
 * This is equivalent to:
 *
 *     gpio_add_callback(spec->port, callback);
 *
 * @param spec GPIO specification from devicetree.
 * @param callback A valid application's callback structure pointer.
 * @return a value from gpio_add_callback().
 */
static inline int gpio_add_callback_dt(const struct gpio_dt_spec *spec,
           struct gpio_callback *callback)
{
 return gpio_add_callback(spec->port, callback);
}

/**
 * @brief Remove an application callback.
 * @param port Pointer to the device structure for the driver instance.
 * @param callback A valid application's callback structure pointer.
 * @retval 0 If successful
 * @retval -ENOSYS If driver does not implement the operation
 * @retval -errno Other negative errno code on failure.
 *
 * @warning It is explicitly permitted, within a callback handler, to
 * remove the registration for the callback that is running, i.e. @p
 * callback.  Attempts to remove other registrations on the same
 * device may result in undefined behavior, including failure to
 * invoke callbacks that remain registered and unintended invocation
 * of removed callbacks.
 *
 * Note: enables to remove as many callbacks as added through
 *       gpio_add_callback().
 */
static inline int gpio_remove_callback(const struct device *port,
           struct gpio_callback *callback)
{
 const struct gpio_driver_api *api =
  (const struct gpio_driver_api *)port->api;
 int ret;

 do { } while (false);

 if (api->manage_callback == 
# 1837 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
                            __null
# 1837 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
                                ) {
  do { } while (false);
  return -
# 1839 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
         88 /* Function not implemented */
# 1839 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
               ;
 }

 ret = api->manage_callback(port, callback, false);
 do { } while (false);
 return ret;
}

/**
 * @brief Remove an application callback.
 *
 * This is equivalent to:
 *
 *     gpio_remove_callback(spec->port, callback);
 *
 * @param spec GPIO specification from devicetree.
 * @param callback A valid application's callback structure pointer.
 * @return a value from gpio_remove_callback().
 */
static inline int gpio_remove_callback_dt(const struct gpio_dt_spec *spec,
       struct gpio_callback *callback)
{
 return gpio_remove_callback(spec->port, callback);
}

/**
 * @brief Function to get pending interrupts
 *
 * The purpose of this function is to return the interrupt
 * status register for the device.
 * This is especially useful when waking up from
 * low power states to check the wake up source.
 *
 * @param dev Pointer to the device structure for the driver instance.
 *
 * @retval status != 0 if at least one gpio interrupt is pending.
 * @retval 0 if no gpio interrupt is pending.
 * @retval -ENOSYS If driver does not implement the operation
 */
static inline int gpio_get_pending_int(const struct device *dev);

static inline int z_impl_gpio_get_pending_int(const struct device *dev)
{
 const struct gpio_driver_api *api =
  (const struct gpio_driver_api *)dev->api;
 int ret;

 do { } while (false);

 if (api->get_pending_int == 
# 1888 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
                            __null
# 1888 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
                                ) {
  do { } while (false);
  return -
# 1890 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 3 4
         88 /* Function not implemented */
# 1890 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h"
               ;
 }

 ret = api->get_pending_int(dev);
 do { } while (false);
 return ret;
}

/**
 * @}
 */


}


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h" 1
/* auto-generated by gen_syscalls.py, don't edit */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_syscall.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 8 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h" 2



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* auto-generated by gen_syscalls.py, don't edit */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h" 2



extern "C" {


extern int z_impl_gpio_pin_interrupt_configure(const struct device * port, gpio_pin_t pin, gpio_flags_t flags);


static inline int gpio_pin_interrupt_configure(const struct device * port, gpio_pin_t pin, gpio_flags_t flags)
{
# 36 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_pin_interrupt_configure(port, pin, flags);
}
# 48 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
extern int z_impl_gpio_pin_configure(const struct device * port, gpio_pin_t pin, gpio_flags_t flags);


static inline int gpio_pin_configure(const struct device * port, gpio_pin_t pin, gpio_flags_t flags)
{
# 61 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_pin_configure(port, pin, flags);
}
# 73 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
extern int z_impl_gpio_port_get_direction(const struct device * port, gpio_port_pins_t map, gpio_port_pins_t * inputs, gpio_port_pins_t * outputs);


static inline int gpio_port_get_direction(const struct device * port, gpio_port_pins_t map, gpio_port_pins_t * inputs, gpio_port_pins_t * outputs)
{
# 87 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_port_get_direction(port, map, inputs, outputs);
}
# 99 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
extern int z_impl_gpio_pin_get_config(const struct device * port, gpio_pin_t pin, gpio_flags_t * flags);


static inline int gpio_pin_get_config(const struct device * port, gpio_pin_t pin, gpio_flags_t * flags)
{
# 112 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_pin_get_config(port, pin, flags);
}
# 124 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
extern int z_impl_gpio_port_get_raw(const struct device * port, gpio_port_value_t * value);


static inline int gpio_port_get_raw(const struct device * port, gpio_port_value_t * value)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_port_get_raw(port, value);
}
# 148 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
extern int z_impl_gpio_port_set_masked_raw(const struct device * port, gpio_port_pins_t mask, gpio_port_value_t value);


static inline int gpio_port_set_masked_raw(const struct device * port, gpio_port_pins_t mask, gpio_port_value_t value)
{
# 161 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_port_set_masked_raw(port, mask, value);
}
# 173 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
extern int z_impl_gpio_port_set_bits_raw(const struct device * port, gpio_port_pins_t pins);


static inline int gpio_port_set_bits_raw(const struct device * port, gpio_port_pins_t pins)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_port_set_bits_raw(port, pins);
}
# 197 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
extern int z_impl_gpio_port_clear_bits_raw(const struct device * port, gpio_port_pins_t pins);


static inline int gpio_port_clear_bits_raw(const struct device * port, gpio_port_pins_t pins)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_port_clear_bits_raw(port, pins);
}
# 221 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
extern int z_impl_gpio_port_toggle_bits(const struct device * port, gpio_port_pins_t pins);


static inline int gpio_port_toggle_bits(const struct device * port, gpio_port_pins_t pins)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_port_toggle_bits(port, pins);
}
# 245 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
extern int z_impl_gpio_get_pending_int(const struct device * dev);


static inline int gpio_get_pending_int(const struct device * dev)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_gpio_get_pending_int(dev);
}
# 269 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/gpio.h"
}
# 1907 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/gpio.h" 2
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 1
/*
 * Copyright (c) 2016 Intel Corporation.
 * Copyright (c) 2020-2021 Vestas Wind Systems A/S
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Public PWM Driver APIs
 */




/**
 * @brief PWM Interface
 * @defgroup pwm_interface PWM Interface
 * @since 1.0
 * @version 1.0.0
 * @ingroup io_interfaces
 * @{
 */

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h"
/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 1
/*
 * SPDX-License-Identifier: Apache-2.0
 * Copyright (c) 2020 Nordic Semiconductor
 * Copyright (c) 2020, Linaro Ltd.
 *
 * Not a generated file. Feel free to modify.
 */

/**
 * @file
 * @brief Devicetree main header
 *
 * API for accessing the current application's devicetree macros.
 */
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys_clock.h" 1
/*
 * Copyright (c) 2014-2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Variables needed for system clock
 *
 *
 * Declare variables used by both system timer device driver and kernel
 * components that use timer functionality.
 */
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras.h" 1
/*
 * Copyright (c) 2019 Facebook.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @brief Extra arithmetic and bit manipulation functions.
 * @defgroup math_extras Math extras
 * @ingroup utilities
 *
 * Portable wrapper functions for a number of arithmetic and bit-counting functions that are often
 * provided by compiler builtins. If the compiler does not have an appropriate builtin, a portable C
 * implementation is used instead.
 *
 * @{
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras.h" 2


# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras.h"
/**
 * @name Unsigned integer addition with overflow detection.
 *
 * These functions compute `a + b` and store the result in `*result`, returning
 * true if the operation overflowed.
 */
/**@{*/

/**
 * @brief Add two unsigned 16-bit integers.
 * @param a First operand.
 * @param b Second operand.
 * @param result Pointer to the result.
 * @return true if the operation overflowed.
 */
static bool u16_add_overflow(uint16_t a, uint16_t b, uint16_t *result);

/**
 * @brief Add two unsigned 32-bit integers.
 * @param a First operand.
 * @param b Second operand.
 * @param result Pointer to the result.
 * @return true if the operation overflowed.
 */

static bool u32_add_overflow(uint32_t a, uint32_t b, uint32_t *result);

/**
 * @brief Add two unsigned 64-bit integers.
 * @param a First operand.
 * @param b Second operand.
 * @param result Pointer to the result.
 * @return true if the operation overflowed.
 */
static bool u64_add_overflow(uint64_t a, uint64_t b, uint64_t *result);

/**
 * @brief Add two size_t integers.
 * @param a First operand.
 * @param b Second operand.
 * @param result Pointer to the result.
 * @return true if the operation overflowed.
 */
static bool size_add_overflow(size_t a, size_t b, size_t *result);

/**@}*/

/**
 * @name Unsigned integer multiplication with overflow detection.
 *
 * These functions compute `a * b` and store the result in `*result`, returning
 * true if the operation overflowed.
 */
/**@{*/

/**
 * @brief Multiply two unsigned 16-bit integers.
 * @param a First operand.
 * @param b Second operand.
 * @param result Pointer to the result.
 * @return true if the operation overflowed.
 */
static bool u16_mul_overflow(uint16_t a, uint16_t b, uint16_t *result);

/**
 * @brief Multiply two unsigned 32-bit integers.
 * @param a First operand.
 * @param b Second operand.
 * @param result Pointer to the result.
 * @return true if the operation overflowed.
 */

static bool u32_mul_overflow(uint32_t a, uint32_t b, uint32_t *result);
/**
 * @brief Multiply two unsigned 64-bit integers.
 * @param a First operand.
 * @param b Second operand.
 * @param result Pointer to the result.
 * @return true if the operation overflowed.
 */
static bool u64_mul_overflow(uint64_t a, uint64_t b, uint64_t *result);

/**
 * @brief Multiply two size_t integers.
 * @param a First operand.
 * @param b Second operand.
 * @param result Pointer to the result.
 * @return true if the operation overflowed.
 */
static bool size_mul_overflow(size_t a, size_t b, size_t *result);

/**@}*/

/**
 * @name Count leading zeros.
 *
 * Count the number of leading zero bits in the bitwise representation of `x`.
 * When `x = 0`, this is the size of `x` in bits.
 */
/**@{*/

/**
 * @brief Count the number of leading zero bits in a 32-bit integer.
 * @param x Integer to count leading zeros in.
 * @return Number of leading zero bits in `x`.
 */
static int u32_count_leading_zeros(uint32_t x);

/**
 * @brief Count the number of leading zero bits in a 64-bit integer.
 * @param x Integer to count leading zeros in.
 * @return Number of leading zero bits in `x`.
 */
static int u64_count_leading_zeros(uint64_t x);

/**@}*/

/**
 * @name Count trailing zeros.
 *
 * Count the number of trailing zero bits in the bitwise representation of `x`.
 * When `x = 0`, this is the size of `x` in bits.
 */
/**@{*/

/**
 * @brief Count the number of trailing zero bits in a 32-bit integer.
 * @param x Integer to count trailing zeros in.
 * @return Number of trailing zero bits in `x`.
 */
static int u32_count_trailing_zeros(uint32_t x);

/**
 * @brief Count the number of trailing zero bits in a 64-bit integer.
 * @param x Integer to count trailing zeros in.
 * @return Number of trailing zero bits in `x`.
 */
static int u64_count_trailing_zeros(uint64_t x);

/**@}*/

/**@}*/

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras_impl.h" 1
/*
 * Copyright (c) 2019 Facebook.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Inline implementation of functions declared in math_extras.h.
 */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras_impl.h" 2

/*
 * Force the use of portable C code (no builtins) by defining
 * PORTABLE_MISC_MATH_EXTRAS before including <misc/math_extras.h>.
 * This is primarily for use by tests.
 *
 * We'll #undef use_builtin again at the end of the file.
 */







static inline bool u16_add_overflow(uint16_t a, uint16_t b, uint16_t *result)
{
 return __builtin_add_overflow(a, b, result);
}

static inline bool u32_add_overflow(uint32_t a, uint32_t b, uint32_t *result)
{
 return __builtin_add_overflow(a, b, result);
}

static inline bool u64_add_overflow(uint64_t a, uint64_t b, uint64_t *result)
{
 return __builtin_add_overflow(a, b, result);
}

static inline bool size_add_overflow(size_t a, size_t b, size_t *result)
{
 return __builtin_add_overflow(a, b, result);
}
# 90 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras_impl.h"
static inline bool u16_mul_overflow(uint16_t a, uint16_t b, uint16_t *result)
{
 return __builtin_mul_overflow(a, b, result);
}

static inline bool u32_mul_overflow(uint32_t a, uint32_t b, uint32_t *result)
{
 return __builtin_mul_overflow(a, b, result);
}

static inline bool u64_mul_overflow(uint64_t a, uint64_t b, uint64_t *result)
{
 return __builtin_mul_overflow(a, b, result);
}

static inline bool size_mul_overflow(size_t a, size_t b, size_t *result)
{
 return __builtin_mul_overflow(a, b, result);
}
# 148 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras_impl.h"
/*
 * The GCC builtins __builtin_clz(), __builtin_ctz(), and 64-bit
 * variants are described by the GCC documentation as having undefined
 * behavior when the argument is zero. See
 * https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html.
 *
 * The undefined behavior applies to all architectures, regardless of
 * the behavior of the instruction used to implement the builtin.
 *
 * We don't want to expose users of this API to the undefined behavior,
 * so we use a conditional to explicitly provide the correct result when
 * x=0.
 *
 * Most instruction set architectures have a CLZ instruction or similar
 * that already computes the correct result for x=0. Both GCC and Clang
 * know this and simply generate a CLZ instruction, optimizing away the
 * conditional.
 *
 * For x86, and for compilers that fail to eliminate the conditional,
 * there is often another opportunity for optimization since code using
 * these functions tends to contain a zero check already. For example,
 * from kernel/sched.c:
 *
 *	struct k_thread *z_priq_mq_best(struct _priq_mq *pq)
 *	{
 *		if (!pq->bitmask) {
 *			return NULL;
 *		}
 *
 *		struct k_thread *thread = NULL;
 *		sys_dlist_t *l =
 *			&pq->queues[u32_count_trailing_zeros(pq->bitmask)];
 *
 *		...
 *
 * The compiler will often be able to eliminate the redundant x == 0
 * check after inlining the call to u32_count_trailing_zeros().
 */


static inline int u32_count_leading_zeros(uint32_t x)
{
 return (x == 0) ? 32 : __builtin_clz(x);
}
# 206 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras_impl.h"
static inline int u64_count_leading_zeros(uint64_t x)
{
 return (x == 0) ? 64 : __builtin_clzll(x);
}
# 222 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras_impl.h"
static inline int u32_count_trailing_zeros(uint32_t x)
{
 return (x == 0) ? 32 : __builtin_ctz(x);
}
# 240 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras_impl.h"
static inline int u64_count_trailing_zeros(uint64_t x)
{
 return (x == 0) ? 64 : __builtin_ctzll(x);
}
# 170 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/math_extras.h" 2
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/dt-bindings/pwm/pwm.h" 1
/*
 * Copyright (c) 2019 Vestas Wind Systems A/S
 *
 * SPDX-License-Identifier: Apache-2.0
 */



/**
 * @brief PWM Interface
 * @defgroup pwm_interface PWM Interface
 * @ingroup io_interfaces
 * @{
 */

/**
 * @name PWM period set helpers
 * The period cell in the PWM specifier needs to be provided in nanoseconds.
 * However, in some applications it is more convenient to use another scale.
 * @{
 */

/** Specify PWM period in nanoseconds */

/** Specify PWM period in microseconds */

/** Specify PWM period in milliseconds */

/** Specify PWM period in seconds */

/** Specify PWM frequency in hertz */

/** Specify PWM frequency in kilohertz */


/** @} */

/**
 * @name PWM polarity flags
 * The `PWM_POLARITY_*` flags are used with pwm_set_cycles(), pwm_set()
 * or pwm_configure_capture() to specify the polarity of a PWM channel.
 *
 * The flags are on the lower 8bits of the pwm_flags_t
 * @{
 */
/** PWM pin normal polarity (active-high pulse). */


/** PWM pin inverted polarity (active-low pulse). */


/** @cond INTERNAL_HIDDEN */

/** @endcond */
/** @} */

/** @} */
# 35 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 2


extern "C" {


/**
 * @name PWM capture configuration flags
 * @anchor PWM_CAPTURE_FLAGS
 * @{
 */

/** @cond INTERNAL_HIDDEN */
/* Bit 0 is used for PWM_POLARITY_NORMAL/PWM_POLARITY_INVERTED */




/** @endcond */

/** PWM pin capture captures period. */


/** PWM pin capture captures pulse width. */


/** PWM pin capture captures both period and pulse width. */



/** PWM pin capture captures a single period/pulse width. */


/** PWM pin capture captures period/pulse width continuously. */


/** @} */

/**
 * @brief Provides a type to hold PWM configuration flags.
 *
 * The lower 8 bits are used for standard flags.
 * The upper 8 bits are reserved for SoC specific flags.
 *
 * @see @ref PWM_CAPTURE_FLAGS.
 */

typedef uint16_t pwm_flags_t;

/**
 * @brief Container for PWM information specified in devicetree.
 *
 * This type contains a pointer to a PWM device, channel number (controlled by
 * the PWM device), the PWM signal period in nanoseconds and the flags
 * applicable to the channel. Note that not all PWM drivers support flags. In
 * such case, flags will be set to 0.
 *
 * @see PWM_DT_SPEC_GET_BY_NAME
 * @see PWM_DT_SPEC_GET_BY_NAME_OR
 * @see PWM_DT_SPEC_GET_BY_IDX
 * @see PWM_DT_SPEC_GET_BY_IDX_OR
 * @see PWM_DT_SPEC_GET
 * @see PWM_DT_SPEC_GET_OR
 */
struct pwm_dt_spec {
 /** PWM device instance. */
 const struct device *dev;
 /** Channel number. */
 uint32_t channel;
 /** Period in nanoseconds. */
 uint32_t period;
 /** Flags. */
 pwm_flags_t flags;
};

/**
 * @brief Static initializer for a struct pwm_dt_spec
 *
 * This returns a static initializer for a struct pwm_dt_spec given a devicetree
 * node identifier and an index.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *    n: node {
 *        pwms = <&pwm1 1 1000 PWM_POLARITY_NORMAL>,
 *               <&pwm2 3 2000 PWM_POLARITY_INVERTED>;
 *        pwm-names = "alpha", "beta";
 *    };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *    const struct pwm_dt_spec spec =
 *        PWM_DT_SPEC_GET_BY_NAME(DT_NODELABEL(n), alpha);
 *
 *    // Initializes 'spec' to:
 *    // {
 *    //         .dev = DEVICE_DT_GET(DT_NODELABEL(pwm1)),
 *    //         .channel = 1,
 *    //         .period = 1000,
 *    //         .flags = PWM_POLARITY_NORMAL,
 *    // }
 * @endcode
 *
 * The device (dev) must still be checked for readiness, e.g. using
 * device_is_ready(). It is an error to use this macro unless the node exists,
 * has the 'pwms' property, and that 'pwms' property specifies a PWM controller,
 * a channel, a period in nanoseconds and optionally flags.
 *
 * @param node_id Devicetree node identifier.
 * @param name Lowercase-and-underscores name of a pwms element as defined by
 *             the node's pwm-names property.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property.
 *
 * @see PWM_DT_SPEC_INST_GET_BY_NAME
 */
# 161 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
/**
 * @brief Static initializer for a struct pwm_dt_spec from a DT_DRV_COMPAT
 *        instance.
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param name Lowercase-and-underscores name of a pwms element as defined by
 *             the node's pwm-names property.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property.
 *
 * @see PWM_DT_SPEC_GET_BY_NAME
 */



/**
 * @brief Like PWM_DT_SPEC_GET_BY_NAME(), with a fallback to a default value.
 *
 * If the devicetree node identifier 'node_id' refers to a node with a property
 * 'pwms', this expands to <tt>PWM_DT_SPEC_GET_BY_NAME(node_id, name)</tt>. The
 * @p default_value parameter is not expanded in this case. Otherwise, this
 * expands to @p default_value.
 *
 * @param node_id Devicetree node identifier.
 * @param name Lowercase-and-underscores name of a pwms element as defined by
 *             the node's pwm-names property
 * @param default_value Fallback value to expand to.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property,
 *         or @p default_value if the node or property do not exist.
 *
 * @see PWM_DT_SPEC_INST_GET_BY_NAME_OR
 */





/**
 * @brief Like PWM_DT_SPEC_INST_GET_BY_NAME(), with a fallback to a default
 *        value.
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param name Lowercase-and-underscores name of a pwms element as defined by
 *             the node's pwm-names property.
 * @param default_value Fallback value to expand to.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property,
 *         or @p default_value if the node or property do not exist.
 *
 * @see PWM_DT_SPEC_GET_BY_NAME_OR
 */



/**
 * @brief Static initializer for a struct pwm_dt_spec
 *
 * This returns a static initializer for a struct pwm_dt_spec given a devicetree
 * node identifier and an index.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 *    n: node {
 *        pwms = <&pwm1 1 1000 PWM_POLARITY_NORMAL>,
 *               <&pwm2 3 2000 PWM_POLARITY_INVERTED>;
 *    };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 *    const struct pwm_dt_spec spec =
 *        PWM_DT_SPEC_GET_BY_IDX(DT_NODELABEL(n), 1);
 *
 *    // Initializes 'spec' to:
 *    // {
 *    //         .dev = DEVICE_DT_GET(DT_NODELABEL(pwm2)),
 *    //         .channel = 3,
 *    //         .period = 2000,
 *    //         .flags = PWM_POLARITY_INVERTED,
 *    // }
 * @endcode
 *
 * The device (dev) must still be checked for readiness, e.g. using
 * device_is_ready(). It is an error to use this macro unless the node exists,
 * has the 'pwms' property, and that 'pwms' property specifies a PWM controller,
 * a channel, a period in nanoseconds and optionally flags.
 *
 * @param node_id Devicetree node identifier.
 * @param idx Logical index into 'pwms' property.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property.
 *
 * @see PWM_DT_SPEC_INST_GET_BY_IDX
 */
# 266 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
/**
 * @brief Static initializer for a struct pwm_dt_spec from a DT_DRV_COMPAT
 *        instance.
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param idx Logical index into 'pwms' property.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property.
 *
 * @see PWM_DT_SPEC_GET_BY_IDX
 */



/**
 * @brief Like PWM_DT_SPEC_GET_BY_IDX(), with a fallback to a default value.
 *
 * If the devicetree node identifier 'node_id' refers to a node with a property
 * 'pwms', this expands to <tt>PWM_DT_SPEC_GET_BY_IDX(node_id, idx)</tt>. The
 * @p default_value parameter is not expanded in this case. Otherwise, this
 * expands to @p default_value.
 *
 * @param node_id Devicetree node identifier.
 * @param idx Logical index into 'pwms' property.
 * @param default_value Fallback value to expand to.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property,
 *         or @p default_value if the node or property do not exist.
 *
 * @see PWM_DT_SPEC_INST_GET_BY_IDX_OR
 */





/**
 * @brief Like PWM_DT_SPEC_INST_GET_BY_IDX(), with a fallback to a default
 *        value.
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param idx Logical index into 'pwms' property.
 * @param default_value Fallback value to expand to.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property,
 *         or @p default_value if the node or property do not exist.
 *
 * @see PWM_DT_SPEC_GET_BY_IDX_OR
 */



/**
 * @brief Equivalent to <tt>PWM_DT_SPEC_GET_BY_IDX(node_id, 0)</tt>.
 *
 * @param node_id Devicetree node identifier.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property.
 *
 * @see PWM_DT_SPEC_GET_BY_IDX
 * @see PWM_DT_SPEC_INST_GET
 */


/**
 * @brief Equivalent to <tt>PWM_DT_SPEC_INST_GET_BY_IDX(inst, 0)</tt>.
 *
 * @param inst DT_DRV_COMPAT instance number
 *
 * @return Static initializer for a struct pwm_dt_spec for the property.
 *
 * @see PWM_DT_SPEC_INST_GET_BY_IDX
 * @see PWM_DT_SPEC_GET
 */


/**
 * @brief Equivalent to
 *        <tt>PWM_DT_SPEC_GET_BY_IDX_OR(node_id, 0, default_value)</tt>.
 *
 * @param node_id Devicetree node identifier.
 * @param default_value Fallback value to expand to.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property.
 *
 * @see PWM_DT_SPEC_GET_BY_IDX_OR
 * @see PWM_DT_SPEC_INST_GET_OR
 */



/**
 * @brief Equivalent to
 *        <tt>PWM_DT_SPEC_INST_GET_BY_IDX_OR(inst, 0, default_value)</tt>.
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param default_value Fallback value to expand to.
 *
 * @return Static initializer for a struct pwm_dt_spec for the property.
 *
 * @see PWM_DT_SPEC_INST_GET_BY_IDX_OR
 * @see PWM_DT_SPEC_GET_OR
 */



/**
 * @brief PWM capture callback handler function signature
 *
 * @note The callback handler will be called in interrupt context.
 *
 * @note @kconfig{CONFIG_PWM_CAPTURE} must be selected to enable PWM capture
 * support.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.

 * @param period_cycles Captured PWM period width (in clock cycles). HW
 *                      specific.
 * @param pulse_cycles Captured PWM pulse width (in clock cycles). HW specific.
 * @param status Status for the PWM capture (0 if no error, negative errno
 *               otherwise. See pwm_capture_cycles() return value
 *               descriptions for details).
 * @param user_data User data passed to pwm_configure_capture()
 */
typedef void (*pwm_capture_callback_handler_t)(const struct device *dev,
            uint32_t channel,
            uint32_t period_cycles,
            uint32_t pulse_cycles,
            int status, void *user_data);

/** @cond INTERNAL_HIDDEN */
/**
 * @brief PWM driver API call to configure PWM pin period and pulse width.
 * @see pwm_set_cycles() for argument description.
 */
typedef int (*pwm_set_cycles_t)(const struct device *dev, uint32_t channel,
    uint32_t period_cycles, uint32_t pulse_cycles,
    pwm_flags_t flags);

/**
 * @brief PWM driver API call to obtain the PWM cycles per second (frequency).
 * @see pwm_get_cycles_per_sec() for argument description
 */
typedef int (*pwm_get_cycles_per_sec_t)(const struct device *dev,
     uint32_t channel, uint64_t *cycles);
# 437 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
/** @brief PWM driver API definition. */
 struct pwm_driver_api {
 pwm_set_cycles_t set_cycles;
 pwm_get_cycles_per_sec_t get_cycles_per_sec;





};
/** @endcond */

/**
 * @brief Set the period and pulse width for a single PWM output.
 *
 * The PWM period and pulse width will synchronously be set to the new values
 * without glitches in the PWM signal, but the call will not block for the
 * change to take effect.
 *
 * @note Not all PWM controllers support synchronous, glitch-free updates of the
 * PWM period and pulse width. Depending on the hardware, changing the PWM
 * period and/or pulse width may cause a glitch in the generated PWM signal.
 *
 * @note Some multi-channel PWM controllers share the PWM period across all
 * channels. Depending on the hardware, changing the PWM period for one channel
 * may affect the PWM period for the other channels of the same PWM controller.
 *
 * Passing 0 as @p pulse will cause the pin to be driven to a constant
 * inactive level.
 * Passing a non-zero @p pulse equal to @p period will cause the pin
 * to be driven to a constant active level.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 * @param period Period (in clock cycles) set to the PWM. HW specific.
 * @param pulse Pulse width (in clock cycles) set to the PWM. HW specific.
 * @param flags Flags for pin configuration.
 *
 * @retval 0 If successful.
 * @retval -EINVAL If pulse > period.
 * @retval -errno Negative errno code on failure.
 */
static inline int pwm_set_cycles(const struct device *dev, uint32_t channel,
        uint32_t period, uint32_t pulse,
        pwm_flags_t flags);

static inline int z_impl_pwm_set_cycles(const struct device *dev,
     uint32_t channel, uint32_t period,
     uint32_t pulse, pwm_flags_t flags)
{
 const struct pwm_driver_api *api =
  (const struct pwm_driver_api *)dev->api;

 if (pulse > period) {
  return -
# 491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 3 4
         22 /* Invalid argument */
# 491 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
               ;
 }

 return api->set_cycles(dev, channel, period, pulse, flags);
}

/**
 * @brief Get the clock rate (cycles per second) for a single PWM output.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 * @param[out] cycles Pointer to the memory to store clock rate (cycles per
 *                    sec). HW specific.
 *
 * @retval 0 If successful.
 * @retval -errno Negative errno code on failure.
 */
static inline int pwm_get_cycles_per_sec(const struct device *dev, uint32_t channel,
         uint64_t *cycles);

static inline int z_impl_pwm_get_cycles_per_sec(const struct device *dev,
      uint32_t channel,
      uint64_t *cycles)
{
 const struct pwm_driver_api *api =
  (const struct pwm_driver_api *)dev->api;

 return api->get_cycles_per_sec(dev, channel, cycles);
}

/**
 * @brief Set the period and pulse width in nanoseconds for a single PWM output.
 *
 * @note Utility macros such as PWM_MSEC() can be used to convert from other
 * scales or units to nanoseconds, the units used by this function.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 * @param period Period (in nanoseconds) set to the PWM.
 * @param pulse Pulse width (in nanoseconds) set to the PWM.
 * @param flags Flags for pin configuration (polarity).
 *
 * @retval 0 If successful.
 * @retval -ENOTSUP If requested period or pulse cycles are not supported.
 * @retval -errno Other negative errno code on failure.
 */
static inline int pwm_set(const struct device *dev, uint32_t channel,
     uint32_t period, uint32_t pulse, pwm_flags_t flags)
{
 int err;
 uint64_t pulse_cycles;
 uint64_t period_cycles;
 uint64_t cycles_per_sec;

 err = pwm_get_cycles_per_sec(dev, channel, &cycles_per_sec);
 if (err < 0) {
  return err;
 }

 period_cycles = (period * cycles_per_sec) / ((1000U) * (1000U) * (1000U));
 if (period_cycles > 
# 551 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 3 4
                    (0xffffffffUL)
# 551 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
                              ) {
  return -
# 552 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 3 4
         134 /* Not supported */
# 552 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
                ;
 }

 pulse_cycles = (pulse * cycles_per_sec) / ((1000U) * (1000U) * (1000U));
 if (pulse_cycles > 
# 556 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 3 4
                   (0xffffffffUL)
# 556 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
                             ) {
  return -
# 557 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 3 4
         134 /* Not supported */
# 557 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
                ;
 }

 return pwm_set_cycles(dev, channel, (uint32_t)period_cycles,
         (uint32_t)pulse_cycles, flags);
}

/**
 * @brief Set the period and pulse width in nanoseconds from a struct
 *        pwm_dt_spec (with custom period).
 *
 * This is equivalent to:
 *
 *     pwm_set(spec->dev, spec->channel, period, pulse, spec->flags)
 *
 * The period specified in @p spec is ignored. This API call can be used when
 * the period specified in Devicetree needs to be changed at runtime.
 *
 * @param[in] spec PWM specification from devicetree.
 * @param period Period (in nanoseconds) set to the PWM.
 * @param pulse Pulse width (in nanoseconds) set to the PWM.
 *
 * @return A value from pwm_set().
 *
 * @see pwm_set_pulse_dt()
 */
static inline int pwm_set_dt(const struct pwm_dt_spec *spec, uint32_t period,
        uint32_t pulse)
{
 return pwm_set(spec->dev, spec->channel, period, pulse, spec->flags);
}

/**
 * @brief Set the period and pulse width in nanoseconds from a struct
 *        pwm_dt_spec.
 *
 * This is equivalent to:
 *
 *     pwm_set(spec->dev, spec->channel, spec->period, pulse, spec->flags)
 *
 * @param[in] spec PWM specification from devicetree.
 * @param pulse Pulse width (in nanoseconds) set to the PWM.
 *
 * @return A value from pwm_set().
 *
 * @see pwm_set_pulse_dt()
 */
static inline int pwm_set_pulse_dt(const struct pwm_dt_spec *spec,
       uint32_t pulse)
{
 return pwm_set(spec->dev, spec->channel, spec->period, pulse,
         spec->flags);
}

/**
 * @brief Convert from PWM cycles to microseconds.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 * @param cycles Cycles to be converted.
 * @param[out] usec Pointer to the memory to store calculated usec.
 *
 * @retval 0 If successful.
 * @retval -ERANGE If result is too large.
 * @retval -errno Other negative errno code on failure.
 */
static inline int pwm_cycles_to_usec(const struct device *dev, uint32_t channel,
         uint32_t cycles, uint64_t *usec)
{
 int err;
 uint64_t temp;
 uint64_t cycles_per_sec;

 err = pwm_get_cycles_per_sec(dev, channel, &cycles_per_sec);
 if (err < 0) {
  return err;
 }

 if (u64_mul_overflow(cycles, (uint64_t)((1000U) * (1000U)), &temp)) {
  return -
# 636 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 3 4
         34 /* Result too large */
# 636 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
               ;
 }

 *usec = temp / cycles_per_sec;

 return 0;
}

/**
 * @brief Convert from PWM cycles to nanoseconds.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 * @param cycles Cycles to be converted.
 * @param[out] nsec Pointer to the memory to store the calculated nsec.
 *
 * @retval 0 If successful.
 * @retval -ERANGE If result is too large.
 * @retval -errno Other negative errno code on failure.
 */
static inline int pwm_cycles_to_nsec(const struct device *dev, uint32_t channel,
         uint32_t cycles, uint64_t *nsec)
{
 int err;
 uint64_t temp;
 uint64_t cycles_per_sec;

 err = pwm_get_cycles_per_sec(dev, channel, &cycles_per_sec);
 if (err < 0) {
  return err;
 }

 if (u64_mul_overflow(cycles, (uint64_t)((1000U) * (1000U) * (1000U)), &temp)) {
  return -
# 669 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 3 4
         34 /* Result too large */
# 669 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
               ;
 }

 *nsec = temp / cycles_per_sec;

 return 0;
}
# 723 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
/**
 * @brief Enable PWM period/pulse width capture for a single PWM input.
 *
 * The PWM pin must be configured using pwm_configure_capture() prior to
 * calling this function.
 *
 * @note @kconfig{CONFIG_PWM_CAPTURE} must be selected for this function to be
 * available.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 *
 * @retval 0 If successful.
 * @retval -EINVAL if invalid function parameters were given
 * @retval -ENOSYS if PWM capture is not supported
 * @retval -EIO if IO error occurred while enabling PWM capture
 * @retval -EBUSY if PWM capture is already in progress
 */
static inline int pwm_enable_capture(const struct device *dev, uint32_t channel);
# 758 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
/**
 * @brief Disable PWM period/pulse width capture for a single PWM input.
 *
 * @note @kconfig{CONFIG_PWM_CAPTURE} must be selected for this function to be
 * available.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 *
 * @retval 0 If successful.
 * @retval -EINVAL if invalid function parameters were given
 * @retval -ENOSYS if PWM capture is not supported
 * @retval -EIO if IO error occurred while disabling PWM capture
 */
static inline int pwm_disable_capture(const struct device *dev, uint32_t channel);
# 789 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h"
/**
 * @brief Capture a single PWM period/pulse width in clock cycles for a single
 *        PWM input.
 *
 * This API function wraps calls to pwm_configure_capture(),
 * pwm_enable_capture(), and pwm_disable_capture() and passes
 * the capture result to the caller. The function is blocking until either the
 * PWM capture is completed or a timeout occurs.
 *
 * @note @kconfig{CONFIG_PWM_CAPTURE} must be selected for this function to be
 * available.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 * @param flags PWM capture flags.
 * @param[out] period Pointer to the memory to store the captured PWM period
 *                    width (in clock cycles). HW specific.
 * @param[out] pulse Pointer to the memory to store the captured PWM pulse width
 *                   (in clock cycles). HW specific.
 * @param timeout Waiting period for the capture to complete.
 *
 * @retval 0 If successful.
 * @retval -EBUSY PWM capture already in progress.
 * @retval -EAGAIN Waiting period timed out.
 * @retval -EIO IO error while capturing.
 * @retval -ERANGE If result is too large.
 */
static inline int pwm_capture_cycles(const struct device *dev, uint32_t channel,
     pwm_flags_t flags, uint32_t *period,
     uint32_t *pulse, k_timeout_t timeout);

/**
 * @brief Capture a single PWM period/pulse width in microseconds for a single
 *        PWM input.
 *
 * This API function wraps calls to pwm_capture_cycles() and
 * pwm_cycles_to_usec() and passes the capture result to the caller. The
 * function is blocking until either the PWM capture is completed or a timeout
 * occurs.
 *
 * @note @kconfig{CONFIG_PWM_CAPTURE} must be selected for this function to be
 * available.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 * @param flags PWM capture flags.
 * @param[out] period Pointer to the memory to store the captured PWM period
 *                    width (in usec).
 * @param[out] pulse Pointer to the memory to store the captured PWM pulse width
 *                   (in usec).
 * @param timeout Waiting period for the capture to complete.
 *
 * @retval 0 If successful.
 * @retval -EBUSY PWM capture already in progress.
 * @retval -EAGAIN Waiting period timed out.
 * @retval -EIO IO error while capturing.
 * @retval -ERANGE If result is too large.
 * @retval -errno Other negative errno code on failure.
 */
static inline int pwm_capture_usec(const struct device *dev, uint32_t channel,
       pwm_flags_t flags, uint64_t *period,
       uint64_t *pulse, k_timeout_t timeout)
{
 int err;
 uint32_t pulse_cycles;
 uint32_t period_cycles;

 err = pwm_capture_cycles(dev, channel, flags, &period_cycles,
     &pulse_cycles, timeout);
 if (err < 0) {
  return err;
 }

 err = pwm_cycles_to_usec(dev, channel, period_cycles, period);
 if (err < 0) {
  return err;
 }

 err = pwm_cycles_to_usec(dev, channel, pulse_cycles, pulse);
 if (err < 0) {
  return err;
 }

 return 0;
}

/**
 * @brief Capture a single PWM period/pulse width in nanoseconds for a single
 *        PWM input.
 *
 * This API function wraps calls to pwm_capture_cycles() and
 * pwm_cycles_to_nsec() and passes the capture result to the caller. The
 * function is blocking until either the PWM capture is completed or a timeout
 * occurs.
 *
 * @note @kconfig{CONFIG_PWM_CAPTURE} must be selected for this function to be
 * available.
 *
 * @param[in] dev PWM device instance.
 * @param channel PWM channel.
 * @param flags PWM capture flags.
 * @param[out] period Pointer to the memory to store the captured PWM period
 *                    width (in nsec).
 * @param[out] pulse Pointer to the memory to store the captured PWM pulse width
 *                   (in nsec).
 * @param timeout Waiting period for the capture to complete.
 *
 * @retval 0 If successful.
 * @retval -EBUSY PWM capture already in progress.
 * @retval -EAGAIN Waiting period timed out.
 * @retval -EIO IO error while capturing.
 * @retval -ERANGE If result is too large.
 * @retval -errno Other negative errno code on failure.
 */
static inline int pwm_capture_nsec(const struct device *dev, uint32_t channel,
       pwm_flags_t flags, uint64_t *period,
       uint64_t *pulse, k_timeout_t timeout)
{
 int err;
 uint32_t pulse_cycles;
 uint32_t period_cycles;

 err = pwm_capture_cycles(dev, channel, flags, &period_cycles,
     &pulse_cycles, timeout);
 if (err < 0) {
  return err;
 }

 err = pwm_cycles_to_nsec(dev, channel, period_cycles, period);
 if (err < 0) {
  return err;
 }

 err = pwm_cycles_to_nsec(dev, channel, pulse_cycles, pulse);
 if (err < 0) {
  return err;
 }

 return 0;
}

/**
 * @brief Validate that the PWM device is ready.
 *
 * @param spec PWM specification from devicetree
 *
 * @retval true If the PWM device is ready for use
 * @retval false If the PWM device is not ready for use
 */
static inline bool pwm_is_ready_dt(const struct pwm_dt_spec *spec)
{
 return device_is_ready(spec->dev);
}


}


/**
 * @}
 */

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h" 1
/* auto-generated by gen_syscalls.py, don't edit */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_syscall.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 8 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h" 2



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* auto-generated by gen_syscalls.py, don't edit */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h" 2



extern "C" {


extern int z_impl_pwm_set_cycles(const struct device * dev, uint32_t channel, uint32_t period, uint32_t pulse, pwm_flags_t flags);


static inline int pwm_set_cycles(const struct device * dev, uint32_t channel, uint32_t period, uint32_t pulse, pwm_flags_t flags)
{
# 38 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_pwm_set_cycles(dev, channel, period, pulse, flags);
}
# 50 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h"
extern int z_impl_pwm_get_cycles_per_sec(const struct device * dev, uint32_t channel, uint64_t * cycles);


static inline int pwm_get_cycles_per_sec(const struct device * dev, uint32_t channel, uint64_t * cycles)
{
# 63 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_pwm_get_cycles_per_sec(dev, channel, cycles);
}
# 75 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h"
extern int z_impl_pwm_enable_capture(const struct device * dev, uint32_t channel);


static inline int pwm_enable_capture(const struct device * dev, uint32_t channel)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_pwm_enable_capture(dev, channel);
}
# 99 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h"
extern int z_impl_pwm_disable_capture(const struct device * dev, uint32_t channel);


static inline int pwm_disable_capture(const struct device * dev, uint32_t channel)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_pwm_disable_capture(dev, channel);
}
# 123 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h"
extern int z_impl_pwm_capture_cycles(const struct device * dev, uint32_t channel, pwm_flags_t flags, uint32_t * period, uint32_t * pulse, k_timeout_t timeout);


static inline int pwm_capture_cycles(const struct device * dev, uint32_t channel, pwm_flags_t flags, uint32_t * period, uint32_t * pulse, k_timeout_t timeout)
{
# 143 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_pwm_capture_cycles(dev, channel, flags, period, pulse, timeout);
}
# 156 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/pwm.h"
}
# 952 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/pwm.h" 2
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h" 1
/**
 * @file
 * @brief ADC public API header file.
 */

/*
 * Copyright (c) 2018 Nordic Semiconductor ASA
 * Copyright (c) 2015 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 1
/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/dt-bindings/adc/adc.h" 1
/*
 * Copyright 2021 Google LLC
 *
 * SPDX-License-Identifier: Apache-2.0
 */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/dt-bindings/dt-util.h" 1
/*
 * Copyright (c) 2020 Gerson Fernando Budke <nandojve@gmail.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */




/*
 * This file exists to keep in-tree DTS clean.  This means, only
 * #include <zephyr/dt-bindings/foo.h> form should be included.  The
 * <zephyr/dt-bindings/dt-util.h> wraps <zephyr/sys/util_macro.h> file exposing
 * all macro base definitions to DTS preprocessor.  It provides
 * necessary background to elaborate complex constructions like
 * variable length macros with zero or more elements.
 */

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util_macro.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macro utilities
 *
 * Macro utilities are the public interface for C/C++ code and device tree
 * related implementation.  In general, C/C++ will include <sys/util.h>
 * instead this file directly.  For device tree implementation, this file
 * should be include instead <sys/util_internal.h>
 */
# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/dt-bindings/dt-util.h" 2
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/dt-bindings/adc/adc.h" 2

/** Acquisition time is expressed in microseconds. */

/** Acquisition time is expressed in nanoseconds. */

/** Acquisition time is expressed in ADC ticks. */

/** Macro for composing the acquisition time value in given units. */

/** Value indicating that the default acquisition time should be used. */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h" 2


extern "C" {


/**
 * @brief ADC driver APIs
 * @defgroup adc_interface ADC driver APIs
 * @since 1.0
 * @version 1.0.0
 * @ingroup io_interfaces
 * @{
 */

/** @brief ADC channel gain factors. */
enum adc_gain {
 ADC_GAIN_1_6,
 ADC_GAIN_1_5,
 ADC_GAIN_1_4,
 ADC_GAIN_2_7,
 ADC_GAIN_1_3,
 ADC_GAIN_2_5,
 ADC_GAIN_1_2,
 ADC_GAIN_2_3,
 ADC_GAIN_4_5,
 ADC_GAIN_1,
 ADC_GAIN_2,
 ADC_GAIN_3,
 ADC_GAIN_4,
 ADC_GAIN_6,
 ADC_GAIN_8,
 ADC_GAIN_12,
 ADC_GAIN_16,
 ADC_GAIN_24,
 ADC_GAIN_32,
 ADC_GAIN_64,
 ADC_GAIN_128,
};

/**
 * @brief Invert the application of gain to a measurement value.
 *
 * For example, if the gain passed in is ADC_GAIN_1_6 and the
 * referenced value is 10, the value after the function returns is 60.
 *
 * @param gain the gain used to amplify the input signal.
 *
 * @param value a pointer to a value that initially has the effect of
 * the applied gain but has that effect removed when this function
 * successfully returns.  If the gain cannot be reversed the value
 * remains unchanged.
 *
 * @retval 0 if the gain was successfully reversed
 * @retval -EINVAL if the gain could not be interpreted
 */
int adc_gain_invert(enum adc_gain gain,
      int32_t *value);

/** @brief ADC references. */
enum adc_reference {
 ADC_REF_VDD_1,
 ADC_REF_VDD_1_2,
 ADC_REF_VDD_1_3,
 ADC_REF_VDD_1_4,
 ADC_REF_INTERNAL,
 ADC_REF_EXTERNAL0,
 ADC_REF_EXTERNAL1,
};

/**
 * @brief Structure for specifying the configuration of an ADC channel.
 */
struct adc_channel_cfg {
 /** Gain selection. */
 enum adc_gain gain;

 /** Reference selection. */
 enum adc_reference reference;

 /**
	 * Acquisition time.
	 * Use the ADC_ACQ_TIME macro to compose the value for this field or
	 * pass ADC_ACQ_TIME_DEFAULT to use the default setting for a given
	 * hardware (e.g. when the hardware does not allow to configure the
	 * acquisition time).
	 * Particular drivers do not necessarily support all the possible units.
	 * Value range is 0-16383 for a given unit.
	 */
 uint16_t acquisition_time;

 /**
	 * Channel identifier.
	 * This value primarily identifies the channel within the ADC API - when
	 * a read request is done, the corresponding bit in the "channels" field
	 * of the "adc_sequence" structure must be set to include this channel
	 * in the sampling.
	 * For hardware that does not allow selection of analog inputs for given
	 * channels, but rather have dedicated ones, this value also selects the
	 * physical ADC input to be used in the sampling. Otherwise, when it is
	 * needed to explicitly select an analog input for the channel, or two
	 * inputs when the channel is a differential one, the selection is done
	 * in "input_positive" and "input_negative" fields.
	 * Particular drivers indicate which one of the above two cases they
	 * support by selecting or not a special hidden Kconfig option named
	 * ADC_CONFIGURABLE_INPUTS. If this option is not selected, the macro
	 * CONFIG_ADC_CONFIGURABLE_INPUTS is not defined and consequently the
	 * mentioned two fields are not present in this structure.
	 * While this API allows identifiers from range 0-31, particular drivers
	 * may support only a limited number of channel identifiers (dependent
	 * on the underlying hardware capabilities or configured via a dedicated
	 * Kconfig option).
	 */
 uint8_t channel_id : 5;

 /** Channel type: single-ended or differential. */
 uint8_t differential : 1;
# 174 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h"
};

/**
 * @brief Get ADC channel configuration from a given devicetree node.
 *
 * This returns a static initializer for a <tt>struct adc_channel_cfg</tt>
 * filled with data from a given devicetree node.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 * &adc {
 *    #address-cells = <1>;
 *    #size-cells = <0>;
 *
 *    channel@0 {
 *        reg = <0>;
 *        zephyr,gain = "ADC_GAIN_1_6";
 *        zephyr,reference = "ADC_REF_INTERNAL";
 *        zephyr,acquisition-time = <ADC_ACQ_TIME(ADC_ACQ_TIME_MICROSECONDS, 20)>;
 *        zephyr,input-positive = <NRF_SAADC_AIN6>;
 *        zephyr,input-negative = <NRF_SAADC_AIN7>;
 *    };
 *
 *    channel@1 {
 *        reg = <1>;
 *        zephyr,gain = "ADC_GAIN_1_6";
 *        zephyr,reference = "ADC_REF_INTERNAL";
 *        zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
 *        zephyr,input-positive = <NRF_SAADC_AIN0>;
 *    };
 * };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 * static const struct adc_channel_cfg ch0_cfg_dt =
 *     ADC_CHANNEL_CFG_DT(DT_CHILD(DT_NODELABEL(adc), channel_0));
 * static const struct adc_channel_cfg ch1_cfg_dt =
 *     ADC_CHANNEL_CFG_DT(DT_CHILD(DT_NODELABEL(adc), channel_1));
 *
 * // Initializes 'ch0_cfg_dt' to:
 * // {
 * //     .channel_id = 0,
 * //     .gain = ADC_GAIN_1_6,
 * //     .reference = ADC_REF_INTERNAL,
 * //     .acquisition_time = ADC_ACQ_TIME(ADC_ACQ_TIME_MICROSECONDS, 20),
 * //     .differential = true,
 * //     .input_positive = NRF_SAADC_AIN6,
 * //     .input-negative = NRF_SAADC_AIN7,
 * // }
 * // and 'ch1_cfg_dt' to:
 * // {
 * //     .channel_id = 1,
 * //     .gain = ADC_GAIN_1_6,
 * //     .reference = ADC_REF_INTERNAL,
 * //     .acquisition_time = ADC_ACQ_TIME_DEFAULT,
 * //     .input_positive = NRF_SAADC_AIN0,
 * // }
 * @endcode
 *
 * @param node_id Devicetree node identifier.
 *
 * @return Static initializer for an adc_channel_cfg structure.
 */
# 259 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h"
/**
 * @brief Container for ADC channel information specified in devicetree.
 *
 * @see ADC_DT_SPEC_GET_BY_IDX
 * @see ADC_DT_SPEC_GET
 */
struct adc_dt_spec {
 /**
	 * Pointer to the device structure for the ADC driver instance
	 * used by this io-channel.
	 */
 const struct device *dev;

 /** ADC channel identifier used by this io-channel. */
 uint8_t channel_id;

 /**
	 * Flag indicating whether configuration of the associated ADC channel
	 * is provided as a child node of the corresponding ADC controller in
	 * devicetree.
	 */
 bool channel_cfg_dt_node_exists;

 /**
	 * Configuration of the associated ADC channel specified in devicetree.
	 * This field is valid only when @a channel_cfg_dt_node_exists is set
	 * to @a true.
	 */
 struct adc_channel_cfg channel_cfg;

 /**
	 * Voltage of the reference selected for the channel or 0 if this
	 * value is not provided in devicetree.
	 * This field is valid only when @a channel_cfg_dt_node_exists is set
	 * to @a true.
	 */
 uint16_t vref_mv;

 /**
	 * ADC resolution to be used for that channel.
	 * This field is valid only when @a channel_cfg_dt_node_exists is set
	 * to @a true.
	 */
 uint8_t resolution;

 /**
	 * Oversampling setting to be used for that channel.
	 * This field is valid only when @a channel_cfg_dt_node_exists is set
	 * to @a true.
	 */
 uint8_t oversampling;
};

/** @cond INTERNAL_HIDDEN */
# 335 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h"
/** @endcond */

/**
 * @brief Get ADC io-channel information from devicetree by name.
 *
 * This returns a static initializer for an @p adc_dt_spec structure
 * given a devicetree node and a channel name. The node must have
 * the "io-channels" property defined.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 * / {
 *     zephyr,user {
 *         io-channels = <&adc0 1>, <&adc0 3>;
 *         io-channel-names = "A0", "A1";
 *     };
 * };
 *
 * &adc0 {
 *    #address-cells = <1>;
 *    #size-cells = <0>;
 *
 *    channel@3 {
 *        reg = <3>;
 *        zephyr,gain = "ADC_GAIN_1_5";
 *        zephyr,reference = "ADC_REF_VDD_1_4";
 *        zephyr,vref-mv = <750>;
 *        zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
 *        zephyr,resolution = <12>;
 *        zephyr,oversampling = <4>;
 *    };
 * };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 * static const struct adc_dt_spec adc_chan0 =
 *     ADC_DT_SPEC_GET_BY_NAME(DT_PATH(zephyr_user), a0);
 * static const struct adc_dt_spec adc_chan1 =
 *     ADC_DT_SPEC_GET_BY_NAME(DT_PATH(zephyr_user), a1);
 *
 * // Initializes 'adc_chan0' to:
 * // {
 * //     .dev = DEVICE_DT_GET(DT_NODELABEL(adc0)),
 * //     .channel_id = 1,
 * // }
 * // and 'adc_chan1' to:
 * // {
 * //     .dev = DEVICE_DT_GET(DT_NODELABEL(adc0)),
 * //     .channel_id = 3,
 * //     .channel_cfg_dt_node_exists = true,
 * //     .channel_cfg = {
 * //         .channel_id = 3,
 * //         .gain = ADC_GAIN_1_5,
 * //         .reference = ADC_REF_VDD_1_4,
 * //         .acquisition_time = ADC_ACQ_TIME_DEFAULT,
 * //     },
 * //     .vref_mv = 750,
 * //     .resolution = 12,
 * //     .oversampling = 4,
 * // }
 * @endcode
 *
 * @param node_id Devicetree node identifier.
 * @param name Channel name.
 *
 * @return Static initializer for an adc_dt_spec structure.
 */




/** @brief Get ADC io-channel information from a DT_DRV_COMPAT devicetree
 *         instance by name.
 *
 * @see ADC_DT_SPEC_GET_BY_NAME()
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param name Channel name.
 *
 * @return Static initializer for an adc_dt_spec structure.
 */



/**
 * @brief Get ADC io-channel information from devicetree.
 *
 * This returns a static initializer for an @p adc_dt_spec structure
 * given a devicetree node and a channel index. The node must have
 * the "io-channels" property defined.
 *
 * Example devicetree fragment:
 *
 * @code{.dts}
 * / {
 *     zephyr,user {
 *         io-channels = <&adc0 1>, <&adc0 3>;
 *     };
 * };
 *
 * &adc0 {
 *    #address-cells = <1>;
 *    #size-cells = <0>;
 *
 *    channel@3 {
 *        reg = <3>;
 *        zephyr,gain = "ADC_GAIN_1_5";
 *        zephyr,reference = "ADC_REF_VDD_1_4";
 *        zephyr,vref-mv = <750>;
 *        zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
 *        zephyr,resolution = <12>;
 *        zephyr,oversampling = <4>;
 *    };
 * };
 * @endcode
 *
 * Example usage:
 *
 * @code{.c}
 * static const struct adc_dt_spec adc_chan0 =
 *     ADC_DT_SPEC_GET_BY_IDX(DT_PATH(zephyr_user), 0);
 * static const struct adc_dt_spec adc_chan1 =
 *     ADC_DT_SPEC_GET_BY_IDX(DT_PATH(zephyr_user), 1);
 *
 * // Initializes 'adc_chan0' to:
 * // {
 * //     .dev = DEVICE_DT_GET(DT_NODELABEL(adc0)),
 * //     .channel_id = 1,
 * // }
 * // and 'adc_chan1' to:
 * // {
 * //     .dev = DEVICE_DT_GET(DT_NODELABEL(adc0)),
 * //     .channel_id = 3,
 * //     .channel_cfg_dt_node_exists = true,
 * //     .channel_cfg = {
 * //         .channel_id = 3,
 * //         .gain = ADC_GAIN_1_5,
 * //         .reference = ADC_REF_VDD_1_4,
 * //         .acquisition_time = ADC_ACQ_TIME_DEFAULT,
 * //     },
 * //     .vref_mv = 750,
 * //     .resolution = 12,
 * //     .oversampling = 4,
 * // }
 * @endcode
 *
 * @see ADC_DT_SPEC_GET()
 *
 * @param node_id Devicetree node identifier.
 * @param idx Channel index.
 *
 * @return Static initializer for an adc_dt_spec structure.
 */




/** @brief Get ADC io-channel information from a DT_DRV_COMPAT devicetree
 *         instance.
 *
 * @see ADC_DT_SPEC_GET_BY_IDX()
 *
 * @param inst DT_DRV_COMPAT instance number
 * @param idx Channel index.
 *
 * @return Static initializer for an adc_dt_spec structure.
 */



/**
 * @brief Equivalent to ADC_DT_SPEC_GET_BY_IDX(node_id, 0).
 *
 * @see ADC_DT_SPEC_GET_BY_IDX()
 *
 * @param node_id Devicetree node identifier.
 *
 * @return Static initializer for an adc_dt_spec structure.
 */


/** @brief Equivalent to ADC_DT_SPEC_INST_GET_BY_IDX(inst, 0).
 *
 * @see ADC_DT_SPEC_GET()
 *
 * @param inst DT_DRV_COMPAT instance number
 *
 * @return Static initializer for an adc_dt_spec structure.
 */


/* Forward declaration of the adc_sequence structure. */
struct adc_sequence;

/**
 * @brief Action to be performed after a sampling is done.
 */
enum adc_action {
 /** The sequence should be continued normally. */
 ADC_ACTION_CONTINUE = 0,

 /**
	 * The sampling should be repeated. New samples or sample should be
	 * read from the ADC and written in the same place as the recent ones.
	 */
 ADC_ACTION_REPEAT,

 /** The sequence should be finished immediately. */
 ADC_ACTION_FINISH,
};

/**
 * @brief Type definition of the optional callback function to be called after
 *        a requested sampling is done.
 *
 * @param dev             Pointer to the device structure for the driver
 *                        instance.
 * @param sequence        Pointer to the sequence structure that triggered
 *                        the sampling. This parameter points to a copy of
 *                        the structure that was supplied to the call that
 *                        started the sampling sequence, thus it cannot be
 *                        used with the CONTAINER_OF() macro to retrieve
 *                        some other data associated with the sequence.
 *                        Instead, the adc_sequence_options::user_data field
 *                        should be used for such purpose.
 *
 * @param sampling_index  Index (0-65535) of the sampling done.
 *
 * @returns Action to be performed by the driver. See @ref adc_action.
 */
typedef enum adc_action (*adc_sequence_callback)(const struct device *dev,
       const struct adc_sequence *sequence,
       uint16_t sampling_index);

/**
 * @brief Structure defining additional options for an ADC sampling sequence.
 */
struct adc_sequence_options {
 /**
	 * Interval between consecutive samplings (in microseconds), 0 means
	 * sample as fast as possible, without involving any timer.
	 * The accuracy of this interval is dependent on the implementation of
	 * a given driver. The default routine that handles the intervals uses
	 * a kernel timer for this purpose, thus, it has the accuracy of the
	 * kernel's system clock. Particular drivers may use some dedicated
	 * hardware timers and achieve a better precision.
	 */
 uint32_t interval_us;

 /**
	 * Callback function to be called after each sampling is done.
	 * Optional - set to NULL if it is not needed.
	 */
 adc_sequence_callback callback;

 /**
	 * Pointer to user data. It can be used to associate the sequence
	 * with any other data that is needed in the callback function.
	 */
 void *user_data;

 /**
	 * Number of extra samplings to perform (the total number of samplings
	 * is 1 + extra_samplings).
	 */
 uint16_t extra_samplings;
};

/**
 * @brief Structure defining an ADC sampling sequence.
 */
struct adc_sequence {
 /**
	 * Pointer to a structure defining additional options for the sequence.
	 * If NULL, the sequence consists of a single sampling.
	 */
 const struct adc_sequence_options *options;

 /**
	 * Bit-mask indicating the channels to be included in each sampling
	 * of this sequence.
	 * All selected channels must be configured with adc_channel_setup()
	 * before they are used in a sequence.
	 * The least significant bit corresponds to channel 0.
	 */
 uint32_t channels;

 /**
	 * Pointer to a buffer where the samples are to be written. Samples
	 * from subsequent samplings are written sequentially in the buffer.
	 * The number of samples written for each sampling is determined by
	 * the number of channels selected in the "channels" field.
	 * The values written to the buffer represent a sample from each
	 * selected channel starting from the one with the lowest ID.
	 * The buffer must be of an appropriate size, taking into account
	 * the number of selected channels and the ADC resolution used,
	 * as well as the number of samplings contained in the sequence.
	 */
 void *buffer;

 /**
	 * Specifies the actual size of the buffer pointed by the "buffer"
	 * field (in bytes). The driver must ensure that samples are not
	 * written beyond the limit and it must return an error if the buffer
	 * turns out to be not large enough to hold all the requested samples.
	 */
 size_t buffer_size;

 /**
	 * ADC resolution.
	 * For single-ended channels the sample values are from range:
	 *   0 .. 2^resolution - 1,
	 * for differential ones:
	 *   - 2^(resolution-1) .. 2^(resolution-1) - 1.
	 */
 uint8_t resolution;

 /**
	 * Oversampling setting.
	 * Each sample is averaged from 2^oversampling conversion results.
	 * This feature may be unsupported by a given ADC hardware, or in
	 * a specific mode (e.g. when sampling multiple channels).
	 */
 uint8_t oversampling;

 /**
	 * Perform calibration before the reading is taken if requested.
	 *
	 * The impact of channel configuration on the calibration
	 * process is specific to the underlying hardware.  ADC
	 * implementations that do not support calibration should
	 * ignore this flag.
	 */
 bool calibrate;
};


/**
 * @brief Type definition of ADC API function for configuring a channel.
 * See adc_channel_setup() for argument descriptions.
 */
typedef int (*adc_api_channel_setup)(const struct device *dev,
         const struct adc_channel_cfg *channel_cfg);

/**
 * @brief Type definition of ADC API function for setting a read request.
 * See adc_read() for argument descriptions.
 */
typedef int (*adc_api_read)(const struct device *dev,
       const struct adc_sequence *sequence);

/**
 * @brief Type definition of ADC API function for setting an asynchronous
 *        read request.
 * See adc_read_async() for argument descriptions.
 */
typedef int (*adc_api_read_async)(const struct device *dev,
      const struct adc_sequence *sequence,
      struct k_poll_signal *async);

/**
 * @brief ADC driver API
 *
 * This is the mandatory API any ADC driver needs to expose.
 */
 struct adc_driver_api {
 adc_api_channel_setup channel_setup;
 adc_api_read read;



 uint16_t ref_internal;
};

/**
 * @brief Configure an ADC channel.
 *
 * It is required to call this function and configure each channel before it is
 * selected for a read request.
 *
 * @param dev          Pointer to the device structure for the driver instance.
 * @param channel_cfg  Channel configuration.
 *
 * @retval 0       On success.
 * @retval -EINVAL If a parameter with an invalid value has been provided.
 */
static inline int adc_channel_setup(const struct device *dev,
    const struct adc_channel_cfg *channel_cfg);

static inline int z_impl_adc_channel_setup(const struct device *dev,
        const struct adc_channel_cfg *channel_cfg)
{
 return ((const struct adc_driver_api *)dev->api)->channel_setup(dev, channel_cfg);
}

/**
 * @brief Configure an ADC channel from a struct adc_dt_spec.
 *
 * @param spec ADC specification from Devicetree.
 *
 * @return A value from adc_channel_setup() or -ENOTSUP if information from
 * Devicetree is not valid.
 * @see adc_channel_setup()
 */
static inline int adc_channel_setup_dt(const struct adc_dt_spec *spec)
{
 if (!spec->channel_cfg_dt_node_exists) {
  return -
# 745 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h" 3 4
         134 /* Not supported */
# 745 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h"
                ;
 }

 return adc_channel_setup(spec->dev, &spec->channel_cfg);
}

/**
 * @brief Set a read request.
 *
 * @param dev       Pointer to the device structure for the driver instance.
 * @param sequence  Structure specifying requested sequence of samplings.
 *
 * If invoked from user mode, any sequence struct options for callback must
 * be NULL.
 *
 * @retval 0        On success.
 * @retval -EINVAL  If a parameter with an invalid value has been provided.
 * @retval -ENOMEM  If the provided buffer is to small to hold the results
 *                  of all requested samplings.
 * @retval -ENOTSUP If the requested mode of operation is not supported.
 * @retval -EBUSY   If another sampling was triggered while the previous one
 *                  was still in progress. This may occur only when samplings
 *                  are done with intervals, and it indicates that the selected
 *                  interval was too small. All requested samples are written
 *                  in the buffer, but at least some of them were taken with
 *                  an extra delay compared to what was scheduled.
 */
static inline int adc_read(const struct device *dev,
         const struct adc_sequence *sequence);

static inline int z_impl_adc_read(const struct device *dev,
      const struct adc_sequence *sequence)
{
 return ((const struct adc_driver_api *)dev->api)->read(dev, sequence);
}

/**
 * @brief Set a read request from a struct adc_dt_spec.
 *
 * @param spec ADC specification from Devicetree.
 * @param sequence  Structure specifying requested sequence of samplings.
 *
 * @return A value from adc_read().
 * @see adc_read()
 */
static inline int adc_read_dt(const struct adc_dt_spec *spec,
         const struct adc_sequence *sequence)
{
 return adc_read(spec->dev, sequence);
}

/**
 * @brief Set an asynchronous read request.
 *
 * @note This function is available only if @kconfig{CONFIG_ADC_ASYNC}
 * is selected.
 *
 * If invoked from user mode, any sequence struct options for callback must
 * be NULL.
 *
 * @param dev       Pointer to the device structure for the driver instance.
 * @param sequence  Structure specifying requested sequence of samplings.
 * @param async     Pointer to a valid and ready to be signaled struct
 *                  k_poll_signal. (Note: if NULL this function will not notify
 *                  the end of the transaction, and whether it went successfully
 *                  or not).
 *
 * @returns 0 on success, negative error code otherwise.
 *          See adc_read() for a list of possible error codes.
 *
 */
static inline int adc_read_async(const struct device *dev,
        const struct adc_sequence *sequence,
        struct k_poll_signal *async);
# 830 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h"
/**
 * @brief Get the internal reference voltage.
 *
 * Returns the voltage corresponding to @ref ADC_REF_INTERNAL,
 * measured in millivolts.
 *
 * @return a positive value is the reference voltage value.  Returns
 * zero if reference voltage information is not available.
 */
static inline uint16_t adc_ref_internal(const struct device *dev)
{
 return ((const struct adc_driver_api *)dev->api)->ref_internal;
}

/**
 * @brief Convert a raw ADC value to millivolts.
 *
 * This function performs the necessary conversion to transform a raw
 * ADC measurement to a voltage in millivolts.
 *
 * @param ref_mv the reference voltage used for the measurement, in
 * millivolts.  This may be from adc_ref_internal() or a known
 * external reference.
 *
 * @param gain the ADC gain configuration used to sample the input
 *
 * @param resolution the number of bits in the absolute value of the
 * sample.  For differential sampling this needs to be one less than the
 * resolution in struct adc_sequence.
 *
 * @param valp pointer to the raw measurement value on input, and the
 * corresponding millivolt value on successful conversion.  If
 * conversion fails the stored value is left unchanged.
 *
 * @retval 0 on successful conversion
 * @retval -EINVAL if the gain is not reversible
 */
static inline int adc_raw_to_millivolts(int32_t ref_mv,
     enum adc_gain gain,
     uint8_t resolution,
     int32_t *valp)
{
 int32_t adc_mv = *valp * ref_mv;
 int ret = adc_gain_invert(gain, &adc_mv);

 if (ret == 0) {
  *valp = (adc_mv >> resolution);
 }

 return ret;
}

/**
 * @brief Convert a raw ADC value to millivolts using information stored
 * in a struct adc_dt_spec.
 *
 * @param[in] spec ADC specification from Devicetree.
 * @param[in,out] valp Pointer to the raw measurement value on input, and the
 * corresponding millivolt value on successful conversion. If conversion fails
 * the stored value is left unchanged.
 *
 * @return A value from adc_raw_to_millivolts() or -ENOTSUP if information from
 * Devicetree is not valid.
 * @see adc_raw_to_millivolts()
 */
static inline int adc_raw_to_millivolts_dt(const struct adc_dt_spec *spec,
        int32_t *valp)
{
 int32_t vref_mv;
 uint8_t resolution;

 if (!spec->channel_cfg_dt_node_exists) {
  return -
# 902 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h" 3 4
         134 /* Not supported */
# 902 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h"
                ;
 }

 if (spec->channel_cfg.reference == ADC_REF_INTERNAL) {
  vref_mv = (int32_t)adc_ref_internal(spec->dev);
 } else {
  vref_mv = spec->vref_mv;
 }

 resolution = spec->resolution;

 /*
	 * For differential channels, one bit less needs to be specified
	 * for resolution to achieve correct conversion.
	 */
 if (spec->channel_cfg.differential) {
  resolution -= 1U;
 }

 return adc_raw_to_millivolts(vref_mv, spec->channel_cfg.gain,
         resolution, valp);
}

/**
 * @brief Initialize a struct adc_sequence from information stored in
 * struct adc_dt_spec.
 *
 * Note that this function only initializes the following fields:
 *
 * - @ref adc_sequence.channels
 * - @ref adc_sequence.resolution
 * - @ref adc_sequence.oversampling
 *
 * Other fields should be initialized by the caller.
 *
 * @param[in] spec ADC specification from Devicetree.
 * @param[out] seq Sequence to initialize.
 *
 * @retval 0 On success
 * @retval -ENOTSUP If @p spec does not have valid channel configuration
 */
static inline int adc_sequence_init_dt(const struct adc_dt_spec *spec,
           struct adc_sequence *seq)
{
 if (!spec->channel_cfg_dt_node_exists) {
  return -
# 947 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h" 3 4
         134 /* Not supported */
# 947 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h"
                ;
 }

 seq->channels = (1UL << (spec->channel_id));
 seq->resolution = spec->resolution;
 seq->oversampling = spec->oversampling;

 return 0;
}

/**
 * @brief Validate that the ADC device is ready.
 *
 * @param spec ADC specification from devicetree
 *
 * @retval true if the ADC device is ready for use and false otherwise.
 */
static inline bool adc_is_ready_dt(const struct adc_dt_spec *spec)
{
 return device_is_ready(spec->dev);
}

/**
 * @}
 */


}


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h" 1
/* auto-generated by gen_syscalls.py, don't edit */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_syscall.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 8 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h" 2



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* auto-generated by gen_syscalls.py, don't edit */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h" 2



extern "C" {


extern int z_impl_adc_channel_setup(const struct device * dev, const struct adc_channel_cfg * channel_cfg);


static inline int adc_channel_setup(const struct device * dev, const struct adc_channel_cfg * channel_cfg)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_adc_channel_setup(dev, channel_cfg);
}
# 47 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h"
extern int z_impl_adc_read(const struct device * dev, const struct adc_sequence * sequence);


static inline int adc_read(const struct device * dev, const struct adc_sequence * sequence)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_adc_read(dev, sequence);
}
# 71 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h"
extern int z_impl_adc_read_async(const struct device * dev, const struct adc_sequence * sequence, struct k_poll_signal * async);


static inline int adc_read_async(const struct device * dev, const struct adc_sequence * sequence, struct k_poll_signal * async)
{
# 84 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_adc_read_async(dev, sequence, async);
}
# 97 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/adc.h"
}
# 978 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/adc.h" 2
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/dac.h" 1
/*
 * Copyright (c) 2020 Libre Solar Technologies GmbH
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief DAC public API header file.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 1
/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/dac.h" 2


extern "C" {


/**
 * @brief DAC driver APIs
 * @defgroup dac_interface DAC driver APIs
 * @since 2.3
 * @version 0.8.0
 * @ingroup io_interfaces
 * @{
 */

/**
 * @brief Broadcast channel identifier for DACs that support it.
 * @note Only for use in dac_write_value().
 */


/**
 * @brief Structure for specifying the configuration of a DAC channel.
 */
struct dac_channel_cfg {
 /** Channel identifier of the DAC that should be configured. */
 uint8_t channel_id;
 /** Desired resolution of the DAC (depends on device capabilities). */
 uint8_t resolution;
 /** Enable output buffer for this channel.
	 * This is relevant for instance if the output is directly connected to the load,
	 * without an amplifierin between. The actual details on this are hardware dependent.
	 */
 bool buffered: 1;
 /** Enable internal output path for this channel. This is relevant for channels that
	 * support directly connecting to on-chip peripherals via internal paths. The actual
	 * details on this are hardware dependent.
	 */
 bool internal: 1;
};

/**
 * @cond INTERNAL_HIDDEN
 *
 * For internal use only, skip these in public documentation.
 */

/*
 * Type definition of DAC API function for configuring a channel.
 * See dac_channel_setup() for argument descriptions.
 */
typedef int (*dac_api_channel_setup)(const struct device *dev,
         const struct dac_channel_cfg *channel_cfg);

/*
 * Type definition of DAC API function for setting a write request.
 * See dac_write_value() for argument descriptions.
 */
typedef int (*dac_api_write_value)(const struct device *dev,
        uint8_t channel, uint32_t value);

/*
 * DAC driver API
 *
 * This is the mandatory API any DAC driver needs to expose.
 */
 struct dac_driver_api {
 dac_api_channel_setup channel_setup;
 dac_api_write_value write_value;
};

/**
 * @endcond
 */

/**
 * @brief Configure a DAC channel.
 *
 * It is required to call this function and configure each channel before it is
 * selected for a write request.
 *
 * @param dev          Pointer to the device structure for the driver instance.
 * @param channel_cfg  Channel configuration.
 *
 * @retval 0         On success.
 * @retval -EINVAL   If a parameter with an invalid value has been provided.
 * @retval -ENOTSUP  If the requested resolution is not supported.
 */
static inline int dac_channel_setup(const struct device *dev,
    const struct dac_channel_cfg *channel_cfg);

static inline int z_impl_dac_channel_setup(const struct device *dev,
        const struct dac_channel_cfg *channel_cfg)
{
 const struct dac_driver_api *api =
    (const struct dac_driver_api *)dev->api;

 return api->channel_setup(dev, channel_cfg);
}

/**
 * @brief Write a single value to a DAC channel
 *
 * @param dev         Pointer to the device structure for the driver instance.
 * @param channel     Number of the channel to be used.
 * @param value       Data to be written to DAC output registers.
 *
 * @retval 0        On success.
 * @retval -EINVAL  If a parameter with an invalid value has been provided.
 */
static inline int dac_write_value(const struct device *dev, uint8_t channel,
         uint32_t value);

static inline int z_impl_dac_write_value(const struct device *dev,
      uint8_t channel, uint32_t value)
{
 const struct dac_driver_api *api =
    (const struct dac_driver_api *)dev->api;

 return api->write_value(dev, channel, value);
}

/**
 * @}
 */


}


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/dac.h" 1
/* auto-generated by gen_syscalls.py, don't edit */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_syscall.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 8 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/dac.h" 2



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/dac.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* auto-generated by gen_syscalls.py, don't edit */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/dac.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/dac.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/dac.h" 2



extern "C" {


extern int z_impl_dac_channel_setup(const struct device * dev, const struct dac_channel_cfg * channel_cfg);


static inline int dac_channel_setup(const struct device * dev, const struct dac_channel_cfg * channel_cfg)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_dac_channel_setup(dev, channel_cfg);
}
# 47 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/dac.h"
extern int z_impl_dac_write_value(const struct device * dev, uint8_t channel, uint32_t value);


static inline int dac_write_value(const struct device * dev, uint8_t channel, uint32_t value)
{
# 60 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/dac.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_dac_write_value(dev, channel, value);
}
# 73 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/dac.h"
}
# 146 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/dac.h" 2
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 1
/**
 * @file
 *
 * @brief Public APIs for the I2C drivers.
 */

/*
 * Copyright (c) 2015 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */



/**
 * @brief I2C Interface
 * @defgroup i2c_interface I2C Interface
 * @since 1.0
 * @version 1.0.0
 * @ingroup io_interfaces
 * @{
 */

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/errno.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h"
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 1
/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 28 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 29 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/slist.h" 1
/*
 * Copyright (c) 2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

 /**
  * @file
  * @defgroup single-linked-list_apis Single-linked list
  * @ingroup datastructure_apis
  *
  * @brief Single-linked list implementation.
  *
  * Single-linked list implementation using inline macros/functions.
  * This API is not thread safe, and thus if a list is used across threads,
  * calls to functions must be protected with synchronization primitives.
  * @{
  */
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 1
/*
 * Copyright (c) 2022 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Real-Time IO device API for moving bytes with low effort
 *
 * RTIO is a context for asynchronous batch operations using a submission and completion queue.
 *
 * Asynchronous I/O operation are setup in a submission queue. Each entry in the queue describes
 * the operation it wishes to perform with some understood semantics.
 *
 * These operations may be chained in a such a way that only when the current
 * operation is complete the next will be executed. If the current operation fails
 * all chained operations will also fail.
 *
 * Operations may also be submitted as a transaction where a set of operations are considered
 * to be one operation.
 *
 * The completion of these operations typically provide one or more completion queue events.
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/string.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/*
 * string.h
 *
 * Definitions for memory and string functions.
 */
# 30 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/app_memdomain.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/app_memdomain.h"
/*
 * Copyright (c) 2019 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */



# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/*
 * DESCRIPTION
 * Platform independent, commonly used macros and defines related to linker
 * script.
 *
 * This file may be included by:
 * - Linker script files: for linker section declarations
 * - C files: for external declaration of address or size of linker section
 * - Assembly files: for external declaration of address or size of linker
 *   section
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain/common.h" 1
/*
 * Copyright (c) 2010-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/offsets.h" 1
/* THIS FILE IS AUTO GENERATED.  PLEASE DO NOT EDIT.
 *
 * This header file provides macros for the offsets of various structure
 * members.  These offset macros are primarily intended to be used in
 * assembly code.
 */
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h" 2

/* We need to dummy out DT_NODE_HAS_STATUS when building the unittests.
 * Including devicetree.h would require generating dummy header files
 * to match what gen_defines creates, so it's easier to just dummy out
 * DT_NODE_HAS_STATUS. These are undefined at the end of the file.
 */




# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/devicetree.h" 1
/*
 * SPDX-License-Identifier: Apache-2.0
 * Copyright (c) 2020 Nordic Semiconductor
 * Copyright (c) 2020, Linaro Ltd.
 *
 * Not a generated file. Feel free to modify.
 */

/**
 * @file
 * @brief Devicetree main header
 *
 * API for accessing the current application's devicetree macros.
 */
# 38 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h" 2
# 70 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h"
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/types.h" 1
/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 71 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h" 2
/*
 * Memory owned by the kernel, to be used as shared memory between
 * application threads.
 *
 * The following are extern symbols from the linker. This enables
 * the dynamic k_mem_domain and k_mem_partition creation and alignment
 * to the section produced in the linker.

 * The policy for this memory will be to initially configure all of it as
 * kernel / supervisor thread accessible.
 */
extern char _app_smem_start[];
extern char _app_smem_end[];
extern char _app_smem_size[];
extern char _app_smem_rom_start[];
extern char _app_smem_num_words[];
# 95 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h"
/* Memory owned by the kernel. Start and end will be aligned for memory
 * management/protection hardware for the target architecture.
 *
 * Consists of all kernel-side globals, all kernel objects, all thread stacks,
 * and all currently unused RAM.
 *
 * Except for the stack of the currently executing thread, none of this memory
 * is normally accessible to user threads unless specifically granted at
 * runtime.
 */
extern char __kernel_ram_start[];
extern char __kernel_ram_end[];
extern char __kernel_ram_size[];

/* Used by z_bss_zero or arch-specific implementation */
extern char __bss_start[];
extern char __bss_end[];

/* Used by z_data_copy() or arch-specific implementation */

extern char __data_region_load_start[];
extern char __data_region_start[];
extern char __data_region_end[];
# 126 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h"
/* Includes text and rodata */
extern char __rom_region_start[];
extern char __rom_region_end[];
extern char __rom_region_size[];

/* Includes all ROMable data, i.e. the size of the output image file. */
extern char _flash_used[];

/* datas, bss, noinit */
extern char _image_ram_start[];
extern char _image_ram_end[];
extern char _image_ram_size[];

extern char __text_region_start[];
extern char __text_region_end[];
extern char __text_region_size[];

extern char __rodata_region_start[];
extern char __rodata_region_end[];
extern char __rodata_region_size[];

extern char _vector_start[];
extern char _vector_end[];
# 160 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h"
/* end address of image, used by newlib for the heap */
extern char _end[];
# 204 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h"
/* Used by the Security Attribution Unit to configure the
 * Non-Secure Callable region.
 */






/*
 * Non-cached kernel memory region, currently only available on ARM Cortex-M7
 * with a MPU. Start and end will be aligned for memory management/protection
 * hardware for the target architecture.
 *
 * All the functions with '__nocache' keyword will be placed into this
 * section.
 */






/* Memory owned by the kernel. Start and end will be aligned for memory
 * management/protection hardware for the target architecture.
 *
 * All the functions with '__ramfunc' keyword will be placed into this
 * section, stored in RAM instead of FLASH.
 */

extern char __ramfunc_region_start[];
extern char __ramfunc_start[];
extern char __ramfunc_end[];
extern char __ramfunc_size[];
extern char __ramfunc_load_start[];


/* Memory owned by the kernel. Memory region for thread privilege stack buffers,
 * currently only applicable on ARM Cortex-M architecture when building with
 * support for User Mode.
 *
 * All thread privilege stack buffers will be placed into this section.
 */
# 256 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/linker-defs.h"
extern char __tdata_start[];
extern char __tdata_end[];
extern char __tdata_size[];
extern char __tdata_align[];
extern char __tbss_start[];
extern char __tbss_end[];
extern char __tbss_size[];
extern char __tbss_align[];
extern char __tls_start[];
extern char __tls_end[];
extern char __tls_size[];
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/app_memdomain.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/dlist.h" 1
/*
 * Copyright (c) 2013-2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @defgroup doubly-linked-list_apis Doubly-linked list
 * @ingroup datastructure_apis
 *
 * @brief Doubly-linked list implementation
 *
 * Doubly-linked list implementation using inline macros/functions.
 * This API is not thread safe, and thus if a list is used across threads,
 * calls to functions must be protected with synchronization primitives.
 *
 * The lists are expected to be initialized such that both the head and tail
 * pointers point to the list itself.  Initializing the lists in such a fashion
 * simplifies the adding and removing of nodes to/from the list.
 *
 * @{
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/app_memdomain.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/app_memdomain.h" 2

/**
 * @brief Application memory domain APIs
 * @defgroup mem_domain_apis_app Application memory domain APIs
 * @ingroup mem_domain_apis
 * @{
 */
# 153 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/app_memory/app_memdomain.h"
/**
 * @}
 */
# 32 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/device.h" 1
/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 33 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 34 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/__assert.h" 1
/*
 * Copyright (c) 2011-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 35 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 1
/*
 * Copyright (c) 1997-2015, Wind River Systems, Inc.
 * Copyright (c) 2021 Intel Corporation
 * Copyright (c) 2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 36 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Memory Blocks Allocator
 */





extern "C" {


# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 21 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 22 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 24 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/math/ilog2.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/math/ilog2.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/toolchain.h"
/*
 * Copyright (c) 2010-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Macros to abstract toolchain specific capabilities
 *
 * This file contains various macros to abstract compiler capabilities that
 * utilize toolchain specific attributes and/or pragmas.
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/math/ilog2.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/arch/common/ffs.h" 1
/*
 * Copyright (c) 2015, Wind River Systems, Inc.
 * Copyright (c) 2017, Oticon A/S
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/math/ilog2.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/math/ilog2.h" 2

/**
 * @file
 * @brief Provide ilog2() function
 */

/**
 *
 * @brief Calculate the floor of log2 for compile time constant
 *
 * This calculates the floor of log2 (integer log2) for 32-bit
 * unsigned integer.
 *
 * @note This should only be used for compile time constant
 *       when value is known during preprocessing stage.
 *       DO NOT USE for runtime code due to the big tree of
 *       nested if-else blocks.
 *
 * @warning Will return 0 if input value is 0, which is
 *          invalid for log2.
 *
 * @param n Input value
 * @return Integer log2 of @n
 */
# 75 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/math/ilog2.h"
/**
 *
 * @brief Calculate integer log2
 *
 * This calculates the floor of log2 (integer of log2).
 *
 * @warning Will return 0 if input value is 0, which is
 *          invalid for log2.
 *
 * @param n Input value
 * @return Integer log2 of @p n
 */
/*
 * This is in #define form as this needs to also work on
 * compile time constants. Doing this as a static inline
 * function will result in compiler complaining with
 * "initializer element is not constant".
 */
# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/bitarray.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */





extern "C" {


# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stddef.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/bitarray.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 16 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/bitarray.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h"
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/bitarray.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 19 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/bitarray.h" 2

/**
 * @file
 *
 * @defgroup bitarray_apis Bit array
 * @ingroup datastructure_apis
 *
 * @brief Store and manipulate bits in a bit array.
 *
 * @{
 */

/** @cond INTERNAL_HIDDEN */
struct sys_bitarray {
 /* Number of bits */
 uint32_t num_bits;

 /* Number of bundles */
 uint32_t num_bundles;

 /* Bundle of bits */
 uint32_t *bundles;

 /* Spinlock guarding access to this bit array */
 struct k_spinlock lock;
};
/** @endcond */

/** Bitarray structure */
typedef struct sys_bitarray sys_bitarray_t;

/**
 * @brief Create a bitarray object.
 *
 * @param name Name of the bitarray object.
 * @param total_bits Total number of bits in this bitarray object.
 * @param sba_mod Modifier to the bitarray variables.
 */
# 68 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/bitarray.h"
/**
 * @brief Create a bitarray object.
 *
 * @param name Name of the bitarray object.
 * @param total_bits Total number of bits in this bitarray object.
 */



/**
 * @brief Create a static bitarray object.
 *
 * @param name Name of the bitarray object.
 * @param total_bits Total number of bits in this bitarray object.
 */



/**
 * Set a bit in a bit array
 *
 * @param[in] bitarray Bitarray struct
 * @param[in] bit      The bit to be set
 *
 * @retval 0       Operation successful
 * @retval -EINVAL Invalid argument (e.g. bit to set exceeds
 *                 the number of bits in bit array, etc.)
 */
int sys_bitarray_set_bit(sys_bitarray_t *bitarray, size_t bit);

/**
 * Clear a bit in a bit array
 *
 * @param[in] bitarray Bitarray struct
 * @param[in] bit      The bit to be cleared
 *
 * @retval 0       Operation successful
 * @retval -EINVAL Invalid argument (e.g. bit to clear exceeds
 *                 the number of bits in bit array, etc.)
 */
int sys_bitarray_clear_bit(sys_bitarray_t *bitarray, size_t bit);

/**
 * Test whether a bit is set or not
 *
 * @param[in]  bitarray Bitarray struct
 * @param[in]  bit      The bit to be tested
 * @param[out] val      The value of the bit (0 or 1)
 *
 * @retval 0       Operation successful
 * @retval -EINVAL Invalid argument (e.g. bit to test exceeds
 *                 the number of bits in bit array, etc.)
 */
int sys_bitarray_test_bit(sys_bitarray_t *bitarray, size_t bit, int *val);

/**
 * Test the bit and set it
 *
 * @param[in]  bitarray Bitarray struct
 * @param[in]  bit      The bit to be tested and set
 * @param[out] prev_val Previous value of the bit (0 or 1)
 *
 * @retval 0       Operation successful
 * @retval -EINVAL Invalid argument (e.g. bit to test exceeds
 *                 the number of bits in bit array, etc.)
 */
int sys_bitarray_test_and_set_bit(sys_bitarray_t *bitarray, size_t bit, int *prev_val);

/**
 * Test the bit and clear it
 *
 * @param[in]  bitarray Bitarray struct
 * @param[in]  bit      The bit to be tested and cleared
 * @param[out] prev_val Previous value of the bit (0 or 1)
 *
 * @retval 0       Operation successful
 * @retval -EINVAL Invalid argument (e.g. bit to test exceeds
 *                 the number of bits in bit array, etc.)
 */
int sys_bitarray_test_and_clear_bit(sys_bitarray_t *bitarray, size_t bit, int *prev_val);

/**
 * Allocate bits in a bit array
 *
 * This finds a number of bits (@p num_bits) in a contiguous of
 * previously unallocated region. If such a region exists, the bits are
 * marked as allocated and the offset to the start of this region is
 * returned via @p offset.
 *
 * @param[in]  bitarray Bitarray struct
 * @param[in]  num_bits Number of bits to allocate
 * @param[out] offset   Offset to the start of allocated region if
 *                      successful
 *
 * @retval 0       Allocation successful
 * @retval -EINVAL Invalid argument (e.g. allocating more bits than
 *                 the bitarray has, trying to allocate 0 bits, etc.)
 * @retval -ENOSPC No contiguous region big enough to accommodate
 *                 the allocation
 */
int sys_bitarray_alloc(sys_bitarray_t *bitarray, size_t num_bits,
         size_t *offset);

/**
 * Calculates the bit-wise XOR of two bitarrays in a region.
 * The result is stored in the first bitarray passed in (@p dst).
 * Both bitarrays must be of the same size.
 *
 * @param dst      Bitarray struct
 * @param other    Bitarray struct
 * @param num_bits Number of bits in the region, must be larger than 0
 * @param offset   Starting bit location
 *
 * @retval 0       Operation successful
 * @retval -EINVAL Invalid argument (e.g. out-of-bounds access, mismatching bitarrays, trying to xor
 * 0 bits, etc.)
 */
int sys_bitarray_xor(sys_bitarray_t *dst, sys_bitarray_t *other, size_t num_bits, size_t offset);

/**
 * Find nth bit set in region
 *
 * This counts the number of bits set (@p count) in a
 * region (@p offset, @p num_bits) and returns the index (@p found_at)
 * of the nth set bit, if it exists, as long with a zero return value.
 *
 * If it does not exist, @p found_at is not updated and the method returns
 *
 * @param[in]  bitarray Bitarray struct
 * @param[in]  n        Nth bit set to look for
 * @param[in]  num_bits Number of bits to check, must be larger than 0
 * @param[in]  offset   Starting bit position
 * @param[out] found_at Index of the nth bit set, if found
 *
 * @retval 0       Operation successful
 * @retval 1       Nth bit set was not found in region
 * @retval -EINVAL Invalid argument (e.g. out-of-bounds access, trying to count 0 bits, etc.)
 */
int sys_bitarray_find_nth_set(sys_bitarray_t *bitarray, size_t n, size_t num_bits, size_t offset,
         size_t *found_at);

/**
 * Count bits set in a bit array region
 *
 * This counts the number of bits set (@p count) in a
 * region (@p offset, @p num_bits).
 *
 * @param[in]  bitarray Bitarray struct
 * @param[in]  num_bits Number of bits to check, must be larger than 0
 * @param[in]  offset   Starting bit position
 * @param[out] count    Number of bits set in the region if successful
 *
 * @retval 0       Operation successful
 * @retval -EINVAL Invalid argument (e.g. out-of-bounds access, trying to count 0 bits, etc.)
 */
int sys_bitarray_popcount_region(sys_bitarray_t *bitarray, size_t num_bits, size_t offset,
     size_t *count);

/**
 * Free bits in a bit array
 *
 * This marks the number of bits (@p num_bits) starting from @p offset
 * as no longer allocated.
 *
 * @param bitarray Bitarray struct
 * @param num_bits Number of bits to free
 * @param offset   Starting bit position to free
 *
 * @retval 0       Free is successful
 * @retval -EINVAL Invalid argument (e.g. try to free more bits than
 *                 the bitarray has, trying to free 0 bits, etc.)
 * @retval -EFAULT The bits in the indicated region are not all allocated.
 */
int sys_bitarray_free(sys_bitarray_t *bitarray, size_t num_bits,
        size_t offset);

/**
 * Test if bits in a region is all set.
 *
 * This tests if the number of bits (@p num_bits) in region starting
 * from @p offset are all set.
 *
 * @param bitarray Bitarray struct
 * @param num_bits Number of bits to test
 * @param offset   Starting bit position to test
 *
 * @retval true    All bits are set.
 * @retval false   Not all bits are set.
 */
bool sys_bitarray_is_region_set(sys_bitarray_t *bitarray, size_t num_bits,
    size_t offset);

/**
 * Test if bits in a region is all cleared.
 *
 * This tests if the number of bits (@p num_bits) in region starting
 * from @p offset are all cleared.
 *
 * @param bitarray Bitarray struct
 * @param num_bits Number of bits to test
 * @param offset   Starting bit position to test
 *
 * @retval true    All bits are cleared.
 * @retval false   Not all bits are cleared.
 */
bool sys_bitarray_is_region_cleared(sys_bitarray_t *bitarray, size_t num_bits,
        size_t offset);

/**
 * Set all bits in a region.
 *
 * This sets the number of bits (@p num_bits) in region starting
 * from @p offset.
 *
 * @param bitarray Bitarray struct
 * @param num_bits Number of bits to test
 * @param offset   Starting bit position to test
 *
 * @retval 0       Operation successful
 * @retval -EINVAL Invalid argument (e.g. bit to set exceeds
 *                 the number of bits in bit array, etc.)
 */
int sys_bitarray_set_region(sys_bitarray_t *bitarray, size_t num_bits,
       size_t offset);

/**
 * Test if all bits in a region are cleared/set and set/clear them
 * in a single atomic operation
 *
 * This checks if all the bits (@p num_bits) in region starting
 * from @p offset are in required state. If even one bit is not,
 * -EEXIST is returned.  If the whole region is set/cleared
 * it is set to opposite state. The check and set is performed as a single
 * atomic operation.
 *
 * @param bitarray Bitarray struct
 * @param num_bits Number of bits to test and set
 * @param offset   Starting bit position to test and set
 * @param to_set   if true the region will be set if all bits are cleared
 *		   if false the region will be cleard if all bits are set
 *
 * @retval 0	   Operation successful
 * @retval -EINVAL Invalid argument (e.g. bit to set exceeds
 *		   the number of bits in bit array, etc.)
 * @retval -EEXIST at least one bit in the region is set/cleared,
 *		   operation cancelled
 */
int sys_bitarray_test_and_set_region(sys_bitarray_t *bitarray, size_t num_bits,
         size_t offset, bool to_set);

/**
 * Clear all bits in a region.
 *
 * This clears the number of bits (@p num_bits) in region starting
 * from @p offset.
 *
 * @param bitarray Bitarray struct
 * @param num_bits Number of bits to test
 * @param offset   Starting bit position to test
 *
 * @retval 0       Operation successful
 * @retval -EINVAL Invalid argument (e.g. bit to set exceeds
 *                 the number of bits in bit array, etc.)
 */
int sys_bitarray_clear_region(sys_bitarray_t *bitarray, size_t num_bits,
         size_t offset);

/**
 * @}
 */


}
# 26 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_stats.h" 1
/*
 * Copyright (c) 2022 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Memory Statistics
 */
# 27 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h" 2



/**
 * @defgroup mem_blocks_apis Memory Blocks APIs
 * @ingroup memory_management
 * @{
 */

/**
 * @brief Memory Blocks Allocator
 */
struct sys_mem_blocks;

/**
 * @brief Multi Memory Blocks Allocator
 */
struct sys_multi_mem_blocks;

/**
 * @typedef sys_mem_blocks_t
 *
 * @brief Memory Blocks Allocator
 */
typedef struct sys_mem_blocks sys_mem_blocks_t;

/**
 * @typedef sys_multi_mem_blocks_t
 *
 * @brief Multi Memory Blocks Allocator
 */
typedef struct sys_multi_mem_blocks sys_multi_mem_blocks_t;

/**
 * @brief Multi memory blocks allocator choice function
 *
 * This is a user-provided functions whose responsibility is selecting
 * a specific memory blocks allocator based on the opaque cfg value,
 * which is specified by the user as an argument to
 * sys_multi_mem_blocks_alloc(). The callback returns a pointer to
 * the chosen allocator where the allocation is performed.
 *
 * NULL may be returned, which will cause the
 * allocation to fail and a -EINVAL reported to the calling code.
 *
 * @param group Multi memory blocks allocator structure.
 * @param cfg   An opaque user-provided value. It may be interpreted in
 *              any way by the application.
 *
 * @return A pointer to the chosen allocator, or NULL if none is chosen.
 */
typedef sys_mem_blocks_t *(*sys_multi_mem_blocks_choice_fn_t)
 (struct sys_multi_mem_blocks *group, void *cfg);

/**
 * @cond INTERNAL_HIDDEN
 */

struct sys_mem_blocks_info {
 uint32_t num_blocks;
 uint8_t blk_sz_shift;




};

struct sys_mem_blocks {
 struct sys_mem_blocks_info info;

 /* Memory block buffer */
 uint8_t *buffer;

 /* Bitmap of allocated blocks */
 sys_bitarray_t *bitmap;
# 110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h"
};

struct sys_multi_mem_blocks {
 /* Number of allocators in this group */
 int num_allocators;
 sys_multi_mem_blocks_choice_fn_t choice_fn;
 sys_mem_blocks_t *allocators[8];
};

/**
 * @brief Create a memory block object with a providing backing buffer.
 *
 * @param name     Name of the memory block object.
 * @param blk_sz   Size of each memory block (in bytes, power of 2).
 * @param num_blks Total number of memory blocks.
 * @param buf      Backing buffer of type uint8_t.
 * @param mbmod    Modifier to the memory block struct
 */
# 141 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h"
/**
 * @brief Create a memory block object with a new backing buffer.
 *
 * @param name     Name of the memory block object.
 * @param blk_sz   Size of each memory block (in bytes, power of 2).
 * @param num_blks Total number of memory blocks.
 * @param balign   Alignment of the memory block buffer (power of 2).
 * @param mbmod    Modifier to the memory block struct
 */
# 158 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h"
/**
 * INTERNAL_HIDDEN @endcond
 */

/**
 * @brief Create a memory block object with a new backing buffer.
 *
 * @param name      Name of the memory block object.
 * @param blk_sz    Size of each memory block (in bytes).
 * @param num_blks  Total number of memory blocks.
 * @param buf_align Alignment of the memory block buffer (power of 2).
 */



/**
 * @brief Create a static memory block object with a new backing buffer.
 *
 * @param name      Name of the memory block object.
 * @param blk_sz    Size of each memory block (in bytes).
 * @param num_blks  Total number of memory blocks.
 * @param buf_align Alignment of the memory block buffer (power of 2).
 */




/**
 * @brief Create a memory block object with a providing backing buffer.
 *
 * @param name     Name of the memory block object.
 * @param blk_sz   Size of each memory block (in bytes).
 * @param num_blks Total number of memory blocks.
 * @param buf      Backing buffer of type uint8_t.
 */



/**
 * @brief Create a static memory block object with a providing backing buffer.
 *
 * @param name     Name of the memory block object.
 * @param blk_sz   Size of each memory block (in bytes).
 * @param num_blks Total number of memory blocks.
 * @param buf      Backing buffer of type uint8_t.
 */



/**
 * @brief Allocate multiple memory blocks
 *
 * Allocate multiple memory blocks, and place their pointers into
 * the output array.
 *
 * @param[in]  mem_block  Pointer to memory block object.
 * @param[in]  count      Number of blocks to allocate.
 * @param[out] out_blocks Output array to be populated by pointers to
 *                        the memory blocks. It must have at least
 *                        @p count elements.
 *
 * @retval 0       Successful
 * @retval -EINVAL Invalid argument supplied.
 * @retval -ENOMEM Not enough blocks for allocation.
 */
int sys_mem_blocks_alloc(sys_mem_blocks_t *mem_block, size_t count,
    void **out_blocks);

/**
 * @brief Allocate a contiguous set of memory blocks
 *
 * Allocate multiple memory blocks, and place their pointers into
 * the output array.
 *
 * @param[in]  mem_block Pointer to memory block object.
 * @param[in]  count     Number of blocks to allocate.
 * @param[out] out_block Output pointer to the start of the allocated block set
 *
 * @retval 0       Successful
 * @retval -EINVAL Invalid argument supplied.
 * @retval -ENOMEM Not enough contiguous blocks for allocation.
 */
int sys_mem_blocks_alloc_contiguous(sys_mem_blocks_t *mem_block, size_t count,
       void **out_block);

/**
 * @brief Force allocation of a specified blocks in a memory block object
 *
 * Allocate a specified blocks in a memory block object.
 * Note: use caution when mixing sys_mem_blocks_get and sys_mem_blocks_alloc,
 * allocation may take any of the free memory space
 *
 *
 * @param[in]  mem_block  Pointer to memory block object.
 * @param[in]  in_block   Address of the first required block to allocate
 * @param[in]  count      Number of blocks to allocate.
 *
 * @retval 0       Successful
 * @retval -EINVAL Invalid argument supplied.
 * @retval -ENOMEM Some of blocks are taken and cannot be allocated
 */
int sys_mem_blocks_get(sys_mem_blocks_t *mem_block, void *in_block, size_t count);

/**
 * @brief check if the region is free
 *
 * @param[in]  mem_block  Pointer to memory block object.
 * @param[in]  in_block   Address of the first block to check
 * @param[in]  count      Number of blocks to check.
 *
 * @retval 1 All memory blocks are free
 * @retval 0 At least one of the memory blocks is taken
 */
int sys_mem_blocks_is_region_free(sys_mem_blocks_t *mem_block, void *in_block, size_t count);

/**
 * @brief Free multiple memory blocks
 *
 * Free multiple memory blocks according to the array of memory
 * block pointers.
 *
 * @param[in] mem_block Pointer to memory block object.
 * @param[in] count     Number of blocks to free.
 * @param[in] in_blocks Input array of pointers to the memory blocks.
 *
 * @retval 0       Successful
 * @retval -EINVAL Invalid argument supplied.
 * @retval -EFAULT Invalid pointers supplied.
 */
int sys_mem_blocks_free(sys_mem_blocks_t *mem_block, size_t count,
   void **in_blocks);

/**
 * @brief Free contiguous multiple memory blocks
 *
 * Free contiguous multiple memory blocks
 *
 * @param[in] mem_block Pointer to memory block object.
 * @param[in] block     Pointer to the first memory block
 * @param[in] count     Number of blocks to free.
 *
 * @retval 0       Successful
 * @retval -EINVAL Invalid argument supplied.
 * @retval -EFAULT Invalid pointer supplied.
 */
int sys_mem_blocks_free_contiguous(sys_mem_blocks_t *mem_block, void *block, size_t count);
# 333 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mem_blocks.h"
/**
 * @brief Initialize multi memory blocks allocator group
 *
 * Initialize a sys_multi_mem_block struct with the specified choice
 * function. Note that individual allocator must be added later with
 * sys_multi_mem_blocks_add_allocator.
 *
 * @param group     Multi memory blocks allocator structure.
 * @param choice_fn A sys_multi_mem_blocks_choice_fn_t callback used to
 *                  select the allocator to be used at allocation time
 */
void sys_multi_mem_blocks_init(sys_multi_mem_blocks_t *group,
          sys_multi_mem_blocks_choice_fn_t choice_fn);

/**
 * @brief Add an allocator to an allocator group
 *
 * This adds a known allocator to an existing multi memory blocks
 * allocator group.
 *
 * @param group Multi memory blocks allocator structure.
 * @param alloc Allocator to add
 */
void sys_multi_mem_blocks_add_allocator(sys_multi_mem_blocks_t *group,
     sys_mem_blocks_t *alloc);

/**
 * @brief Allocate memory from multi memory blocks allocator group
 *
 * Just as for sys_mem_blocks_alloc(), allocates multiple blocks of
 * memory. Takes an opaque configuration pointer passed to the choice
 * function, which is used by integration code to choose an allocator.
 *
 * @param[in]  group      Multi memory blocks allocator structure.
 * @param[in]  cfg        Opaque configuration parameter,
 *                        as for sys_multi_mem_blocks_choice_fn_t
 * @param[in]  count      Number of blocks to allocate
 * @param[out] out_blocks Output array to be populated by pointers to
 *                        the memory blocks. It must have at least
 *                        @p count elements.
 * @param[out] blk_size   If not NULL, output the block size of
 *                        the chosen allocator.
 *
 * @retval 0       Successful
 * @retval -EINVAL Invalid argument supplied, or no allocator chosen.
 * @retval -ENOMEM Not enough blocks for allocation.
 */
int sys_multi_mem_blocks_alloc(sys_multi_mem_blocks_t *group,
          void *cfg, size_t count,
          void **out_blocks,
          size_t *blk_size);

/**
 * @brief Free memory allocated from multi memory blocks allocator group
 *
 * Free previous allocated memory blocks from sys_multi_mem_blocks_alloc().
 *
 * Note that all blocks in @p in_blocks must be from the same allocator.
 *
 * @param[in] group     Multi memory blocks allocator structure.
 * @param[in] count     Number of blocks to free.
 * @param[in] in_blocks Input array of pointers to the memory blocks.
 *
 * @retval 0       Successful
 * @retval -EINVAL Invalid argument supplied, or no allocator chosen.
 * @retval -EFAULT Invalid pointer(s) supplied.
 */
int sys_multi_mem_blocks_free(sys_multi_mem_blocks_t *group,
         size_t count, void **in_blocks);

/** @} */


}
# 37 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/util.h" 1
/*
 * Copyright (c) 2011-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Misc utilities
 *
 * Misc utilities usable by the kernel and application code.
 */
# 38 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/iterable_sections.h" 1
/*
 * Copyright (C) 2020, Intel Corporation
 * Copyright (C) 2023, Nordic Semiconductor ASA
 * SPDX-License-Identifier: Apache-2.0
 */
# 39 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 1
/*
 * Copyright (c) 2010-2011 Dmitry Vyukov
 * Copyright (c) 2023 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/stdint.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */
# 13 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/atomic.h"
/*
 * Copyright (c) 1997-2015, Wind River Systems, Inc.
 * Copyright (c) 2021 Intel Corporation
 * Copyright (c) 2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 2


extern "C" {


/**
 * @brief Multiple Producer Single Consumer (MPSC) Lockfree Queue API
 * @defgroup mpsc_lockfree MPSC Lockfree Queue API
 * @ingroup datastructure_apis
 * @{
 */

/**
 * @file mpsc_lockfree.h
 *
 * @brief A wait-free intrusive multi producer single consumer (MPSC) queue using
 * a singly linked list. Ordering is First-In-First-Out.
 *
 * Based on the well known and widely used wait-free MPSC queue described by
 * Dmitry Vyukov with some slight changes to account for needs of an
 * RTOS on a variety of archs. Both consumer and producer are wait free. No CAS
 * loop or lock is needed.
 *
 * An MPSC queue is safe to produce or consume in an ISR with O(1) push/pop.
 *
 * @warning MPSC is *not* safe to consume in multiple execution contexts.
 */

/*
 * On single core systems atomics are unnecessary
 * and cause a lot of unnecessary cache invalidation
 *
 * Using volatile to at least ensure memory is read/written
 * by the compiler generated op codes is enough.
 *
 * On SMP atomics *must* be used to ensure the pointers
 * are updated in the correct order.
 */
# 63 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
typedef struct mpsc_node *mpsc_ptr_t;
# 76 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
/**
 * @brief Queue member
 */
struct mpsc_node {
 mpsc_ptr_t next;
};

/**
 * @brief MPSC Queue
 */
struct mpsc {
 mpsc_ptr_t head;
 struct mpsc_node *tail;
 struct mpsc_node stub;
};

/**
 * @brief Static initializer for a mpsc queue
 *
 * Since the queue is
 *
 * @param symbol name of the queue
 */
# 108 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
/**
 * @brief Initialize queue
 *
 * @param q Queue to initialize or reset
 */
static inline void mpsc_init(struct mpsc *q)
{
 q->head = &q->stub;
 q->tail = &q->stub;
 q->stub.next = 
# 117 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 3 4
__null
# 117 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
                                ;
}

/**
 * @brief Push a node
 *
 * @param q Queue to push the node to
 * @param n Node to push into the queue
 */
static inline __attribute__((always_inline)) void mpsc_push(struct mpsc *q, struct mpsc_node *n)
{
 struct mpsc_node *prev;
 int key;

 n->next = 
# 131 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 3 4
__null
# 131 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
                           ;

 key = arch_irq_lock();
 prev = (struct mpsc_node *)({ mpsc_ptr_t tmp = q->head; q->head = n; tmp; });
 prev->next = n;
 arch_irq_unlock(key);
}

/**
 * @brief Pop a node off of the list
 *
 * @retval NULL When no node is available
 * @retval node When node is available
 */
static inline struct mpsc_node *mpsc_pop(struct mpsc *q)
{
 struct mpsc_node *head;
 struct mpsc_node *tail = q->tail;
 struct mpsc_node *next = (struct mpsc_node *)tail->next;

 /* Skip over the stub/sentinel */
 if (tail == &q->stub) {
  if (next == 
# 153 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 3 4
             __null
# 153 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
                 ) {
   return 
# 154 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 3 4
         __null
# 154 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
             ;
  }

  q->tail = next;
  tail = next;
  next = (struct mpsc_node *)next->next;
 }

 /* If next is non-NULL then a valid node is found, return it */
 if (next != 
# 163 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 3 4
            __null
# 163 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
                ) {
  q->tail = next;
  return tail;
 }

 head = (struct mpsc_node *)q->head;

 /* If next is NULL, and the tail != HEAD then the queue has pending
	 * updates that can't yet be accessed.
	 */
 if (tail != head) {
  return 
# 174 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 3 4
        __null
# 174 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
            ;
 }

 mpsc_push(q, &q->stub);

 next = (struct mpsc_node *)tail->next;

 if (next != 
# 181 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 3 4
            __null
# 181 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
                ) {
  q->tail = next;
  return tail;
 }

 return 
# 186 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h" 3 4
       __null
# 186 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/mpsc_lockfree.h"
           ;
}

/**
 * @}
 */


}
# 40 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2


extern "C" {



/**
 * @brief RTIO
 * @defgroup rtio RTIO
 * @since 3.2
 * @version 0.1.0
 * @ingroup os_services
 * @{
 */

/**
 * @brief RTIO Predefined Priorities
 * @defgroup rtio_sqe_prio RTIO Priorities
 * @ingroup rtio
 * @{
 */

/**
 * @brief Low priority
 */


/**
 * @brief Normal priority
 */


/**
 * @brief High priority
 */


/**
 * @}
 */


/**
 * @brief RTIO SQE Flags
 * @defgroup rtio_sqe_flags RTIO SQE Flags
 * @ingroup rtio
 * @{
 */

/**
 * @brief The next request in the queue should wait on this one.
 *
 * Chained SQEs are individual units of work describing patterns of
 * ordering and failure cascading. A chained SQE must be started only
 * after the one before it. They are given to the iodevs one after another.
 */


/**
 * @brief The next request in the queue is part of a transaction.
 *
 * Transactional SQEs are sequential parts of a unit of work.
 * Only the first transactional SQE is submitted to an iodev, the
 * remaining SQEs are never individually submitted but instead considered
 * to be part of the transaction to the single iodev. The first sqe in the
 * sequence holds the iodev that will be used and the last holds the userdata
 * that will be returned in a single completion on failure/success.
 */



/**
 * @brief The buffer should be allocated by the RTIO mempool
 *
 * This flag can only exist if the CONFIG_RTIO_SYS_MEM_BLOCKS Kconfig was
 * enabled and the RTIO context was created via the RTIO_DEFINE_WITH_MEMPOOL()
 * macro. If set, the buffer associated with the entry was allocated by the
 * internal memory pool and should be released as soon as it is no longer
 * needed via a call to rtio_release_mempool().
 */


/**
 * @brief The SQE should not execute if possible
 *
 * If possible (not yet executed), the SQE should be canceled by flagging it as failed and returning
 * -ECANCELED as the result.
 */


/**
 * @brief The SQE should continue producing CQEs until canceled
 *
 * This flag must exist along @ref RTIO_SQE_MEMPOOL_BUFFER and signals that when a read is
 * complete. It should be placed back in queue until canceled.
 */


/**
 * @brief The SQE does not produce a CQE.
 */


/**
 * @}
 */

/**
 * @brief RTIO CQE Flags
 * @defgroup rtio_cqe_flags RTIO CQE Flags
 * @ingroup rtio
 * @{
 */

/**
 * @brief The entry's buffer was allocated from the RTIO's mempool
 *
 * If this bit is set, the buffer was allocated from the memory pool and should be recycled as
 * soon as the application is done with it.
 */




/**
 * @brief Get the block index of a mempool flags
 *
 * @param flags The CQE flags value
 * @return The block index portion of the flags field.
 */


/**
 * @brief Get the block count of a mempool flags
 *
 * @param flags The CQE flags value
 * @return The block count portion of the flags field.
 */


/**
 * @brief Prepare CQE flags for a mempool read.
 *
 * @param blk_idx The mempool block index
 * @param blk_cnt The mempool block count
 * @return A shifted and masked value that can be added to the flags field with an OR operator.
 */




/**
 * @}
 */

/**
 * @brief Equivalent to the I2C_MSG_STOP flag
 */


/**
 * @brief Equivalent to the I2C_MSG_RESTART flag
 */


/**
 * @brief Equivalent to the I2C_MSG_ADDR_10_BITS
 */


/**
 * @brief Equivalent to the I3C_MSG_STOP flag
 */


/**
 * @brief Equivalent to the I3C_MSG_RESTART flag
 */


/**
 * @brief Equivalent to the I3C_MSG_HDR
 */


/**
 * @brief Equivalent to the I3C_MSG_NBCH
 */


/**
 * @brief I3C HDR Mode Mask
 */


/**
 * @brief I3C HDR Mode Mask
 */



/**
 * @brief I3C HDR Mode Mask
 */



/**
 * @brief I3C HDR 7b Command Code
 */


/**
 * @brief I3C HDR 7b Command Code
 */



/**
 * @brief I3C HDR 7b Command Code
 */



/** @cond ignore */
struct rtio;
struct rtio_cqe;
struct rtio_sqe;
struct rtio_sqe_pool;
struct rtio_cqe_pool;
struct rtio_iodev;
struct rtio_iodev_sqe;
/** @endcond */

/**
 * @typedef rtio_callback_t
 * @brief Callback signature for RTIO_OP_CALLBACK
 * @param r RTIO context being used with the callback
 * @param sqe Submission for the callback op
 * @param arg0 Argument option as part of the sqe
 */
typedef void (*rtio_callback_t)(struct rtio *r, const struct rtio_sqe *sqe, void *arg0);

/**
 * @brief A submission queue event
 */
struct rtio_sqe {
 uint8_t op;

 uint8_t prio;

 uint16_t flags;

 uint32_t iodev_flags;

 const struct rtio_iodev *iodev;

 /**
	 * User provided data which is returned upon operation completion. Could be a pointer or
	 * integer.
	 *
	 * If unique identification of completions is desired this should be
	 * unique as well.
	 */
 void *userdata;

 union {

  /** OP_TX */
  struct {
   uint32_t buf_len;
   const uint8_t *buf;
  } tx;

  /** OP_RX */
  struct {
   uint32_t buf_len;
   uint8_t *buf;
  } rx;

  /** OP_TINY_TX */
  struct {
   uint8_t buf_len;
   uint8_t buf[7];
  } tiny_tx;

  /** OP_CALLBACK */
  struct {
   rtio_callback_t callback;
   void *arg0;
  } callback;

  /** OP_TXRX */
  struct {
   uint32_t buf_len;
   const uint8_t *tx_buf;
   uint8_t *rx_buf;
  } txrx;

  /** OP_I2C_CONFIGURE */
  uint32_t i2c_config;

  /** OP_I3C_CONFIGURE */
  struct {
   /* enum i3c_config_type type; */
   int type;
   void *config;
  } i3c_config;

  /** OP_I3C_CCC */
  /* struct i3c_ccc_payload *ccc_payload; */
  void *ccc_payload;
 };
};

/** @cond ignore */
/* Ensure the rtio_sqe never grows beyond a common cacheline size of 64 bytes */
static_assert(sizeof(struct rtio_sqe) <= 64, "" );
/** @endcond */

/**
 * @brief A completion queue event
 */
struct rtio_cqe {
 struct mpsc_node q;

 int32_t result;
 void *userdata;
 uint32_t flags;
};

struct rtio_sqe_pool {
 struct mpsc free_q;
 const uint16_t pool_size;
 uint16_t pool_free;
 struct rtio_iodev_sqe *pool;
};

struct rtio_cqe_pool {
 struct mpsc free_q;
 const uint16_t pool_size;
 uint16_t pool_free;
 struct rtio_cqe *pool;
};

/**
 * @brief An RTIO context containing what can be viewed as a pair of queues.
 *
 * A queue for submissions (available and in queue to be produced) as well as a queue
 * of completions (available and ready to be consumed).
 *
 * The rtio executor along with any objects implementing the rtio_iodev interface are
 * the consumers of submissions and producers of completions.
 *
 * No work is started until rtio_submit() is called.
 */
struct rtio {
# 414 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
 /* Total number of completions */
 atomic_t cq_count;

 /* Number of completions that were unable to be submitted with results
	 * due to the cq spsc being full
	 */
 atomic_t xcqcnt;

 /* Submission queue object pool with free list */
 struct rtio_sqe_pool *sqe_pool;

 /* Complete queue object pool with free list */
 struct rtio_cqe_pool *cqe_pool;






 /* Submission queue */
 struct mpsc sq;

 /* Completion queue */
 struct mpsc cq;
};

/** The memory partition associated with all RTIO context information */
extern struct k_mem_partition rtio_partition;

/**
 * @brief Get the mempool block size of the RTIO context
 *
 * @param[in] r The RTIO context
 * @return The size of each block in the context's mempool
 * @return 0 if the context doesn't have a mempool
 */
static inline size_t rtio_mempool_block_size(const struct rtio *r)
{

 (void)(r);
 return 0;






}

/**
 * @brief Compute the mempool block index for a given pointer
 *
 * @param[in] r RTIO context
 * @param[in] ptr Memory pointer in the mempool
 * @return Index of the mempool block associated with the pointer. Or UINT16_MAX if invalid.
 */
# 487 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
/**
 * @brief IO device submission queue entry
 *
 * May be cast safely to and from a rtio_sqe as they occupy the same memory provided by the pool
 */
struct rtio_iodev_sqe {
 struct rtio_sqe sqe;
 struct mpsc_node q;
 struct rtio_iodev_sqe *next;
 struct rtio *r;
};

/**
 * @brief API that an RTIO IO device should implement
 */
struct rtio_iodev_api {
 /**
	 * @brief Submit to the iodev an entry to work on
	 *
	 * This call should be short in duration and most likely
	 * either enqueue or kick off an entry with the hardware.
	 *
	 * @param iodev_sqe Submission queue entry
	 */
 void (*submit)(struct rtio_iodev_sqe *iodev_sqe);
};

/**
 * @brief An IO device with a function table for submitting requests
 */
struct rtio_iodev {
 /* Function pointer table */
 const struct rtio_iodev_api *api;

 /* Data associated with this iodev */
 void *data;
};

/** An operation that does nothing and will complete immediately */


/** An operation that receives (reads) */


/** An operation that transmits (writes) */


/** An operation that transmits tiny writes by copying the data to write */


/** An operation that calls a given function (callback) */


/** An operation that transceives (reads and writes simultaneously) */


/** An operation to recover I2C buses */


/** An operation to configure I2C buses */


/** An operation to recover I3C buses */


/** An operation to configure I3C buses */


/** An operation to sends I3C CCC */


/**
 * @brief Prepare a nop (no op) submission
 */
static inline void rtio_sqe_prep_nop(struct rtio_sqe *sqe,
    const struct rtio_iodev *iodev,
    void *userdata)
{
 memset(sqe, 0, sizeof(struct rtio_sqe));
 sqe->op = 0;
 sqe->iodev = iodev;
 sqe->userdata = userdata;
}

/**
 * @brief Prepare a read op submission
 */
static inline void rtio_sqe_prep_read(struct rtio_sqe *sqe,
          const struct rtio_iodev *iodev,
          int8_t prio,
          uint8_t *buf,
          uint32_t len,
          void *userdata)
{
 memset(sqe, 0, sizeof(struct rtio_sqe));
 sqe->op = (0 +1);
 sqe->prio = prio;
 sqe->iodev = iodev;
 sqe->rx.buf_len = len;
 sqe->rx.buf = buf;
 sqe->userdata = userdata;
}

/**
 * @brief Prepare a read op submission with context's mempool
 *
 * @see rtio_sqe_prep_read()
 */
static inline void rtio_sqe_prep_read_with_pool(struct rtio_sqe *sqe,
      const struct rtio_iodev *iodev, int8_t prio,
      void *userdata)
{
 rtio_sqe_prep_read(sqe, iodev, prio, 
# 599 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                                     __null
# 599 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                                         , 0, userdata);
 sqe->flags = (1UL << (2));
}

static inline void rtio_sqe_prep_read_multishot(struct rtio_sqe *sqe,
      const struct rtio_iodev *iodev, int8_t prio,
      void *userdata)
{
 rtio_sqe_prep_read_with_pool(sqe, iodev, prio, userdata);
 sqe->flags |= (1UL << (4));
}

/**
 * @brief Prepare a write op submission
 */
static inline void rtio_sqe_prep_write(struct rtio_sqe *sqe,
           const struct rtio_iodev *iodev,
           int8_t prio,
           const uint8_t *buf,
           uint32_t len,
           void *userdata)
{
 memset(sqe, 0, sizeof(struct rtio_sqe));
 sqe->op = ((0 +1)+1);
 sqe->prio = prio;
 sqe->iodev = iodev;
 sqe->tx.buf_len = len;
 sqe->tx.buf = buf;
 sqe->userdata = userdata;
}

/**
 * @brief Prepare a tiny write op submission
 *
 * Unlike the normal write operation where the source buffer must outlive the call
 * the tiny write data in this case is copied to the sqe. It must be tiny to fit
 * within the specified size of a rtio_sqe.
 *
 * This is useful in many scenarios with RTL logic where a write of the register to
 * subsequently read must be done.
 */
static inline void rtio_sqe_prep_tiny_write(struct rtio_sqe *sqe,
         const struct rtio_iodev *iodev,
         int8_t prio,
         const uint8_t *tiny_write_data,
         uint8_t tiny_write_len,
         void *userdata)
{
 { };

 memset(sqe, 0, sizeof(struct rtio_sqe));
 sqe->op = (((0 +1)+1)+1);
 sqe->prio = prio;
 sqe->iodev = iodev;
 sqe->tiny_tx.buf_len = tiny_write_len;
 memcpy(sqe->tiny_tx.buf, tiny_write_data, tiny_write_len);
 sqe->userdata = userdata;
}

/**
 * @brief Prepare a callback op submission
 *
 * A somewhat special operation in that it may only be done in kernel mode.
 *
 * Used where general purpose logic is required in a queue of io operations to do
 * transforms or logic.
 */
static inline void rtio_sqe_prep_callback(struct rtio_sqe *sqe,
       rtio_callback_t callback,
       void *arg0,
       void *userdata)
{
 memset(sqe, 0, sizeof(struct rtio_sqe));
 sqe->op = ((((0 +1)+1)+1)+1);
 sqe->prio = 0;
 sqe->iodev = 
# 674 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
             __null
# 674 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                 ;
 sqe->callback.callback = callback;
 sqe->callback.arg0 = arg0;
 sqe->userdata = userdata;
}

/**
 * @brief Prepare a callback op submission that does not create a CQE
 *
 * Similar to @ref rtio_sqe_prep_callback, but the @ref RTIO_SQE_NO_RESPONSE
 * flag is set on the SQE to prevent the generation of a CQE upon completion.
 *
 * This can be useful when the callback is the last operation in a sequence
 * whose job is to clean up all the previous CQE's. Without @ref RTIO_SQE_NO_RESPONSE
 * the completion itself will result in a CQE that cannot be consumed in the callback.
 */
static inline void rtio_sqe_prep_callback_no_cqe(struct rtio_sqe *sqe,
       rtio_callback_t callback,
       void *arg0,
       void *userdata)
{
 rtio_sqe_prep_callback(sqe, callback, arg0, userdata);
 sqe->flags |= (1UL << (5));
}

/**
 * @brief Prepare a transceive op submission
 */
static inline void rtio_sqe_prep_transceive(struct rtio_sqe *sqe,
         const struct rtio_iodev *iodev,
         int8_t prio,
         const uint8_t *tx_buf,
         uint8_t *rx_buf,
         uint32_t buf_len,
         void *userdata)
{
 memset(sqe, 0, sizeof(struct rtio_sqe));
 sqe->op = (((((0 +1)+1)+1)+1)+1);
 sqe->prio = prio;
 sqe->iodev = iodev;
 sqe->txrx.buf_len = buf_len;
 sqe->txrx.tx_buf = tx_buf;
 sqe->txrx.rx_buf = rx_buf;
 sqe->userdata = userdata;
}

static inline struct rtio_iodev_sqe *rtio_sqe_pool_alloc(struct rtio_sqe_pool *pool)
{
 struct mpsc_node *node = mpsc_pop(&pool->free_q);

 if (node == 
# 724 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
            __null
# 724 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                ) {
  return 
# 725 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
        __null
# 725 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
            ;
 }

 struct rtio_iodev_sqe *iodev_sqe = ({ ((struct rtio_iodev_sqe *)(((char *)(node)) - 
# 728 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                                   __builtin_offsetof (
# 728 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                                   struct rtio_iodev_sqe
# 728 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                                   , 
# 728 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                                   q
# 728 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                                   )
# 728 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                                   )); });

 pool->pool_free--;

 return iodev_sqe;
}

static inline void rtio_sqe_pool_free(struct rtio_sqe_pool *pool, struct rtio_iodev_sqe *iodev_sqe)
{
 mpsc_push(&pool->free_q, &iodev_sqe->q);

 pool->pool_free++;
}

static inline struct rtio_cqe *rtio_cqe_pool_alloc(struct rtio_cqe_pool *pool)
{
 struct mpsc_node *node = mpsc_pop(&pool->free_q);

 if (node == 
# 746 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
            __null
# 746 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                ) {
  return 
# 747 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
        __null
# 747 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
            ;
 }

 struct rtio_cqe *cqe = ({ ((struct rtio_cqe *)(((char *)(node)) - 
# 750 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                       __builtin_offsetof (
# 750 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                       struct rtio_cqe
# 750 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                       , 
# 750 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                       q
# 750 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                       )
# 750 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                       )); });

 memset(cqe, 0, sizeof(struct rtio_cqe));

 pool->pool_free--;

 return cqe;
}

static inline void rtio_cqe_pool_free(struct rtio_cqe_pool *pool, struct rtio_cqe *cqe)
{
 mpsc_push(&pool->free_q, &cqe->q);

 pool->pool_free++;
}

static inline int rtio_block_pool_alloc(struct rtio *r, size_t min_sz,
       size_t max_sz, uint8_t **buf, uint32_t *buf_len)
{

 (void)(r);
 (void)(min_sz);
 (void)(max_sz);
 (void)(buf);
 (void)(buf_len);
 return -
# 775 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
        134 /* Not supported */
# 775 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
               ;
# 805 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
}

static inline void rtio_block_pool_free(struct rtio *r, void *buf, uint32_t buf_len)
{

 (void)(r);
 (void)(buf);
 (void)(buf_len);





}

/* Do not try and reformat the macros */
/* clang-format off */

/**
 * @brief Statically define and initialize an RTIO IODev
 *
 * @param name Name of the iodev
 * @param iodev_api Pointer to struct rtio_iodev_api
 * @param iodev_data Data pointer
 */
# 855 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
/**
 * @brief Allocate to bss if available
 *
 * If CONFIG_USERSPACE is selected, allocate to the rtio_partition bss. Maps to:
 *   K_APP_BMEM(rtio_partition) static
 *
 * If CONFIG_USERSPACE is disabled, allocate as plain static:
 *   static
 */


/**
 * @brief Allocate as initialized memory if available
 *
 * If CONFIG_USERSPACE is selected, allocate to the rtio_partition init. Maps to:
 *   K_APP_DMEM(rtio_partition) static
 *
 * If CONFIG_USERSPACE is disabled, allocate as plain static:
 *   static
 */
# 901 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
/**
 * @brief Statically define and initialize an RTIO context
 *
 * @param name Name of the RTIO
 * @param sq_sz Size of the submission queue entry pool
 * @param cq_sz Size of the completion queue entry pool
 */






/* clang-format on */

/**
 * @brief Statically define and initialize an RTIO context
 *
 * @param name Name of the RTIO
 * @param sq_sz Size of the submission queue, must be power of 2
 * @param cq_sz Size of the completion queue, must be power of 2
 * @param num_blks Number of blocks in the memory pool
 * @param blk_size The number of bytes in each block
 * @param balign The block alignment
 */






/* clang-format on */

/**
 * @brief Count of acquirable submission queue events
 *
 * @param r RTIO context
 *
 * @return Count of acquirable submission queue events
 */
static inline uint32_t rtio_sqe_acquirable(struct rtio *r)
{
 return r->sqe_pool->pool_free;
}

/**
 * @brief Get the next sqe in the transaction
 *
 * @param iodev_sqe Submission queue entry
 *
 * @retval NULL if current sqe is last in transaction
 * @retval struct rtio_sqe * if available
 */
static inline struct rtio_iodev_sqe *rtio_txn_next(const struct rtio_iodev_sqe *iodev_sqe)
{
 if (iodev_sqe->sqe.flags & (1UL << (1))) {
  return iodev_sqe->next;
 } else {
  return 
# 959 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
        __null
# 959 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
            ;
 }
}


/**
 * @brief Get the next sqe in the chain
 *
 * @param iodev_sqe Submission queue entry
 *
 * @retval NULL if current sqe is last in chain
 * @retval struct rtio_sqe * if available
 */
static inline struct rtio_iodev_sqe *rtio_chain_next(const struct rtio_iodev_sqe *iodev_sqe)
{
 if (iodev_sqe->sqe.flags & (1UL << (0))) {
  return iodev_sqe->next;
 } else {
  return 
# 977 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
        __null
# 977 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
            ;
 }
}

/**
 * @brief Get the next sqe in the chain or transaction
 *
 * @param iodev_sqe Submission queue entry
 *
 * @retval NULL if current sqe is last in chain
 * @retval struct rtio_iodev_sqe * if available
 */
static inline struct rtio_iodev_sqe *rtio_iodev_sqe_next(const struct rtio_iodev_sqe *iodev_sqe)
{
 return iodev_sqe->next;
}

/**
 * @brief Acquire a single submission queue event if available
 *
 * @param r RTIO context
 *
 * @retval sqe A valid submission queue event acquired from the submission queue
 * @retval NULL No subsmission queue event available
 */
static inline struct rtio_sqe *rtio_sqe_acquire(struct rtio *r)
{
 struct rtio_iodev_sqe *iodev_sqe = rtio_sqe_pool_alloc(r->sqe_pool);

 if (iodev_sqe == 
# 1006 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                 __null
# 1006 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                     ) {
  return 
# 1007 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
        __null
# 1007 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
            ;
 }

 mpsc_push(&r->sq, &iodev_sqe->q);

 return &iodev_sqe->sqe;
}

/**
 * @brief Drop all previously acquired sqe
 *
 * @param r RTIO context
 */
static inline void rtio_sqe_drop_all(struct rtio *r)
{
 struct rtio_iodev_sqe *iodev_sqe;
 struct mpsc_node *node = mpsc_pop(&r->sq);

 while (node != 
# 1025 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
               __null
# 1025 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                   ) {
  iodev_sqe = ({ ((struct rtio_iodev_sqe *)(((char *)(node)) - 
# 1026 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
             __builtin_offsetof (
# 1026 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
             struct rtio_iodev_sqe
# 1026 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
             , 
# 1026 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
             q
# 1026 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
             )
# 1026 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
             )); });
  rtio_sqe_pool_free(r->sqe_pool, iodev_sqe);
  node = mpsc_pop(&r->sq);
 }
}

/**
 * @brief Acquire a complete queue event if available
 */
static inline struct rtio_cqe *rtio_cqe_acquire(struct rtio *r)
{
 struct rtio_cqe *cqe = rtio_cqe_pool_alloc(r->cqe_pool);

 if (cqe == 
# 1039 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
           __null
# 1039 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
               ) {
  return 
# 1040 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
        __null
# 1040 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
            ;
 }

 memset(cqe, 0, sizeof(struct rtio_cqe));

 return cqe;
}

/**
 * @brief Produce a complete queue event if available
 */
static inline void rtio_cqe_produce(struct rtio *r, struct rtio_cqe *cqe)
{
 mpsc_push(&r->cq, &cqe->q);
}

/**
 * @brief Consume a single completion queue event if available
 *
 * If a completion queue event is returned rtio_cq_release(r) must be called
 * at some point to release the cqe spot for the cqe producer.
 *
 * @param r RTIO context
 *
 * @retval cqe A valid completion queue event consumed from the completion queue
 * @retval NULL No completion queue event available
 */
static inline struct rtio_cqe *rtio_cqe_consume(struct rtio *r)
{
 struct mpsc_node *node;
 struct rtio_cqe *cqe = 
# 1070 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                       __null
# 1070 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                           ;







 node = mpsc_pop(&r->cq);
 if (node == 
# 1079 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
            __null
# 1079 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                ) {
  return 
# 1080 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
        __null
# 1080 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
            ;
 }
 cqe = ({ ((struct rtio_cqe *)(((char *)(node)) - 
# 1082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
      __builtin_offsetof (
# 1082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
      struct rtio_cqe
# 1082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
      , 
# 1082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
      q
# 1082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
      )
# 1082 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
      )); });

 return cqe;
}

/**
 * @brief Wait for and consume a single completion queue event
 *
 * If a completion queue event is returned rtio_cq_release(r) must be called
 * at some point to release the cqe spot for the cqe producer.
 *
 * @param r RTIO context
 *
 * @retval cqe A valid completion queue event consumed from the completion queue
 */
static inline struct rtio_cqe *rtio_cqe_consume_block(struct rtio *r)
{
 struct mpsc_node *node;
 struct rtio_cqe *cqe;




 node = mpsc_pop(&r->cq);
 while (node == 
# 1106 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
               __null
# 1106 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                   ) {
  ;
  node = mpsc_pop(&r->cq);
 }
 cqe = ({ ((struct rtio_cqe *)(((char *)(node)) - 
# 1110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
      __builtin_offsetof (
# 1110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
      struct rtio_cqe
# 1110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
      , 
# 1110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
      q
# 1110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
      )
# 1110 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
      )); });

 return cqe;
}

/**
 * @brief Release consumed completion queue event
 *
 * @param r RTIO context
 * @param cqe Completion queue entry
 */
static inline void rtio_cqe_release(struct rtio *r, struct rtio_cqe *cqe)
{
 rtio_cqe_pool_free(r->cqe_pool, cqe);
}

/**
 * @brief Compute the CQE flags from the rtio_iodev_sqe entry
 *
 * @param iodev_sqe The SQE entry in question.
 * @return The value that should be set for the CQE's flags field.
 */
static inline uint32_t rtio_cqe_compute_flags(struct rtio_iodev_sqe *iodev_sqe)
{
 uint32_t flags = 0;
# 1151 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
 (void)(iodev_sqe);


 return flags;
}

/**
 * @brief Retrieve the mempool buffer that was allocated for the CQE.
 *
 * If the RTIO context contains a memory pool, and the SQE was created by calling
 * rtio_sqe_read_with_pool(), this function can be used to retrieve the memory associated with the
 * read. Once processing is done, it should be released by calling rtio_release_buffer().
 *
 * @param[in] r RTIO context
 * @param[in] cqe The CQE handling the event.
 * @param[out] buff Pointer to the mempool buffer
 * @param[out] buff_len Length of the allocated buffer
 * @return 0 on success
 * @return -EINVAL if the buffer wasn't allocated for this cqe
 * @return -ENOTSUP if memory blocks are disabled
 */
static inline int rtio_cqe_get_mempool_buffer(const struct rtio *r, struct rtio_cqe *cqe,
       uint8_t **buff, uint32_t *buff_len);

static inline int z_impl_rtio_cqe_get_mempool_buffer(const struct rtio *r, struct rtio_cqe *cqe,
           uint8_t **buff, uint32_t *buff_len)
{
# 1199 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
 (void)(r);
 (void)(cqe);
 (void)(buff);
 (void)(buff_len);

 return -
# 1204 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
        134 /* Not supported */
# 1204 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
               ;

}

void rtio_executor_submit(struct rtio *r);
void rtio_executor_ok(struct rtio_iodev_sqe *iodev_sqe, int result);
void rtio_executor_err(struct rtio_iodev_sqe *iodev_sqe, int result);

/**
 * @brief Inform the executor of a submission completion with success
 *
 * This may start the next asynchronous request if one is available.
 *
 * @param iodev_sqe IODev Submission that has succeeded
 * @param result Result of the request
 */
static inline void rtio_iodev_sqe_ok(struct rtio_iodev_sqe *iodev_sqe, int result)
{
 rtio_executor_ok(iodev_sqe, result);
}

/**
 * @brief Inform the executor of a submissions completion with error
 *
 * This SHALL fail the remaining submissions in the chain.
 *
 * @param iodev_sqe Submission that has failed
 * @param result Result of the request
 */
static inline void rtio_iodev_sqe_err(struct rtio_iodev_sqe *iodev_sqe, int result)
{
 rtio_executor_err(iodev_sqe, result);
}

/**
 * Submit a completion queue event with a given result and userdata
 *
 * Called by the executor to produce a completion queue event, no inherent
 * locking is performed and this is not safe to do from multiple callers.
 *
 * @param r RTIO context
 * @param result Integer result code (could be -errno)
 * @param userdata Userdata to pass along to completion
 * @param flags Flags to use for the CEQ see RTIO_CQE_FLAG_*
 */
static inline void rtio_cqe_submit(struct rtio *r, int result, void *userdata, uint32_t flags)
{
 struct rtio_cqe *cqe = rtio_cqe_acquire(r);

 if (cqe == 
# 1253 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
           __null
# 1253 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
               ) {
  atomic_inc(&r->xcqcnt);
 } else {
  cqe->result = result;
  cqe->userdata = userdata;
  cqe->flags = flags;
  rtio_cqe_produce(r, cqe);
 }

 /* atomic_t isn't guaranteed to wrap correctly as it could be signed, so
	 * we must resort to a cas loop.
	 */
 atomic_t val, new_val;

 do {
  val = atomic_get(&r->cq_count);
  new_val = (atomic_t)((uintptr_t)val + 1);
 } while (!atomic_cas(&r->cq_count, val, new_val));
# 1283 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
}



/**
 * @brief Get the buffer associate with the RX submission
 *
 * @param[in] iodev_sqe   The submission to probe
 * @param[in] min_buf_len The minimum number of bytes needed for the operation
 * @param[in] max_buf_len The maximum number of bytes needed for the operation
 * @param[out] buf        Where to store the pointer to the buffer
 * @param[out] buf_len    Where to store the size of the buffer
 *
 * @return 0 if @p buf and @p buf_len were successfully filled
 * @return -ENOMEM Not enough memory for @p min_buf_len
 */
static inline int rtio_sqe_rx_buf(const struct rtio_iodev_sqe *iodev_sqe, uint32_t min_buf_len,
      uint32_t max_buf_len, uint8_t **buf, uint32_t *buf_len)
{
 struct rtio_sqe *sqe = (struct rtio_sqe *)&iodev_sqe->sqe;
# 1327 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
 (void)(max_buf_len);


 if (sqe->rx.buf_len < min_buf_len) {
  return -
# 1331 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
         12 /* Not enough space */
# 1331 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
               ;
 }

 *buf = sqe->rx.buf;
 *buf_len = sqe->rx.buf_len;
 return 0;
}

/**
 * @brief Release memory that was allocated by the RTIO's memory pool
 *
 * If the RTIO context was created by a call to RTIO_DEFINE_WITH_MEMPOOL(), then the cqe data might
 * contain a buffer that's owned by the RTIO context. In those cases (if the read request was
 * configured via rtio_sqe_read_with_pool()) the buffer must be returned back to the pool.
 *
 * Call this function when processing is complete. This function will validate that the memory
 * actually belongs to the RTIO context and will ignore invalid arguments.
 *
 * @param r RTIO context
 * @param buff Pointer to the buffer to be released.
 * @param buff_len Number of bytes to free (will be rounded up to nearest memory block).
 */
static inline void rtio_release_buffer(struct rtio *r, void *buff, uint32_t buff_len);

static inline void z_impl_rtio_release_buffer(struct rtio *r, void *buff, uint32_t buff_len)
{







 (void)(r);
 (void)(buff);
 (void)(buff_len);

}

/**
 * Grant access to an RTIO context to a user thread
 */
static inline void rtio_access_grant(struct rtio *r, struct k_thread *t)
{
 k_object_access_grant(r, t);
# 1384 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
}

/**
 * @brief Attempt to cancel an SQE
 *
 * If possible (not currently executing), cancel an SQE and generate a failure with -ECANCELED
 * result.
 *
 * @param[in] sqe The SQE to cancel
 * @return 0 if the SQE was flagged for cancellation
 * @return <0 on error
 */
static inline int rtio_sqe_cancel(struct rtio_sqe *sqe);

static inline int z_impl_rtio_sqe_cancel(struct rtio_sqe *sqe)
{
 struct rtio_iodev_sqe *iodev_sqe = ({ ((struct rtio_iodev_sqe *)(((char *)(sqe)) - 
# 1400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                                   __builtin_offsetof (
# 1400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                                   struct rtio_iodev_sqe
# 1400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                                   , 
# 1400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                                   sqe
# 1400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                                   )
# 1400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                                   )); });

 do {
  iodev_sqe->sqe.flags |= (1UL << (3));
  iodev_sqe = rtio_iodev_sqe_next(iodev_sqe);
 } while (iodev_sqe != 
# 1405 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                      __null
# 1405 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                          );

 return 0;
}

/**
 * @brief Copy an array of SQEs into the queue and get resulting handles back
 *
 * Copies one or more SQEs into the RTIO context and optionally returns their generated SQE handles.
 * Handles can be used to cancel events via the rtio_sqe_cancel() call.
 *
 * @param[in]  r RTIO context
 * @param[in]  sqes Pointer to an array of SQEs
 * @param[out] handle Optional pointer to @ref rtio_sqe pointer to store the handle of the
 *             first generated SQE. Use NULL to ignore.
 * @param[in]  sqe_count Count of sqes in array
 *
 * @retval 0 success
 * @retval -ENOMEM not enough room in the queue
 */
static inline int rtio_sqe_copy_in_get_handles(struct rtio *r, const struct rtio_sqe *sqes,
        struct rtio_sqe **handle, size_t sqe_count);

static inline int z_impl_rtio_sqe_copy_in_get_handles(struct rtio *r, const struct rtio_sqe *sqes,
            struct rtio_sqe **handle,
            size_t sqe_count)
{
 struct rtio_sqe *sqe;
 uint32_t acquirable = rtio_sqe_acquirable(r);

 if (acquirable < sqe_count) {
  return -
# 1436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
         12 /* Not enough space */
# 1436 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
               ;
 }

 for (unsigned long i = 0; i < sqe_count; i++) {
  sqe = rtio_sqe_acquire(r);
  { };
  if (handle != 
# 1442 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
               __null 
# 1442 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                    && i == 0) {
   *handle = sqe;
  }
  *sqe = sqes[i];
 }

 return 0;
}

/**
 * @brief Copy an array of SQEs into the queue
 *
 * Useful if a batch of submissions is stored in ROM or
 * RTIO is used from user mode where a copy must be made.
 *
 * Partial copying is not done as chained SQEs need to be submitted
 * as a whole set.
 *
 * @param r RTIO context
 * @param sqes Pointer to an array of SQEs
 * @param sqe_count Count of sqes in array
 *
 * @retval 0 success
 * @retval -ENOMEM not enough room in the queue
 */
static inline int rtio_sqe_copy_in(struct rtio *r, const struct rtio_sqe *sqes, size_t sqe_count)
{
 return rtio_sqe_copy_in_get_handles(r, sqes, 
# 1469 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
                                             __null
# 1469 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                                                 , sqe_count);
}

/**
 * @brief Copy an array of CQEs from the queue
 *
 * Copies from the RTIO context and its queue completion queue
 * events, waiting for the given time period to gather the number
 * of completions requested.
 *
 * @param r RTIO context
 * @param cqes Pointer to an array of SQEs
 * @param cqe_count Count of sqes in array
 * @param timeout Timeout to wait for each completion event. Total wait time is
 *                potentially timeout*cqe_count at maximum.
 *
 * @retval copy_count Count of copied CQEs (0 to cqe_count)
 */
static inline int rtio_cqe_copy_out(struct rtio *r,
    struct rtio_cqe *cqes,
    size_t cqe_count,
    k_timeout_t timeout);
static inline int z_impl_rtio_cqe_copy_out(struct rtio *r,
        struct rtio_cqe *cqes,
        size_t cqe_count,
        k_timeout_t timeout)
{
 size_t copied = 0;
 struct rtio_cqe *cqe;
 k_timepoint_t end = sys_timepoint_calc(timeout);

 do {
  cqe = ((timeout).ticks == (((k_timeout_t) { (((k_ticks_t) -1)) })).ticks) ? rtio_cqe_consume_block(r)
             : rtio_cqe_consume(r);
  if (cqe == 
# 1503 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 3 4
            __null
# 1503 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
                ) {
   ;
   continue;
  }
  cqes[copied++] = *cqe;
  rtio_cqe_release(r, cqe);
 } while (copied < cqe_count && !sys_timepoint_expired(end));

 return copied;
}

/**
 * @brief Submit I/O requests to the underlying executor
 *
 * Submits the queue of submission queue events to the executor.
 * The executor will do the work of managing tasks representing each
 * submission chain, freeing submission queue events when done, and
 * producing completion queue events as submissions are completed.
 *
 * @warning It is undefined behavior to have re-entrant calls to submit
 *
 * @param r RTIO context
 * @param wait_count Number of submissions to wait for completion of.
 *
 * @retval 0 On success
 */
static inline int rtio_submit(struct rtio *r, uint32_t wait_count);
# 1555 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h"
static inline int z_impl_rtio_submit(struct rtio *r, uint32_t wait_count)
{

 int res = 0;
 uintptr_t cq_count = (uintptr_t)atomic_get(&r->cq_count);
 uintptr_t cq_complete_count = cq_count + wait_count;
 bool wraps = cq_complete_count < cq_count;

 rtio_executor_submit(r);

 if (wraps) {
  while ((uintptr_t)atomic_get(&r->cq_count) >= cq_count) {
   ;
   k_yield();
  }
 }

 while ((uintptr_t)atomic_get(&r->cq_count) < cq_complete_count) {
  ;
  k_yield();
 }

 return res;
}


/**
 * @}
 */


}


# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h" 1
/* auto-generated by gen_syscalls.py, don't edit */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_syscall.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 8 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h" 2



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* auto-generated by gen_syscalls.py, don't edit */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h" 2



extern "C" {


extern int z_impl_rtio_cqe_get_mempool_buffer(const struct rtio * r, struct rtio_cqe * cqe, uint8_t ** buff, uint32_t * buff_len);


static inline int rtio_cqe_get_mempool_buffer(const struct rtio * r, struct rtio_cqe * cqe, uint8_t ** buff, uint32_t * buff_len)
{
# 37 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_rtio_cqe_get_mempool_buffer(r, cqe, buff, buff_len);
}
# 49 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
extern void z_impl_rtio_release_buffer(struct rtio * r, void * buff, uint32_t buff_len);


static inline void rtio_release_buffer(struct rtio * r, void * buff, uint32_t buff_len)
{
# 63 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 z_impl_rtio_release_buffer(r, buff, buff_len);
}
# 75 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
extern int z_impl_rtio_sqe_cancel(struct rtio_sqe * sqe);


static inline int rtio_sqe_cancel(struct rtio_sqe * sqe)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_rtio_sqe_cancel(sqe);
}
# 98 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
extern int z_impl_rtio_sqe_copy_in_get_handles(struct rtio * r, const struct rtio_sqe * sqes, struct rtio_sqe ** handle, size_t sqe_count);


static inline int rtio_sqe_copy_in_get_handles(struct rtio * r, const struct rtio_sqe * sqes, struct rtio_sqe ** handle, size_t sqe_count)
{
# 112 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_rtio_sqe_copy_in_get_handles(r, sqes, handle, sqe_count);
}
# 124 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
extern int z_impl_rtio_cqe_copy_out(struct rtio * r, struct rtio_cqe * cqes, size_t cqe_count, k_timeout_t timeout);


static inline int rtio_cqe_copy_out(struct rtio * r, struct rtio_cqe * cqes, size_t cqe_count, k_timeout_t timeout)
{
# 138 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_rtio_cqe_copy_out(r, cqes, cqe_count, timeout);
}
# 150 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
extern int z_impl_rtio_submit(struct rtio * r, uint32_t wait_count);


static inline int rtio_submit(struct rtio * r, uint32_t wait_count)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_rtio_submit(r, wait_count);
}
# 175 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/rtio.h"
}
# 1590 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/rtio/rtio.h" 2
# 31 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 2


extern "C" {


/*
 * The following #defines are used to configure the I2C controller.
 */

/** I2C Standard Speed: 100 kHz */


/** I2C Fast Speed: 400 kHz */


/** I2C Fast Plus Speed: 1 MHz */


/** I2C High Speed: 3.4 MHz */


/** I2C Ultra Fast Speed: 5 MHz */


/** Device Tree specified speed */
# 65 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
/** Use 10-bit addressing. DEPRECATED - Use I2C_MSG_ADDR_10_BITS instead. */


/** Peripheral to act as Controller. */


/**
 * @brief Complete I2C DT information
 *
 * @param bus is the I2C bus
 * @param addr is the target address
 */
struct i2c_dt_spec {
 const struct device *bus;
 uint16_t addr;
};

/**
 * @brief Structure initializer for i2c_dt_spec from devicetree (on I3C bus)
 *
 * This helper macro expands to a static initializer for a <tt>struct
 * i2c_dt_spec</tt> by reading the relevant bus and address data from
 * the devicetree.
 *
 * @param node_id Devicetree node identifier for the I2C device whose
 *                struct i2c_dt_spec to create an initializer for
 */




/**
 * @brief Structure initializer for i2c_dt_spec from devicetree (on I2C bus)
 *
 * This helper macro expands to a static initializer for a <tt>struct
 * i2c_dt_spec</tt> by reading the relevant bus and address data from
 * the devicetree.
 *
 * @param node_id Devicetree node identifier for the I2C device whose
 *                struct i2c_dt_spec to create an initializer for
 */




/**
 * @brief Structure initializer for i2c_dt_spec from devicetree
 *
 * This helper macro expands to a static initializer for a <tt>struct
 * i2c_dt_spec</tt> by reading the relevant bus and address data from
 * the devicetree.
 *
 * @param node_id Devicetree node identifier for the I2C device whose
 *                struct i2c_dt_spec to create an initializer for
 */







/**
 * @brief Structure initializer for i2c_dt_spec from devicetree instance
 *
 * This is equivalent to
 * <tt>I2C_DT_SPEC_GET(DT_DRV_INST(inst))</tt>.
 *
 * @param inst Devicetree instance number
 */




/*
 * I2C_MSG_* are I2C Message flags.
 */

/** Write message to I2C bus. */


/** Read message from I2C bus. */


/** @cond INTERNAL_HIDDEN */

/** @endcond  */

/** Send STOP after this message. */


/** RESTART I2C transaction for this message.
 *
 * @note Not all I2C drivers have or require explicit support for this
 * feature. Some drivers require this be present on a read message
 * that follows a write, or vice-versa.  Some drivers will merge
 * adjacent fragments into a single transaction using this flag; some
 * will not. */


/** Use 10-bit addressing for this message.
 *
 * @note Not all SoC I2C implementations support this feature. */


/**
 * @brief One I2C Message.
 *
 * This defines one I2C message to transact on the I2C bus.
 *
 * @note Some of the configurations supported by this API may not be
 * supported by specific SoC I2C hardware implementations, in
 * particular features related to bus transactions intended to read or
 * write data from different buffers within a single transaction.
 * Invocations of i2c_transfer() may not indicate an error when an
 * unsupported configuration is encountered.  In some cases drivers
 * will generate separate transactions for each message fragment, with
 * or without presence of @ref I2C_MSG_RESTART in #flags.
 */
struct i2c_msg {
 /** Data buffer in bytes */
 uint8_t *buf;

 /** Length of buffer in bytes */
 uint32_t len;

 /** Flags for this message */
 uint8_t flags;
};

/**
 * @brief I2C callback for asynchronous transfer requests
 *
 * @param dev I2C device which is notifying of transfer completion or error
 * @param result Result code of the transfer request. 0 is success, -errno for failure.
 * @param data Transfer requester supplied data which is passed along to the callback.
 */
typedef void (*i2c_callback_t)(const struct device *dev, int result, void *data);

/**
 * @cond INTERNAL_HIDDEN
 *
 * These are for internal use only, so skip these in
 * public documentation.
 */
struct i2c_target_config;

typedef int (*i2c_api_configure_t)(const struct device *dev,
       uint32_t dev_config);
typedef int (*i2c_api_get_config_t)(const struct device *dev,
        uint32_t *dev_config);
typedef int (*i2c_api_full_io_t)(const struct device *dev,
     struct i2c_msg *msgs,
     uint8_t num_msgs,
     uint16_t addr);
typedef int (*i2c_api_target_register_t)(const struct device *dev,
     struct i2c_target_config *cfg);
typedef int (*i2c_api_target_unregister_t)(const struct device *dev,
       struct i2c_target_config *cfg);
# 242 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
typedef int (*i2c_api_recover_bus_t)(const struct device *dev);

 struct i2c_driver_api {
 i2c_api_configure_t configure;
 i2c_api_get_config_t get_config;
 i2c_api_full_io_t transfer;
 i2c_api_target_register_t target_register;
 i2c_api_target_unregister_t target_unregister;






 i2c_api_recover_bus_t recover_bus;
};

typedef int (*i2c_target_api_register_t)(const struct device *dev);
typedef int (*i2c_target_api_unregister_t)(const struct device *dev);

 struct i2c_target_driver_api {
 i2c_target_api_register_t driver_register;
 i2c_target_api_unregister_t driver_unregister;
};

/**
 * @endcond
 */

/** Target device responds to 10-bit addressing. */


/** @brief Function called when a write to the device is initiated.
 *
 * This function is invoked by the controller when the bus completes a
 * start condition for a write operation to the address associated
 * with a particular device.
 *
 * A success return shall cause the controller to ACK the next byte
 * received.  An error return shall cause the controller to NACK the
 * next byte received.
 *
 * @param config the configuration structure associated with the
 * device to which the operation is addressed.
 *
 * @return 0 if the write is accepted, or a negative error code.
 */
typedef int (*i2c_target_write_requested_cb_t)(
  struct i2c_target_config *config);

/** @brief Function called when a write to the device is continued.
 *
 * This function is invoked by the controller when it completes
 * reception of a byte of data in an ongoing write operation to the
 * device.
 *
 * A success return shall cause the controller to ACK the next byte
 * received.  An error return shall cause the controller to NACK the
 * next byte received.
 *
 * @param config the configuration structure associated with the
 * device to which the operation is addressed.
 *
 * @param val the byte received by the controller.
 *
 * @return 0 if more data can be accepted, or a negative error
 * code.
 */
typedef int (*i2c_target_write_received_cb_t)(
  struct i2c_target_config *config, uint8_t val);

/** @brief Function called when a read from the device is initiated.
 *
 * This function is invoked by the controller when the bus completes a
 * start condition for a read operation from the address associated
 * with a particular device.
 *
 * The value returned in @p *val will be transmitted.  A success
 * return shall cause the controller to react to additional read
 * operations.  An error return shall cause the controller to ignore
 * bus operations until a new start condition is received.
 *
 * @param config the configuration structure associated with the
 * device to which the operation is addressed.
 *
 * @param val pointer to storage for the first byte of data to return
 * for the read request.
 *
 * @return 0 if more data can be requested, or a negative error code.
 */
typedef int (*i2c_target_read_requested_cb_t)(
  struct i2c_target_config *config, uint8_t *val);

/** @brief Function called when a read from the device is continued.
 *
 * This function is invoked by the controller when the bus is ready to
 * provide additional data for a read operation from the address
 * associated with the device device.
 *
 * The value returned in @p *val will be transmitted.  A success
 * return shall cause the controller to react to additional read
 * operations.  An error return shall cause the controller to ignore
 * bus operations until a new start condition is received.
 *
 * @param config the configuration structure associated with the
 * device to which the operation is addressed.
 *
 * @param val pointer to storage for the next byte of data to return
 * for the read request.
 *
 * @return 0 if data has been provided, or a negative error code.
 */
typedef int (*i2c_target_read_processed_cb_t)(
  struct i2c_target_config *config, uint8_t *val);
# 400 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
/** @brief Function called when a stop condition is observed after a
 * start condition addressed to a particular device.
 *
 * This function is invoked by the controller when the bus is ready to
 * provide additional data for a read operation from the address
 * associated with the device device.  After the function returns the
 * controller shall enter a state where it is ready to react to new
 * start conditions.
 *
 * @param config the configuration structure associated with the
 * device to which the operation is addressed.
 *
 * @return Ignored.
 */
typedef int (*i2c_target_stop_cb_t)(struct i2c_target_config *config);

/** @brief Structure providing callbacks to be implemented for devices
 * that supports the I2C target API.
 *
 * This structure may be shared by multiple devices that implement the
 * same API at different addresses on the bus.
 */
struct i2c_target_callbacks {
 i2c_target_write_requested_cb_t write_requested;
 i2c_target_read_requested_cb_t read_requested;
 i2c_target_write_received_cb_t write_received;
 i2c_target_read_processed_cb_t read_processed;




 i2c_target_stop_cb_t stop;
};

/** @brief Structure describing a device that supports the I2C
 * target API.
 *
 * Instances of this are passed to the i2c_target_register() and
 * i2c_target_unregister() functions to indicate addition and removal
 * of a target device, respective.
 *
 * Fields other than @c node must be initialized by the module that
 * implements the device behavior prior to passing the object
 * reference to i2c_target_register().
 */
struct i2c_target_config {
 /** Private, do not modify */
 sys_snode_t node;

 /** Flags for the target device defined by I2C_TARGET_FLAGS_* constants */
 uint8_t flags;

 /** Address for this target device */
 uint16_t address;

 /** Callback functions */
 const struct i2c_target_callbacks *callbacks;
};

/**
 * @brief Validate that I2C bus is ready.
 *
 * @param spec I2C specification from devicetree
 *
 * @retval true if the I2C bus is ready for use.
 * @retval false if the I2C bus is not ready for use.
 */
static inline bool i2c_is_ready_dt(const struct i2c_dt_spec *spec)
{
 /* Validate bus is ready */
 return device_is_ready(spec->bus);
}

/**
 * @brief Check if the current message is a read operation
 *
 * @param msg The message to check
 * @return true if the I2C message is a read operation
 * @return false if the I2C message is a write operation
 */
static inline bool i2c_is_read_op(const struct i2c_msg *msg)
{
 return (msg->flags & (1UL << (0))) == (1UL << (0));
}

/**
 * @brief Check if the current message includes a stop.
 *
 * @param msg The message to check
 * @return true if the I2C message includes a stop
 * @return false if the I2C message includes a stop
 */
static inline bool i2c_is_stop_op(const struct i2c_msg *msg)
{
 return (msg->flags & (1UL << (1))) == (1UL << (1));
}

/**
 * @brief Dump out an I2C message
 *
 * Dumps out a list of I2C messages. For any that are writes (W), the data is
 * displayed in hex. Setting dump_read will dump the data for read messages too,
 * which only makes sense when called after the messages have been processed.
 *
 * It looks something like this (with name "testing"):
 *
 * @code
 * D: I2C msg: testing, addr=56
 * D:    W len=01: 06
 * D:    W len=0e:
 * D: contents:
 * D: 00 01 02 03 04 05 06 07 |........
 * D: 08 09 0a 0b 0c 0d       |......
 * D:    W len=01: 0f
 * D:    R len=01: 6c
 * @endcode
 *
 * @param dev Target for the messages being sent. Its name will be printed in the log.
 * @param msgs Array of messages to dump.
 * @param num_msgs Number of messages to dump.
 * @param addr Address of the I2C target device.
 * @param dump_read Dump data from I2C reads, otherwise only writes have data dumped.
 */
void i2c_dump_msgs_rw(const struct device *dev, const struct i2c_msg *msgs, uint8_t num_msgs,
        uint16_t addr, bool dump_read);

/**
 * @brief Dump out an I2C message, before it is executed.
 *
 * This is equivalent to:
 *
 *     i2c_dump_msgs_rw(dev, msgs, num_msgs, addr, false);
 *
 * The read messages' data isn't dumped.
 *
 * @param dev Target for the messages being sent. Its name will be printed in the log.
 * @param msgs Array of messages to dump.
 * @param num_msgs Number of messages to dump.
 * @param addr Address of the I2C target device.
 */
static inline void i2c_dump_msgs(const struct device *dev, const struct i2c_msg *msgs,
     uint8_t num_msgs, uint16_t addr)
{
 i2c_dump_msgs_rw(dev, msgs, num_msgs, addr, false);
}
# 678 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
static inline void i2c_xfer_stats(const struct device *dev, struct i2c_msg *msgs,
      uint8_t num_msgs)
{
 (void)(dev);
 (void)(msgs);
 (void)(num_msgs);
}
# 693 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
/**
 * @brief Like I2C_DEVICE_DT_DEFINE() for an instance of a DT_DRV_COMPAT compatible
 *
 * @param inst instance number. This is replaced by
 * <tt>DT_DRV_COMPAT(inst)</tt> in the call to I2C_DEVICE_DT_DEFINE().
 *
 * @param ... other parameters as expected by I2C_DEVICE_DT_DEFINE().
 */




/**
 * @brief Configure operation of a host controller.
 *
 * @param dev Pointer to the device structure for the driver instance.
 * @param dev_config Bit-packed 32-bit value to the device runtime configuration
 * for the I2C controller.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error, failed to configure device.
 */
static inline int i2c_configure(const struct device *dev, uint32_t dev_config);

static inline int z_impl_i2c_configure(const struct device *dev,
           uint32_t dev_config)
{
 const struct i2c_driver_api *api =
  (const struct i2c_driver_api *)dev->api;

 return api->configure(dev, dev_config);
}

/**
 * @brief Get configuration of a host controller.
 *
 * This routine provides a way to get current configuration. It is allowed to
 * call the function before i2c_configure, because some I2C ports can be
 * configured during init process. However, if the I2C port is not configured,
 * i2c_get_config returns an error.
 *
 * i2c_get_config can return cached config or probe hardware, but it has to be
 * up to date with current configuration.
 *
 * @param dev Pointer to the device structure for the driver instance.
 * @param dev_config Pointer to return bit-packed 32-bit value of
 * the I2C controller configuration.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error.
 * @retval -ERANGE Configured I2C frequency is invalid.
 * @retval -ENOSYS If get config is not implemented
 */
static inline int i2c_get_config(const struct device *dev, uint32_t *dev_config);

static inline int z_impl_i2c_get_config(const struct device *dev, uint32_t *dev_config)
{
 const struct i2c_driver_api *api = (const struct i2c_driver_api *)dev->api;

 if (api->get_config == 
# 752 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 3 4
                       __null
# 752 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
                           ) {
  return -
# 753 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 3 4
         88 /* Function not implemented */
# 753 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
               ;
 }

 return api->get_config(dev, dev_config);
}

/**
 * @brief Perform data transfer to another I2C device in controller mode.
 *
 * This routine provides a generic interface to perform data transfer
 * to another I2C device synchronously. Use i2c_read()/i2c_write()
 * for simple read or write.
 *
 * The array of message @a msgs must not be NULL.  The number of
 * message @a num_msgs may be zero,in which case no transfer occurs.
 *
 * @note Not all scatter/gather transactions can be supported by all
 * drivers.  As an example, a gather write (multiple consecutive
 * `i2c_msg` buffers all configured for `I2C_MSG_WRITE`) may be packed
 * into a single transaction by some drivers, but others may emit each
 * fragment as a distinct write transaction, which will not produce
 * the same behavior.  See the documentation of `struct i2c_msg` for
 * limitations on support for multi-message bus transactions.
 *
 * @note The last message in the scatter/gather transaction implies a STOP
 * whether or not it is explicitly set. This ensures the bus is in a good
 * state for the next transaction which may be from a different call context.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @param msgs Array of messages to transfer.
 * @param num_msgs Number of messages to transfer.
 * @param addr Address of the I2C target device.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error.
 */
static inline int i2c_transfer(const struct device *dev,
      struct i2c_msg *msgs, uint8_t num_msgs,
      uint16_t addr);

static inline int z_impl_i2c_transfer(const struct device *dev,
          struct i2c_msg *msgs, uint8_t num_msgs,
          uint16_t addr)
{
 const struct i2c_driver_api *api =
  (const struct i2c_driver_api *)dev->api;

 if (!num_msgs) {
  return 0;
 }

 if (!0) {
  msgs[num_msgs - 1].flags |= (1UL << (1));
 }

 int res = api->transfer(dev, msgs, num_msgs, addr);

 i2c_xfer_stats(dev, msgs, num_msgs);

 if (0) {
  i2c_dump_msgs_rw(dev, msgs, num_msgs, addr, true);
 }

 return res;
}
# 1127 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
/**
 * @brief Perform data transfer to another I2C device in controller mode.
 *
 * This is equivalent to:
 *
 *     i2c_transfer(spec->bus, msgs, num_msgs, spec->addr);
 *
 * @param spec I2C specification from devicetree.
 * @param msgs Array of messages to transfer.
 * @param num_msgs Number of messages to transfer.
 *
 * @return a value from i2c_transfer()
 */
static inline int i2c_transfer_dt(const struct i2c_dt_spec *spec,
      struct i2c_msg *msgs, uint8_t num_msgs)
{
 return i2c_transfer(spec->bus, msgs, num_msgs, spec->addr);
}

/**
 * @brief Recover the I2C bus
 *
 * Attempt to recover the I2C bus.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @retval 0 If successful
 * @retval -EBUSY If bus is not clear after recovery attempt.
 * @retval -EIO General input / output error.
 * @retval -ENOSYS If bus recovery is not implemented
 */
static inline int i2c_recover_bus(const struct device *dev);

static inline int z_impl_i2c_recover_bus(const struct device *dev)
{
 const struct i2c_driver_api *api =
  (const struct i2c_driver_api *)dev->api;

 if (api->recover_bus == 
# 1165 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 3 4
                        __null
# 1165 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
                            ) {
  return -
# 1166 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 3 4
         88 /* Function not implemented */
# 1166 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
               ;
 }

 return api->recover_bus(dev);
}

/**
 * @brief Registers the provided config as Target device of a controller.
 *
 * Enable I2C target mode for the 'dev' I2C bus driver using the provided
 * 'config' struct containing the functions and parameters to send bus
 * events. The I2C target will be registered at the address provided as 'address'
 * struct member. Addressing mode - 7 or 10 bit - depends on the 'flags'
 * struct member. Any I2C bus events related to the target mode will be passed
 * onto I2C target device driver via a set of callback functions provided in
 * the 'callbacks' struct member.
 *
 * Most of the existing hardware allows simultaneous support for controller
 * and target mode. This is however not guaranteed.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in target mode.
 * @param cfg Config struct with functions and parameters used by the I2C driver
 * to send bus events
 *
 * @retval 0 Is successful
 * @retval -EINVAL If parameters are invalid
 * @retval -EIO General input / output error.
 * @retval -ENOSYS If target mode is not implemented
 */
static inline int i2c_target_register(const struct device *dev,
         struct i2c_target_config *cfg)
{
 const struct i2c_driver_api *api =
  (const struct i2c_driver_api *)dev->api;

 if (api->target_register == 
# 1202 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 3 4
                            __null
# 1202 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
                                ) {
  return -
# 1203 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 3 4
         88 /* Function not implemented */
# 1203 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
               ;
 }

 return api->target_register(dev, cfg);
}

/**
 * @brief Unregisters the provided config as Target device
 *
 * This routine disables I2C target mode for the 'dev' I2C bus driver using
 * the provided 'config' struct containing the functions and parameters
 * to send bus events.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in target mode.
 * @param cfg Config struct with functions and parameters used by the I2C driver
 * to send bus events
 *
 * @retval 0 Is successful
 * @retval -EINVAL If parameters are invalid
 * @retval -ENOSYS If target mode is not implemented
 */
static inline int i2c_target_unregister(const struct device *dev,
           struct i2c_target_config *cfg)
{
 const struct i2c_driver_api *api =
  (const struct i2c_driver_api *)dev->api;

 if (api->target_unregister == 
# 1231 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 3 4
                              __null
# 1231 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
                                  ) {
  return -
# 1232 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 3 4
         88 /* Function not implemented */
# 1232 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h"
               ;
 }

 return api->target_unregister(dev, cfg);
}

/**
 * @brief Instructs the I2C Target device to register itself to the I2C Controller
 *
 * This routine instructs the I2C Target device to register itself to the I2C
 * Controller via its parent controller's i2c_target_register() API.
 *
 * @param dev Pointer to the device structure for the I2C target
 * device (not itself an I2C controller).
 *
 * @retval 0 Is successful
 * @retval -EINVAL If parameters are invalid
 * @retval -EIO General input / output error.
 */
static inline int i2c_target_driver_register(const struct device *dev);

static inline int z_impl_i2c_target_driver_register(const struct device *dev)
{
 const struct i2c_target_driver_api *api =
  (const struct i2c_target_driver_api *)dev->api;

 return api->driver_register(dev);
}

/**
 * @brief Instructs the I2C Target device to unregister itself from the I2C
 * Controller
 *
 * This routine instructs the I2C Target device to unregister itself from the I2C
 * Controller via its parent controller's i2c_target_register() API.
 *
 * @param dev Pointer to the device structure for the I2C target
 * device (not itself an I2C controller).
 *
 * @retval 0 Is successful
 * @retval -EINVAL If parameters are invalid
 */
static inline int i2c_target_driver_unregister(const struct device *dev);

static inline int z_impl_i2c_target_driver_unregister(const struct device *dev)
{
 const struct i2c_target_driver_api *api =
  (const struct i2c_target_driver_api *)dev->api;

 return api->driver_unregister(dev);
}

/*
 * Derived i2c APIs -- all implemented in terms of i2c_transfer()
 */

/**
 * @brief Write a set amount of data to an I2C device.
 *
 * This routine writes a set amount of data synchronously.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @param buf Memory pool from which the data is transferred.
 * @param num_bytes Number of bytes to write.
 * @param addr Address to the target I2C device for writing.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error.
 */
static inline int i2c_write(const struct device *dev, const uint8_t *buf,
       uint32_t num_bytes, uint16_t addr)
{
 struct i2c_msg msg;

 msg.buf = (uint8_t *)buf;
 msg.len = num_bytes;
 msg.flags = (0U << 0U) | (1UL << (1));

 return i2c_transfer(dev, &msg, 1, addr);
}

/**
 * @brief Write a set amount of data to an I2C device.
 *
 * This is equivalent to:
 *
 *     i2c_write(spec->bus, buf, num_bytes, spec->addr);
 *
 * @param spec I2C specification from devicetree.
 * @param buf Memory pool from which the data is transferred.
 * @param num_bytes Number of bytes to write.
 *
 * @return a value from i2c_write()
 */
static inline int i2c_write_dt(const struct i2c_dt_spec *spec,
          const uint8_t *buf, uint32_t num_bytes)
{
 return i2c_write(spec->bus, buf, num_bytes, spec->addr);
}

/**
 * @brief Read a set amount of data from an I2C device.
 *
 * This routine reads a set amount of data synchronously.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @param buf Memory pool that stores the retrieved data.
 * @param num_bytes Number of bytes to read.
 * @param addr Address of the I2C device being read.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error.
 */
static inline int i2c_read(const struct device *dev, uint8_t *buf,
      uint32_t num_bytes, uint16_t addr)
{
 struct i2c_msg msg;

 msg.buf = buf;
 msg.len = num_bytes;
 msg.flags = (1UL << (0)) | (1UL << (1));

 return i2c_transfer(dev, &msg, 1, addr);
}

/**
 * @brief Read a set amount of data from an I2C device.
 *
 * This is equivalent to:
 *
 *     i2c_read(spec->bus, buf, num_bytes, spec->addr);
 *
 * @param spec I2C specification from devicetree.
 * @param buf Memory pool that stores the retrieved data.
 * @param num_bytes Number of bytes to read.
 *
 * @return a value from i2c_read()
 */
static inline int i2c_read_dt(const struct i2c_dt_spec *spec,
         uint8_t *buf, uint32_t num_bytes)
{
 return i2c_read(spec->bus, buf, num_bytes, spec->addr);
}

/**
 * @brief Write then read data from an I2C device.
 *
 * This supports the common operation "this is what I want", "now give
 * it to me" transaction pair through a combined write-then-read bus
 * transaction.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @param addr Address of the I2C device
 * @param write_buf Pointer to the data to be written
 * @param num_write Number of bytes to write
 * @param read_buf Pointer to storage for read data
 * @param num_read Number of bytes to read
 *
 * @retval 0 if successful
 * @retval negative on error.
 */
static inline int i2c_write_read(const struct device *dev, uint16_t addr,
     const void *write_buf, size_t num_write,
     void *read_buf, size_t num_read)
{
 struct i2c_msg msg[2];

 msg[0].buf = (uint8_t *)write_buf;
 msg[0].len = num_write;
 msg[0].flags = (0U << 0U);

 msg[1].buf = (uint8_t *)read_buf;
 msg[1].len = num_read;
 msg[1].flags = (1UL << (2)) | (1UL << (0)) | (1UL << (1));

 return i2c_transfer(dev, msg, 2, addr);
}

/**
 * @brief Write then read data from an I2C device.
 *
 * This is equivalent to:
 *
 *     i2c_write_read(spec->bus, spec->addr,
 *                    write_buf, num_write,
 *                    read_buf, num_read);
 *
 * @param spec I2C specification from devicetree.
 * @param write_buf Pointer to the data to be written
 * @param num_write Number of bytes to write
 * @param read_buf Pointer to storage for read data
 * @param num_read Number of bytes to read
 *
 * @return a value from i2c_write_read()
 */
static inline int i2c_write_read_dt(const struct i2c_dt_spec *spec,
        const void *write_buf, size_t num_write,
        void *read_buf, size_t num_read)
{
 return i2c_write_read(spec->bus, spec->addr,
         write_buf, num_write,
         read_buf, num_read);
}

/**
 * @brief Read multiple bytes from an internal address of an I2C device.
 *
 * This routine reads multiple bytes from an internal address of an
 * I2C device synchronously.
 *
 * Instances of this may be replaced by i2c_write_read().
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @param dev_addr Address of the I2C device for reading.
 * @param start_addr Internal address from which the data is being read.
 * @param buf Memory pool that stores the retrieved data.
 * @param num_bytes Number of bytes being read.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error.
 */
static inline int i2c_burst_read(const struct device *dev,
     uint16_t dev_addr,
     uint8_t start_addr,
     uint8_t *buf,
     uint32_t num_bytes)
{
 return i2c_write_read(dev, dev_addr,
         &start_addr, sizeof(start_addr),
         buf, num_bytes);
}

/**
 * @brief Read multiple bytes from an internal address of an I2C device.
 *
 * This is equivalent to:
 *
 *     i2c_burst_read(spec->bus, spec->addr, start_addr, buf, num_bytes);
 *
 * @param spec I2C specification from devicetree.
 * @param start_addr Internal address from which the data is being read.
 * @param buf Memory pool that stores the retrieved data.
 * @param num_bytes Number of bytes to read.
 *
 * @return a value from i2c_burst_read()
 */
static inline int i2c_burst_read_dt(const struct i2c_dt_spec *spec,
        uint8_t start_addr,
        uint8_t *buf,
        uint32_t num_bytes)
{
 return i2c_burst_read(spec->bus, spec->addr,
         start_addr, buf, num_bytes);
}

/**
 * @brief Write multiple bytes to an internal address of an I2C device.
 *
 * This routine writes multiple bytes to an internal address of an
 * I2C device synchronously.
 *
 * @warning The combined write synthesized by this API may not be
 * supported on all I2C devices.  Uses of this API may be made more
 * portable by replacing them with calls to i2c_write() passing a
 * buffer containing the combined address and data.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @param dev_addr Address of the I2C device for writing.
 * @param start_addr Internal address to which the data is being written.
 * @param buf Memory pool from which the data is transferred.
 * @param num_bytes Number of bytes being written.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error.
 */
static inline int i2c_burst_write(const struct device *dev,
      uint16_t dev_addr,
      uint8_t start_addr,
      const uint8_t *buf,
      uint32_t num_bytes)
{
 struct i2c_msg msg[2];

 msg[0].buf = &start_addr;
 msg[0].len = 1U;
 msg[0].flags = (0U << 0U);

 msg[1].buf = (uint8_t *)buf;
 msg[1].len = num_bytes;
 msg[1].flags = (0U << 0U) | (1UL << (1));

 return i2c_transfer(dev, msg, 2, dev_addr);
}

/**
 * @brief Write multiple bytes to an internal address of an I2C device.
 *
 * This is equivalent to:
 *
 *     i2c_burst_write(spec->bus, spec->addr, start_addr, buf, num_bytes);
 *
 * @param spec I2C specification from devicetree.
 * @param start_addr Internal address to which the data is being written.
 * @param buf Memory pool from which the data is transferred.
 * @param num_bytes Number of bytes being written.
 *
 * @return a value from i2c_burst_write()
 */
static inline int i2c_burst_write_dt(const struct i2c_dt_spec *spec,
         uint8_t start_addr,
         const uint8_t *buf,
         uint32_t num_bytes)
{
 return i2c_burst_write(spec->bus, spec->addr,
          start_addr, buf, num_bytes);
}

/**
 * @brief Read internal register of an I2C device.
 *
 * This routine reads the value of an 8-bit internal register of an I2C
 * device synchronously.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @param dev_addr Address of the I2C device for reading.
 * @param reg_addr Address of the internal register being read.
 * @param value Memory pool that stores the retrieved register value.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error.
 */
static inline int i2c_reg_read_byte(const struct device *dev,
        uint16_t dev_addr,
        uint8_t reg_addr, uint8_t *value)
{
 return i2c_write_read(dev, dev_addr,
         &reg_addr, sizeof(reg_addr),
         value, sizeof(*value));
}

/**
 * @brief Read internal register of an I2C device.
 *
 * This is equivalent to:
 *
 *     i2c_reg_read_byte(spec->bus, spec->addr, reg_addr, value);
 *
 * @param spec I2C specification from devicetree.
 * @param reg_addr Address of the internal register being read.
 * @param value Memory pool that stores the retrieved register value.
 *
 * @return a value from i2c_reg_read_byte()
 */
static inline int i2c_reg_read_byte_dt(const struct i2c_dt_spec *spec,
           uint8_t reg_addr, uint8_t *value)
{
 return i2c_reg_read_byte(spec->bus, spec->addr, reg_addr, value);
}

/**
 * @brief Write internal register of an I2C device.
 *
 * This routine writes a value to an 8-bit internal register of an I2C
 * device synchronously.
 *
 * @note This function internally combines the register and value into
 * a single bus transaction.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @param dev_addr Address of the I2C device for writing.
 * @param reg_addr Address of the internal register being written.
 * @param value Value to be written to internal register.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error.
 */
static inline int i2c_reg_write_byte(const struct device *dev,
         uint16_t dev_addr,
         uint8_t reg_addr, uint8_t value)
{
 uint8_t tx_buf[2] = {reg_addr, value};

 return i2c_write(dev, tx_buf, 2, dev_addr);
}

/**
 * @brief Write internal register of an I2C device.
 *
 * This is equivalent to:
 *
 *     i2c_reg_write_byte(spec->bus, spec->addr, reg_addr, value);
 *
 * @param spec I2C specification from devicetree.
 * @param reg_addr Address of the internal register being written.
 * @param value Value to be written to internal register.
 *
 * @return a value from i2c_reg_write_byte()
 */
static inline int i2c_reg_write_byte_dt(const struct i2c_dt_spec *spec,
     uint8_t reg_addr, uint8_t value)
{
 return i2c_reg_write_byte(spec->bus, spec->addr, reg_addr, value);
}

/**
 * @brief Update internal register of an I2C device.
 *
 * This routine updates the value of a set of bits from an 8-bit internal
 * register of an I2C device synchronously.
 *
 * @note If the calculated new register value matches the value that
 * was read this function will not generate a write operation.
 *
 * @param dev Pointer to the device structure for an I2C controller
 * driver configured in controller mode.
 * @param dev_addr Address of the I2C device for updating.
 * @param reg_addr Address of the internal register being updated.
 * @param mask Bitmask for updating internal register.
 * @param value Value for updating internal register.
 *
 * @retval 0 If successful.
 * @retval -EIO General input / output error.
 */
static inline int i2c_reg_update_byte(const struct device *dev,
          uint8_t dev_addr,
          uint8_t reg_addr, uint8_t mask,
          uint8_t value)
{
 uint8_t old_value, new_value;
 int rc;

 rc = i2c_reg_read_byte(dev, dev_addr, reg_addr, &old_value);
 if (rc != 0) {
  return rc;
 }

 new_value = (old_value & ~mask) | (value & mask);
 if (new_value == old_value) {
  return 0;
 }

 return i2c_reg_write_byte(dev, dev_addr, reg_addr, new_value);
}

/**
 * @brief Update internal register of an I2C device.
 *
 * This is equivalent to:
 *
 *     i2c_reg_update_byte(spec->bus, spec->addr, reg_addr, mask, value);
 *
 * @param spec I2C specification from devicetree.
 * @param reg_addr Address of the internal register being updated.
 * @param mask Bitmask for updating internal register.
 * @param value Value for updating internal register.
 *
 * @return a value from i2c_reg_update_byte()
 */
static inline int i2c_reg_update_byte_dt(const struct i2c_dt_spec *spec,
      uint8_t reg_addr, uint8_t mask,
      uint8_t value)
{
 return i2c_reg_update_byte(spec->bus, spec->addr,
       reg_addr, mask, value);
}


}


/**
 * @}
 */

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h" 1
/* auto-generated by gen_syscalls.py, don't edit */





# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/tracing/tracing_syscall.h" 1
/*
 * Copyright (c) 2021 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 8 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h" 2



# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/lib/gcc/arm-zephyr-eabi/12.2.0/include/stdarg.h" 3 4
/* Copyright (C) 1989-2022 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
 */
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscall_list.h"
/* auto-generated by gen_syscalls.py, don't edit */
# 14 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/syscall.h" 1
/*
 * Copyright (c) 2017, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 15 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/linker/sections.h" 1
/*
 * Copyright (c) 2013-2014, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Definitions of various linker Sections.
 *
 * Linker Section declarations used by linker script, C files and Assembly
 * files.
 */
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h" 2



extern "C" {


extern int z_impl_i2c_configure(const struct device * dev, uint32_t dev_config);


static inline int i2c_configure(const struct device * dev, uint32_t dev_config)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_i2c_configure(dev, dev_config);
}
# 47 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h"
extern int z_impl_i2c_get_config(const struct device * dev, uint32_t * dev_config);


static inline int i2c_get_config(const struct device * dev, uint32_t * dev_config)
{







 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_i2c_get_config(dev, dev_config);
}
# 71 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h"
extern int z_impl_i2c_transfer(const struct device * dev, struct i2c_msg * msgs, uint8_t num_msgs, uint16_t addr);


static inline int i2c_transfer(const struct device * dev, struct i2c_msg * msgs, uint8_t num_msgs, uint16_t addr)
{
# 85 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h"
 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_i2c_transfer(dev, msgs, num_msgs, addr);
}
# 97 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h"
extern int z_impl_i2c_recover_bus(const struct device * dev);


static inline int i2c_recover_bus(const struct device * dev)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_i2c_recover_bus(dev);
}
# 120 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h"
extern int z_impl_i2c_target_driver_register(const struct device * dev);


static inline int i2c_target_driver_register(const struct device * dev)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_i2c_target_driver_register(dev);
}
# 143 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h"
extern int z_impl_i2c_target_driver_unregister(const struct device * dev);


static inline int i2c_target_driver_unregister(const struct device * dev)
{






 do { __asm__ __volatile__ ("" ::: "memory"); } while (false);
 return z_impl_i2c_target_driver_unregister(dev);
}
# 167 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/generated/zephyr/syscalls/i2c.h"
}
# 1714 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/drivers/i2c.h" 2
# 17 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/math.h" 3 4
/*
Copyright (c) 1991, 1993
The Regents of the University of California.  All rights reserved.
c) UNIX System Laboratories, Inc.
All or some portions of this file are derived from material licensed
to the University of California by American Telephone and Telegraph
Co. or Unix System Laboratories, Inc. and are reproduced herein with
the permission of UNIX System Laboratories, Inc.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
# 18 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2



# 20 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h"
/* Note: DT_REG_ADDR needs an expanded argument or it will not work properly */





/* Check all pins are defined only once */
# 42 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h"
/* Return the index of it if matched, oterwise return 0 */



/* Only matched pin returns non-zero value, so the sum is matched pin's index */
# 66 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h"
/* If digital-pin-gpios is not defined, tries to use the led0 alias */
# 85 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h"
/*
 * expand as
 * enum digitalPins { D0, D1, ... LED... NUM_OF_DIGITAL_PINS };
 */
enum digitalPins {

 D0 = 0 , D1 = 1 , D2 = 2 , D3 = 3 , D4 = 4 , D5 = 5 , D6 = 6 , D7 = 7 , D8 = 8 , D9 = 9 , D10 = 10 , D11 = 11 , D12 = 12 , D13 = 13 , D14 = 14 , D15 = 15 , D16 = 16 , D17 = 17 , D18 = 18 , D19 = 19 , D20 = 20 , D21 = 21 , D22 = 22 , D23 = 23 , D24 = 24 , D25 = 25 , D26 = 26 , D27 = 27 , D28 = 28 , D29 = 29 , D30 = 30 , D31 = 31 , D32 = 32 , D33 = 33 , D34 = 34 , D35 = 35 , D36 = 36 , D37 = 37 , D38 = 38 , D39 = 39 , D40 = 40 , D41 = 41 , D42 = 42 , D43 = 43 , D44 = 44 , D45 = 45 , D46 = 46 , D47 = 47 , D48 = 48 , D49 = 49 , D50 = 50 , D51 = 51 , D52 = 52 , D53 = 53 , D54 = 54 , D55 = 55 , D56 = 56 , D57 = 57 , D58 = 58 , D59 = 59 , D60 = 60 , D61 = 61 , D62 = 62 , D63 = 63 , D64 = 64 , D65 = 65 , D66 = 66 , D67 = 67 , D68 = 68 , D69 = 69 , D70 = 70 , D71 = 71 , D72 = 72 , D73 = 73 , D74 = 74 , D75 = 75 , D76 = 76 , D77 = 77 , D78 = 78 , D79 = 79 , D80 = 80 , D81 = 81 , D82 = 82 , D83 = 83 , D84 = 84 , D85 = 85 , D86 = 86 , D87 = 87 , D88 = 88 , D89 = 89 , D90 = 90 , D91 = 91 , D92 = 92 , D93 = 93 , D94 = 94 , D95 = 95 , D96 = 96 , D97 = 97 , D98 = 98 , D99 = 99 , D100 = 100,

 NUM_OF_DIGITAL_PINS
};






enum analogPins { A0 = ((((1476528128U == 1476527104U) && (4 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476528128U == 1476526080U) && (4 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476528128U == 1476526080U) && (4 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476528128U == 1476526080U) && (4 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476528128U == 1476535296U) && (4 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476528128U == 1476526080U) && (4 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476528128U == 1476529152U) && (4 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476528128U == 1476527104U) && (4 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476528128U == 1476527104U) && (4 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476528128U == 1476527104U) && (4 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476528128U == 1476536320U) && (4 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476528128U == 1476535296U) && (4 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476528128U == 1476535296U) && (4 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476528128U == 1476533248U) && (4 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476528128U == 1476532224U) && (4 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476528128U == 1476528128U) && (4 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476528128U == 1476533248U) && (4 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476528128U == 1476534272U) && (4 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476528128U == 1476529152U) && (4 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476528128U == 1476529152U) && (4 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476528128U == 1476527104U) && (4 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476528128U == 1476533248U) && (4 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476528128U == 1476535296U) && (4 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476528128U == 1476532224U) && (4 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476528128U == 1476532224U) && (4 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476528128U == 1476535296U) && (4 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476528128U == 1476535296U) && (4 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476528128U == 1476535296U) && (4 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476528128U == 1476535296U) && (4 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476528128U == 1476535296U) && (4 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476528128U == 1476536320U) && (4 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476528128U == 1476535296U) && (4 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476528128U == 1476536320U) && (4 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476528128U == 1476535296U) && (4 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476528128U == 1476536320U) && (4 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476528128U == 1476535296U) && (4 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476528128U == 1476536320U) && (4 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476528128U == 1476535296U) && (4 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476528128U == 1476535296U) && (4 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476528128U == 1476534272U) && (4 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476528128U == 1476530176U) && (4 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476528128U == 1476536320U) && (4 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476528128U == 1476534272U) && (4 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476528128U == 1476534272U) && (4 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476528128U == 1476532224U) && (4 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476528128U == 1476534272U) && (4 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476528128U == 1476533248U) && (4 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476528128U == 1476527104U) && (4 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476528128U == 1476536320U) && (4 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476528128U == 1476530176U) && (4 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476528128U == 1476534272U) && (4 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476528128U == 1476530176U) && (4 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476528128U == 1476536320U) && (4 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476528128U == 1476532224U) && (4 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476528128U == 1476534272U) && (4 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476528128U == 1476533248U) && (4 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476528128U == 1476526080U) && (4 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476528128U == 1476535296U) && (4 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476528128U == 1476534272U) && (4 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476528128U == 1476534272U) && (4 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476528128U == 1476534272U) && (4 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476528128U == 1476533248U) && (4 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476528128U == 1476532224U) && (4 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476528128U == 1476533248U) && (4 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476528128U == 1476533248U) && (4 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476528128U == 1476533248U) && (4 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476528128U == 1476526080U) && (4 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476528128U == 1476529152U) && (4 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476528128U == 1476528128U) && (4 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476528128U == 1476534272U) && (4 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476528128U == 1476534272U) && (4 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476528128U == 1476534272U) && (4 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476528128U == 1476534272U) && (4 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476528128U == 1476528128U) && (4 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476528128U == 1476527104U) && (4 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476528128U == 1476529152U) && (4 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476528128U == 1476528128U) && (4 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476528128U == 1476528128U) && (4 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476528128U == 1476527104U) && (4 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476528128U == 1476527104U) && (4 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476528128U == 1476528128U) && (4 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476528128U == 1476528128U) && (4 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476528128U == 1476528128U) && (4 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476528128U == 1476526080U) && (4 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476528128U == 1476526080U) && (4 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476528128U == 1476526080U) && (4 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476528128U == 1476534272U) && (4 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476528128U == 1476535296U) && (4 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476528128U == 1476530176U) && (4 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476528128U == 1476532224U) && (4 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476528128U == 1476529152U) && (4 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476528128U == 1476527104U) && (4 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476528128U == 1476526080U) && (4 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476528128U == 1476527104U) && (4 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476528128U == 1476527104U) && (4 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476528128U == 1476527104U) && (4 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476528128U == 1476533248U) && (4 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476528128U == 3735928559U) && (4 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476528128U == 3735928559U) && (4 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476528128U == 3735928559U) && (4 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476528128U == 3735928559U) && (4 == 3)) ? 1 : 0) ? 100 : 0), A1 = ((((1476528128U == 1476527104U) && (5 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476528128U == 1476526080U) && (5 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476528128U == 1476526080U) && (5 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476528128U == 1476526080U) && (5 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476528128U == 1476535296U) && (5 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476528128U == 1476526080U) && (5 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476528128U == 1476529152U) && (5 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476528128U == 1476527104U) && (5 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476528128U == 1476527104U) && (5 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476528128U == 1476527104U) && (5 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476528128U == 1476536320U) && (5 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476528128U == 1476535296U) && (5 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476528128U == 1476535296U) && (5 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476528128U == 1476533248U) && (5 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476528128U == 1476532224U) && (5 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476528128U == 1476528128U) && (5 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476528128U == 1476533248U) && (5 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476528128U == 1476534272U) && (5 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476528128U == 1476529152U) && (5 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476528128U == 1476529152U) && (5 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476528128U == 1476527104U) && (5 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476528128U == 1476533248U) && (5 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476528128U == 1476535296U) && (5 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476528128U == 1476532224U) && (5 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476528128U == 1476532224U) && (5 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476528128U == 1476535296U) && (5 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476528128U == 1476535296U) && (5 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476528128U == 1476535296U) && (5 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476528128U == 1476535296U) && (5 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476528128U == 1476535296U) && (5 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476528128U == 1476536320U) && (5 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476528128U == 1476535296U) && (5 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476528128U == 1476536320U) && (5 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476528128U == 1476535296U) && (5 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476528128U == 1476536320U) && (5 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476528128U == 1476535296U) && (5 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476528128U == 1476536320U) && (5 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476528128U == 1476535296U) && (5 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476528128U == 1476535296U) && (5 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476528128U == 1476534272U) && (5 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476528128U == 1476530176U) && (5 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476528128U == 1476536320U) && (5 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476528128U == 1476534272U) && (5 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476528128U == 1476534272U) && (5 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476528128U == 1476532224U) && (5 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476528128U == 1476534272U) && (5 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476528128U == 1476533248U) && (5 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476528128U == 1476527104U) && (5 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476528128U == 1476536320U) && (5 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476528128U == 1476530176U) && (5 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476528128U == 1476534272U) && (5 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476528128U == 1476530176U) && (5 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476528128U == 1476536320U) && (5 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476528128U == 1476532224U) && (5 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476528128U == 1476534272U) && (5 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476528128U == 1476533248U) && (5 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476528128U == 1476526080U) && (5 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476528128U == 1476535296U) && (5 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476528128U == 1476534272U) && (5 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476528128U == 1476534272U) && (5 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476528128U == 1476534272U) && (5 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476528128U == 1476533248U) && (5 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476528128U == 1476532224U) && (5 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476528128U == 1476533248U) && (5 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476528128U == 1476533248U) && (5 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476528128U == 1476533248U) && (5 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476528128U == 1476526080U) && (5 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476528128U == 1476529152U) && (5 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476528128U == 1476528128U) && (5 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476528128U == 1476534272U) && (5 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476528128U == 1476534272U) && (5 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476528128U == 1476534272U) && (5 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476528128U == 1476534272U) && (5 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476528128U == 1476528128U) && (5 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476528128U == 1476527104U) && (5 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476528128U == 1476529152U) && (5 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476528128U == 1476528128U) && (5 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476528128U == 1476528128U) && (5 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476528128U == 1476527104U) && (5 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476528128U == 1476527104U) && (5 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476528128U == 1476528128U) && (5 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476528128U == 1476528128U) && (5 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476528128U == 1476528128U) && (5 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476528128U == 1476526080U) && (5 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476528128U == 1476526080U) && (5 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476528128U == 1476526080U) && (5 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476528128U == 1476534272U) && (5 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476528128U == 1476535296U) && (5 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476528128U == 1476530176U) && (5 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476528128U == 1476532224U) && (5 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476528128U == 1476529152U) && (5 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476528128U == 1476527104U) && (5 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476528128U == 1476526080U) && (5 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476528128U == 1476527104U) && (5 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476528128U == 1476527104U) && (5 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476528128U == 1476527104U) && (5 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476528128U == 1476533248U) && (5 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476528128U == 3735928559U) && (5 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476528128U == 3735928559U) && (5 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476528128U == 3735928559U) && (5 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476528128U == 3735928559U) && (5 == 3)) ? 1 : 0) ? 100 : 0), A2 = ((((1476527104U == 1476527104U) && (0 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476527104U == 1476526080U) && (0 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476527104U == 1476526080U) && (0 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476527104U == 1476526080U) && (0 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476527104U == 1476535296U) && (0 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476527104U == 1476526080U) && (0 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476527104U == 1476529152U) && (0 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476527104U == 1476527104U) && (0 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476527104U == 1476527104U) && (0 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476527104U == 1476527104U) && (0 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476527104U == 1476536320U) && (0 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476527104U == 1476535296U) && (0 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476527104U == 1476535296U) && (0 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476527104U == 1476533248U) && (0 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476527104U == 1476532224U) && (0 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476527104U == 1476528128U) && (0 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476527104U == 1476533248U) && (0 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476527104U == 1476534272U) && (0 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476527104U == 1476529152U) && (0 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476527104U == 1476529152U) && (0 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476527104U == 1476527104U) && (0 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476527104U == 1476533248U) && (0 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476527104U == 1476535296U) && (0 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476527104U == 1476532224U) && (0 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476527104U == 1476532224U) && (0 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476527104U == 1476535296U) && (0 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476527104U == 1476535296U) && (0 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476527104U == 1476535296U) && (0 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476527104U == 1476535296U) && (0 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476527104U == 1476535296U) && (0 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476527104U == 1476536320U) && (0 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476527104U == 1476535296U) && (0 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476527104U == 1476536320U) && (0 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476527104U == 1476535296U) && (0 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476527104U == 1476536320U) && (0 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476527104U == 1476535296U) && (0 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476527104U == 1476536320U) && (0 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476527104U == 1476535296U) && (0 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476527104U == 1476535296U) && (0 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476527104U == 1476534272U) && (0 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476527104U == 1476530176U) && (0 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476527104U == 1476536320U) && (0 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476527104U == 1476534272U) && (0 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476527104U == 1476534272U) && (0 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476527104U == 1476532224U) && (0 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476527104U == 1476534272U) && (0 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476527104U == 1476533248U) && (0 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476527104U == 1476527104U) && (0 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476527104U == 1476536320U) && (0 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476527104U == 1476530176U) && (0 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476527104U == 1476534272U) && (0 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476527104U == 1476530176U) && (0 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476527104U == 1476536320U) && (0 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476527104U == 1476532224U) && (0 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476527104U == 1476534272U) && (0 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476527104U == 1476533248U) && (0 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476527104U == 1476526080U) && (0 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476527104U == 1476535296U) && (0 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476527104U == 1476534272U) && (0 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476527104U == 1476534272U) && (0 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476527104U == 1476534272U) && (0 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476527104U == 1476533248U) && (0 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476527104U == 1476532224U) && (0 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476527104U == 1476533248U) && (0 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476527104U == 1476533248U) && (0 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476527104U == 1476533248U) && (0 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476527104U == 1476526080U) && (0 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476527104U == 1476529152U) && (0 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476527104U == 1476528128U) && (0 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476527104U == 1476534272U) && (0 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476527104U == 1476534272U) && (0 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476527104U == 1476534272U) && (0 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476527104U == 1476534272U) && (0 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476527104U == 1476528128U) && (0 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476527104U == 1476527104U) && (0 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476527104U == 1476529152U) && (0 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476527104U == 1476528128U) && (0 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476527104U == 1476528128U) && (0 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476527104U == 1476527104U) && (0 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476527104U == 1476527104U) && (0 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476527104U == 1476528128U) && (0 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476527104U == 1476528128U) && (0 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476527104U == 1476528128U) && (0 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476527104U == 1476526080U) && (0 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476527104U == 1476526080U) && (0 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476527104U == 1476526080U) && (0 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476527104U == 1476534272U) && (0 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476527104U == 1476535296U) && (0 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476527104U == 1476530176U) && (0 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476527104U == 1476532224U) && (0 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476527104U == 1476529152U) && (0 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476527104U == 1476527104U) && (0 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476527104U == 1476526080U) && (0 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476527104U == 1476527104U) && (0 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476527104U == 1476527104U) && (0 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476527104U == 1476527104U) && (0 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476527104U == 1476533248U) && (0 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476527104U == 3735928559U) && (0 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476527104U == 3735928559U) && (0 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476527104U == 3735928559U) && (0 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476527104U == 3735928559U) && (0 == 3)) ? 1 : 0) ? 100 : 0), A3 = ((((1476527104U == 1476527104U) && (1 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476527104U == 1476526080U) && (1 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476527104U == 1476526080U) && (1 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476527104U == 1476526080U) && (1 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476527104U == 1476535296U) && (1 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476527104U == 1476526080U) && (1 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476527104U == 1476529152U) && (1 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476527104U == 1476527104U) && (1 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476527104U == 1476527104U) && (1 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476527104U == 1476527104U) && (1 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476527104U == 1476536320U) && (1 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476527104U == 1476535296U) && (1 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476527104U == 1476535296U) && (1 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476527104U == 1476533248U) && (1 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476527104U == 1476532224U) && (1 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476527104U == 1476528128U) && (1 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476527104U == 1476533248U) && (1 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476527104U == 1476534272U) && (1 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476527104U == 1476529152U) && (1 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476527104U == 1476529152U) && (1 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476527104U == 1476527104U) && (1 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476527104U == 1476533248U) && (1 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476527104U == 1476535296U) && (1 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476527104U == 1476532224U) && (1 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476527104U == 1476532224U) && (1 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476527104U == 1476535296U) && (1 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476527104U == 1476535296U) && (1 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476527104U == 1476535296U) && (1 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476527104U == 1476535296U) && (1 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476527104U == 1476535296U) && (1 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476527104U == 1476536320U) && (1 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476527104U == 1476535296U) && (1 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476527104U == 1476536320U) && (1 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476527104U == 1476535296U) && (1 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476527104U == 1476536320U) && (1 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476527104U == 1476535296U) && (1 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476527104U == 1476536320U) && (1 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476527104U == 1476535296U) && (1 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476527104U == 1476535296U) && (1 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476527104U == 1476534272U) && (1 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476527104U == 1476530176U) && (1 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476527104U == 1476536320U) && (1 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476527104U == 1476534272U) && (1 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476527104U == 1476534272U) && (1 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476527104U == 1476532224U) && (1 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476527104U == 1476534272U) && (1 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476527104U == 1476533248U) && (1 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476527104U == 1476527104U) && (1 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476527104U == 1476536320U) && (1 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476527104U == 1476530176U) && (1 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476527104U == 1476534272U) && (1 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476527104U == 1476530176U) && (1 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476527104U == 1476536320U) && (1 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476527104U == 1476532224U) && (1 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476527104U == 1476534272U) && (1 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476527104U == 1476533248U) && (1 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476527104U == 1476526080U) && (1 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476527104U == 1476535296U) && (1 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476527104U == 1476534272U) && (1 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476527104U == 1476534272U) && (1 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476527104U == 1476534272U) && (1 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476527104U == 1476533248U) && (1 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476527104U == 1476532224U) && (1 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476527104U == 1476533248U) && (1 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476527104U == 1476533248U) && (1 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476527104U == 1476533248U) && (1 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476527104U == 1476526080U) && (1 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476527104U == 1476529152U) && (1 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476527104U == 1476528128U) && (1 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476527104U == 1476534272U) && (1 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476527104U == 1476534272U) && (1 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476527104U == 1476534272U) && (1 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476527104U == 1476534272U) && (1 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476527104U == 1476528128U) && (1 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476527104U == 1476527104U) && (1 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476527104U == 1476529152U) && (1 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476527104U == 1476528128U) && (1 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476527104U == 1476528128U) && (1 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476527104U == 1476527104U) && (1 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476527104U == 1476527104U) && (1 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476527104U == 1476528128U) && (1 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476527104U == 1476528128U) && (1 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476527104U == 1476528128U) && (1 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476527104U == 1476526080U) && (1 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476527104U == 1476526080U) && (1 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476527104U == 1476526080U) && (1 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476527104U == 1476534272U) && (1 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476527104U == 1476535296U) && (1 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476527104U == 1476530176U) && (1 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476527104U == 1476532224U) && (1 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476527104U == 1476529152U) && (1 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476527104U == 1476527104U) && (1 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476527104U == 1476526080U) && (1 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476527104U == 1476527104U) && (1 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476527104U == 1476527104U) && (1 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476527104U == 1476527104U) && (1 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476527104U == 1476533248U) && (1 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476527104U == 3735928559U) && (1 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476527104U == 3735928559U) && (1 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476527104U == 3735928559U) && (1 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476527104U == 3735928559U) && (1 == 3)) ? 1 : 0) ? 100 : 0), A4 = ((((1476528128U == 1476527104U) && (3 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476528128U == 1476526080U) && (3 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476528128U == 1476526080U) && (3 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476528128U == 1476526080U) && (3 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476528128U == 1476535296U) && (3 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476528128U == 1476526080U) && (3 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476528128U == 1476529152U) && (3 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476528128U == 1476527104U) && (3 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476528128U == 1476527104U) && (3 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476528128U == 1476527104U) && (3 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476528128U == 1476536320U) && (3 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476528128U == 1476535296U) && (3 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476528128U == 1476535296U) && (3 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476528128U == 1476533248U) && (3 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476528128U == 1476532224U) && (3 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476528128U == 1476528128U) && (3 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476528128U == 1476533248U) && (3 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476528128U == 1476534272U) && (3 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476528128U == 1476529152U) && (3 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476528128U == 1476529152U) && (3 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476528128U == 1476527104U) && (3 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476528128U == 1476533248U) && (3 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476528128U == 1476535296U) && (3 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476528128U == 1476532224U) && (3 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476528128U == 1476532224U) && (3 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476528128U == 1476535296U) && (3 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476528128U == 1476535296U) && (3 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476528128U == 1476535296U) && (3 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476528128U == 1476535296U) && (3 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476528128U == 1476535296U) && (3 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476528128U == 1476536320U) && (3 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476528128U == 1476535296U) && (3 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476528128U == 1476536320U) && (3 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476528128U == 1476535296U) && (3 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476528128U == 1476536320U) && (3 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476528128U == 1476535296U) && (3 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476528128U == 1476536320U) && (3 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476528128U == 1476535296U) && (3 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476528128U == 1476535296U) && (3 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476528128U == 1476534272U) && (3 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476528128U == 1476530176U) && (3 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476528128U == 1476536320U) && (3 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476528128U == 1476534272U) && (3 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476528128U == 1476534272U) && (3 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476528128U == 1476532224U) && (3 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476528128U == 1476534272U) && (3 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476528128U == 1476533248U) && (3 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476528128U == 1476527104U) && (3 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476528128U == 1476536320U) && (3 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476528128U == 1476530176U) && (3 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476528128U == 1476534272U) && (3 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476528128U == 1476530176U) && (3 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476528128U == 1476536320U) && (3 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476528128U == 1476532224U) && (3 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476528128U == 1476534272U) && (3 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476528128U == 1476533248U) && (3 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476528128U == 1476526080U) && (3 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476528128U == 1476535296U) && (3 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476528128U == 1476534272U) && (3 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476528128U == 1476534272U) && (3 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476528128U == 1476534272U) && (3 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476528128U == 1476533248U) && (3 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476528128U == 1476532224U) && (3 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476528128U == 1476533248U) && (3 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476528128U == 1476533248U) && (3 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476528128U == 1476533248U) && (3 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476528128U == 1476526080U) && (3 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476528128U == 1476529152U) && (3 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476528128U == 1476528128U) && (3 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476528128U == 1476534272U) && (3 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476528128U == 1476534272U) && (3 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476528128U == 1476534272U) && (3 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476528128U == 1476534272U) && (3 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476528128U == 1476528128U) && (3 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476528128U == 1476527104U) && (3 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476528128U == 1476529152U) && (3 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476528128U == 1476528128U) && (3 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476528128U == 1476528128U) && (3 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476528128U == 1476527104U) && (3 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476528128U == 1476527104U) && (3 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476528128U == 1476528128U) && (3 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476528128U == 1476528128U) && (3 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476528128U == 1476528128U) && (3 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476528128U == 1476526080U) && (3 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476528128U == 1476526080U) && (3 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476528128U == 1476526080U) && (3 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476528128U == 1476534272U) && (3 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476528128U == 1476535296U) && (3 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476528128U == 1476530176U) && (3 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476528128U == 1476532224U) && (3 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476528128U == 1476529152U) && (3 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476528128U == 1476527104U) && (3 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476528128U == 1476526080U) && (3 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476528128U == 1476527104U) && (3 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476528128U == 1476527104U) && (3 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476528128U == 1476527104U) && (3 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476528128U == 1476533248U) && (3 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476528128U == 3735928559U) && (3 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476528128U == 3735928559U) && (3 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476528128U == 3735928559U) && (3 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476528128U == 3735928559U) && (3 == 3)) ? 1 : 0) ? 100 : 0), A5 = ((((1476528128U == 1476527104U) && (2 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476528128U == 1476526080U) && (2 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476528128U == 1476526080U) && (2 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476528128U == 1476526080U) && (2 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476528128U == 1476535296U) && (2 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476528128U == 1476526080U) && (2 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476528128U == 1476529152U) && (2 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476528128U == 1476527104U) && (2 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476528128U == 1476527104U) && (2 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476528128U == 1476527104U) && (2 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476528128U == 1476536320U) && (2 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476528128U == 1476535296U) && (2 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476528128U == 1476535296U) && (2 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476528128U == 1476533248U) && (2 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476528128U == 1476532224U) && (2 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476528128U == 1476528128U) && (2 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476528128U == 1476533248U) && (2 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476528128U == 1476534272U) && (2 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476528128U == 1476529152U) && (2 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476528128U == 1476529152U) && (2 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476528128U == 1476527104U) && (2 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476528128U == 1476533248U) && (2 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476528128U == 1476535296U) && (2 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476528128U == 1476532224U) && (2 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476528128U == 1476532224U) && (2 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476528128U == 1476535296U) && (2 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476528128U == 1476535296U) && (2 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476528128U == 1476535296U) && (2 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476528128U == 1476535296U) && (2 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476528128U == 1476535296U) && (2 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476528128U == 1476536320U) && (2 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476528128U == 1476535296U) && (2 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476528128U == 1476536320U) && (2 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476528128U == 1476535296U) && (2 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476528128U == 1476536320U) && (2 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476528128U == 1476535296U) && (2 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476528128U == 1476536320U) && (2 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476528128U == 1476535296U) && (2 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476528128U == 1476535296U) && (2 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476528128U == 1476534272U) && (2 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476528128U == 1476530176U) && (2 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476528128U == 1476536320U) && (2 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476528128U == 1476534272U) && (2 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476528128U == 1476534272U) && (2 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476528128U == 1476532224U) && (2 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476528128U == 1476534272U) && (2 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476528128U == 1476533248U) && (2 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476528128U == 1476527104U) && (2 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476528128U == 1476536320U) && (2 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476528128U == 1476530176U) && (2 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476528128U == 1476534272U) && (2 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476528128U == 1476530176U) && (2 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476528128U == 1476536320U) && (2 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476528128U == 1476532224U) && (2 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476528128U == 1476534272U) && (2 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476528128U == 1476533248U) && (2 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476528128U == 1476526080U) && (2 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476528128U == 1476535296U) && (2 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476528128U == 1476534272U) && (2 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476528128U == 1476534272U) && (2 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476528128U == 1476534272U) && (2 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476528128U == 1476533248U) && (2 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476528128U == 1476532224U) && (2 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476528128U == 1476533248U) && (2 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476528128U == 1476533248U) && (2 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476528128U == 1476533248U) && (2 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476528128U == 1476526080U) && (2 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476528128U == 1476529152U) && (2 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476528128U == 1476528128U) && (2 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476528128U == 1476534272U) && (2 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476528128U == 1476534272U) && (2 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476528128U == 1476534272U) && (2 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476528128U == 1476534272U) && (2 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476528128U == 1476528128U) && (2 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476528128U == 1476527104U) && (2 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476528128U == 1476529152U) && (2 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476528128U == 1476528128U) && (2 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476528128U == 1476528128U) && (2 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476528128U == 1476527104U) && (2 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476528128U == 1476527104U) && (2 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476528128U == 1476528128U) && (2 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476528128U == 1476528128U) && (2 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476528128U == 1476528128U) && (2 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476528128U == 1476526080U) && (2 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476528128U == 1476526080U) && (2 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476528128U == 1476526080U) && (2 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476528128U == 1476534272U) && (2 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476528128U == 1476535296U) && (2 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476528128U == 1476530176U) && (2 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476528128U == 1476532224U) && (2 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476528128U == 1476529152U) && (2 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476528128U == 1476527104U) && (2 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476528128U == 1476526080U) && (2 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476528128U == 1476527104U) && (2 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476528128U == 1476527104U) && (2 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476528128U == 1476527104U) && (2 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476528128U == 1476533248U) && (2 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476528128U == 3735928559U) && (2 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476528128U == 3735928559U) && (2 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476528128U == 3735928559U) && (2 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476528128U == 3735928559U) && (2 == 3)) ? 1 : 0) ? 100 : 0), A6 = ((((1476528128U == 1476527104U) && (0 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476528128U == 1476526080U) && (0 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476528128U == 1476526080U) && (0 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476528128U == 1476526080U) && (0 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476528128U == 1476535296U) && (0 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476528128U == 1476526080U) && (0 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476528128U == 1476529152U) && (0 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476528128U == 1476527104U) && (0 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476528128U == 1476527104U) && (0 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476528128U == 1476527104U) && (0 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476528128U == 1476536320U) && (0 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476528128U == 1476535296U) && (0 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476528128U == 1476535296U) && (0 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476528128U == 1476533248U) && (0 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476528128U == 1476532224U) && (0 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476528128U == 1476528128U) && (0 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476528128U == 1476533248U) && (0 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476528128U == 1476534272U) && (0 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476528128U == 1476529152U) && (0 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476528128U == 1476529152U) && (0 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476528128U == 1476527104U) && (0 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476528128U == 1476533248U) && (0 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476528128U == 1476535296U) && (0 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476528128U == 1476532224U) && (0 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476528128U == 1476532224U) && (0 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476528128U == 1476535296U) && (0 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476528128U == 1476535296U) && (0 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476528128U == 1476535296U) && (0 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476528128U == 1476535296U) && (0 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476528128U == 1476535296U) && (0 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476528128U == 1476536320U) && (0 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476528128U == 1476535296U) && (0 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476528128U == 1476536320U) && (0 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476528128U == 1476535296U) && (0 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476528128U == 1476536320U) && (0 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476528128U == 1476535296U) && (0 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476528128U == 1476536320U) && (0 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476528128U == 1476535296U) && (0 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476528128U == 1476535296U) && (0 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476528128U == 1476534272U) && (0 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476528128U == 1476530176U) && (0 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476528128U == 1476536320U) && (0 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476528128U == 1476534272U) && (0 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476528128U == 1476534272U) && (0 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476528128U == 1476532224U) && (0 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476528128U == 1476534272U) && (0 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476528128U == 1476533248U) && (0 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476528128U == 1476527104U) && (0 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476528128U == 1476536320U) && (0 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476528128U == 1476530176U) && (0 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476528128U == 1476534272U) && (0 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476528128U == 1476530176U) && (0 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476528128U == 1476536320U) && (0 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476528128U == 1476532224U) && (0 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476528128U == 1476534272U) && (0 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476528128U == 1476533248U) && (0 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476528128U == 1476526080U) && (0 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476528128U == 1476535296U) && (0 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476528128U == 1476534272U) && (0 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476528128U == 1476534272U) && (0 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476528128U == 1476534272U) && (0 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476528128U == 1476533248U) && (0 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476528128U == 1476532224U) && (0 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476528128U == 1476533248U) && (0 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476528128U == 1476533248U) && (0 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476528128U == 1476533248U) && (0 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476528128U == 1476526080U) && (0 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476528128U == 1476529152U) && (0 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476528128U == 1476528128U) && (0 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476528128U == 1476534272U) && (0 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476528128U == 1476534272U) && (0 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476528128U == 1476534272U) && (0 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476528128U == 1476534272U) && (0 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476528128U == 1476528128U) && (0 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476528128U == 1476527104U) && (0 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476528128U == 1476529152U) && (0 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476528128U == 1476528128U) && (0 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476528128U == 1476528128U) && (0 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476528128U == 1476527104U) && (0 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476528128U == 1476527104U) && (0 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476528128U == 1476528128U) && (0 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476528128U == 1476528128U) && (0 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476528128U == 1476528128U) && (0 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476528128U == 1476526080U) && (0 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476528128U == 1476526080U) && (0 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476528128U == 1476526080U) && (0 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476528128U == 1476534272U) && (0 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476528128U == 1476535296U) && (0 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476528128U == 1476530176U) && (0 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476528128U == 1476532224U) && (0 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476528128U == 1476529152U) && (0 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476528128U == 1476527104U) && (0 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476528128U == 1476526080U) && (0 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476528128U == 1476527104U) && (0 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476528128U == 1476527104U) && (0 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476528128U == 1476527104U) && (0 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476528128U == 1476533248U) && (0 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476528128U == 3735928559U) && (0 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476528128U == 3735928559U) && (0 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476528128U == 3735928559U) && (0 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476528128U == 3735928559U) && (0 == 3)) ? 1 : 0) ? 100 : 0), A7 = ((((1476526080U == 1476527104U) && (0 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476526080U == 1476526080U) && (0 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476526080U == 1476526080U) && (0 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476526080U == 1476526080U) && (0 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476526080U == 1476535296U) && (0 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476526080U == 1476526080U) && (0 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476526080U == 1476529152U) && (0 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476526080U == 1476527104U) && (0 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476526080U == 1476527104U) && (0 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476526080U == 1476527104U) && (0 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476526080U == 1476536320U) && (0 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476526080U == 1476535296U) && (0 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476526080U == 1476535296U) && (0 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476526080U == 1476533248U) && (0 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476526080U == 1476532224U) && (0 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476526080U == 1476528128U) && (0 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476526080U == 1476533248U) && (0 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476526080U == 1476534272U) && (0 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476526080U == 1476529152U) && (0 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476526080U == 1476529152U) && (0 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476526080U == 1476527104U) && (0 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476526080U == 1476533248U) && (0 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476526080U == 1476535296U) && (0 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476526080U == 1476532224U) && (0 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476526080U == 1476532224U) && (0 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476526080U == 1476535296U) && (0 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476526080U == 1476535296U) && (0 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476526080U == 1476535296U) && (0 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476526080U == 1476535296U) && (0 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476526080U == 1476535296U) && (0 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476526080U == 1476536320U) && (0 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476526080U == 1476535296U) && (0 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476526080U == 1476536320U) && (0 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476526080U == 1476535296U) && (0 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476526080U == 1476536320U) && (0 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476526080U == 1476535296U) && (0 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476526080U == 1476536320U) && (0 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476526080U == 1476535296U) && (0 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476526080U == 1476535296U) && (0 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476526080U == 1476534272U) && (0 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476526080U == 1476530176U) && (0 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476526080U == 1476536320U) && (0 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476526080U == 1476534272U) && (0 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476526080U == 1476534272U) && (0 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476526080U == 1476532224U) && (0 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476526080U == 1476534272U) && (0 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476526080U == 1476533248U) && (0 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476526080U == 1476527104U) && (0 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476526080U == 1476536320U) && (0 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476526080U == 1476530176U) && (0 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476526080U == 1476534272U) && (0 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476526080U == 1476530176U) && (0 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476526080U == 1476536320U) && (0 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476526080U == 1476532224U) && (0 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476526080U == 1476534272U) && (0 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476526080U == 1476533248U) && (0 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476526080U == 1476526080U) && (0 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476526080U == 1476535296U) && (0 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476526080U == 1476534272U) && (0 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476526080U == 1476534272U) && (0 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476526080U == 1476534272U) && (0 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476526080U == 1476533248U) && (0 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476526080U == 1476532224U) && (0 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476526080U == 1476533248U) && (0 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476526080U == 1476533248U) && (0 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476526080U == 1476533248U) && (0 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476526080U == 1476526080U) && (0 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476526080U == 1476529152U) && (0 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476526080U == 1476528128U) && (0 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476526080U == 1476534272U) && (0 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476526080U == 1476534272U) && (0 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476526080U == 1476534272U) && (0 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476526080U == 1476534272U) && (0 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476526080U == 1476528128U) && (0 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476526080U == 1476527104U) && (0 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476526080U == 1476529152U) && (0 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476526080U == 1476528128U) && (0 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476526080U == 1476528128U) && (0 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476526080U == 1476527104U) && (0 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476526080U == 1476527104U) && (0 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476526080U == 1476528128U) && (0 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476526080U == 1476528128U) && (0 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476526080U == 1476528128U) && (0 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476526080U == 1476526080U) && (0 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476526080U == 1476526080U) && (0 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476526080U == 1476526080U) && (0 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476526080U == 1476534272U) && (0 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476526080U == 1476535296U) && (0 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476526080U == 1476530176U) && (0 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476526080U == 1476532224U) && (0 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476526080U == 1476529152U) && (0 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476526080U == 1476527104U) && (0 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476526080U == 1476526080U) && (0 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476526080U == 1476527104U) && (0 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476526080U == 1476527104U) && (0 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476526080U == 1476527104U) && (0 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476526080U == 1476533248U) && (0 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476526080U == 3735928559U) && (0 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476526080U == 3735928559U) && (0 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476526080U == 3735928559U) && (0 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476526080U == 3735928559U) && (0 == 3)) ? 1 : 0) ? 100 : 0), A8 = ((((3735928559U == 1476527104U) && (0 == 7)) ? 1 : 0) ? 0 : 0) + ((((3735928559U == 1476526080U) && (0 == 9)) ? 1 : 0) ? 1 : 0) + ((((3735928559U == 1476526080U) && (0 == 3)) ? 1 : 0) ? 2 : 0) + ((((3735928559U == 1476526080U) && (0 == 2)) ? 1 : 0) ? 3 : 0) + ((((3735928559U == 1476535296U) && (0 == 8)) ? 1 : 0) ? 4 : 0) + ((((3735928559U == 1476526080U) && (0 == 7)) ? 1 : 0) ? 5 : 0) + ((((3735928559U == 1476529152U) && (0 == 13)) ? 1 : 0) ? 6 : 0) + ((((3735928559U == 1476527104U) && (0 == 4)) ? 1 : 0) ? 7 : 0) + ((((3735928559U == 1476527104U) && (0 == 8)) ? 1 : 0) ? 8 : 0) + ((((3735928559U == 1476527104U) && (0 == 9)) ? 1 : 0) ? 9 : 0) + ((((3735928559U == 1476536320U) && (0 == 1)) ? 1 : 0) ? 10 : 0) + ((((3735928559U == 1476535296U) && (0 == 10)) ? 1 : 0) ? 11 : 0) + ((((3735928559U == 1476535296U) && (0 == 11)) ? 1 : 0) ? 12 : 0) + ((((3735928559U == 1476533248U) && (0 == 6)) ? 1 : 0) ? 13 : 0) + ((((3735928559U == 1476532224U) && (0 == 14)) ? 1 : 0) ? 14 : 0) + ((((3735928559U == 1476528128U) && (0 == 7)) ? 1 : 0) ? 15 : 0) + ((((3735928559U == 1476533248U) && (0 == 13)) ? 1 : 0) ? 16 : 0) + ((((3735928559U == 1476534272U) && (0 == 9)) ? 1 : 0) ? 17 : 0) + ((((3735928559U == 1476529152U) && (0 == 5)) ? 1 : 0) ? 18 : 0) + ((((3735928559U == 1476529152U) && (0 == 6)) ? 1 : 0) ? 19 : 0) + ((((3735928559U == 1476527104U) && (0 == 11)) ? 1 : 0) ? 20 : 0) + ((((3735928559U == 1476533248U) && (0 == 4)) ? 1 : 0) ? 21 : 0) + ((((3735928559U == 1476535296U) && (0 == 12)) ? 1 : 0) ? 22 : 0) + ((((3735928559U == 1476532224U) && (0 == 13)) ? 1 : 0) ? 23 : 0) + ((((3735928559U == 1476532224U) && (0 == 12)) ? 1 : 0) ? 24 : 0) + ((((3735928559U == 1476535296U) && (0 == 0)) ? 1 : 0) ? 25 : 0) + ((((3735928559U == 1476535296U) && (0 == 14)) ? 1 : 0) ? 26 : 0) + ((((3735928559U == 1476535296U) && (0 == 1)) ? 1 : 0) ? 27 : 0) + ((((3735928559U == 1476535296U) && (0 == 15)) ? 1 : 0) ? 28 : 0) + ((((3735928559U == 1476535296U) && (0 == 2)) ? 1 : 0) ? 29 : 0) + ((((3735928559U == 1476536320U) && (0 == 3)) ? 1 : 0) ? 30 : 0) + ((((3735928559U == 1476535296U) && (0 == 3)) ? 1 : 0) ? 31 : 0) + ((((3735928559U == 1476536320U) && (0 == 4)) ? 1 : 0) ? 32 : 0) + ((((3735928559U == 1476535296U) && (0 == 4)) ? 1 : 0) ? 33 : 0) + ((((3735928559U == 1476536320U) && (0 == 5)) ? 1 : 0) ? 34 : 0) + ((((3735928559U == 1476535296U) && (0 == 5)) ? 1 : 0) ? 35 : 0) + ((((3735928559U == 1476536320U) && (0 == 6)) ? 1 : 0) ? 36 : 0) + ((((3735928559U == 1476535296U) && (0 == 6)) ? 1 : 0) ? 37 : 0) + ((((3735928559U == 1476535296U) && (0 == 7)) ? 1 : 0) ? 38 : 0) + ((((3735928559U == 1476534272U) && (0 == 14)) ? 1 : 0) ? 39 : 0) + ((((3735928559U == 1476530176U) && (0 == 6)) ? 1 : 0) ? 40 : 0) + ((((3735928559U == 1476536320U) && (0 == 7)) ? 1 : 0) ? 41 : 0) + ((((3735928559U == 1476534272U) && (0 == 15)) ? 1 : 0) ? 42 : 0) + ((((3735928559U == 1476534272U) && (0 == 10)) ? 1 : 0) ? 43 : 0) + ((((3735928559U == 1476532224U) && (0 == 10)) ? 1 : 0) ? 44 : 0) + ((((3735928559U == 1476534272U) && (0 == 13)) ? 1 : 0) ? 45 : 0) + ((((3735928559U == 1476533248U) && (0 == 15)) ? 1 : 0) ? 46 : 0) + ((((3735928559U == 1476527104U) && (0 == 2)) ? 1 : 0) ? 47 : 0) + ((((3735928559U == 1476536320U) && (0 == 0)) ? 1 : 0) ? 48 : 0) + ((((3735928559U == 1476530176U) && (0 == 4)) ? 1 : 0) ? 49 : 0) + ((((3735928559U == 1476534272U) && (0 == 11)) ? 1 : 0) ? 50 : 0) + ((((3735928559U == 1476530176U) && (0 == 5)) ? 1 : 0) ? 51 : 0) + ((((3735928559U == 1476536320U) && (0 == 2)) ? 1 : 0) ? 52 : 0) + ((((3735928559U == 1476532224U) && (0 == 7)) ? 1 : 0) ? 53 : 0) + ((((3735928559U == 1476534272U) && (0 == 5)) ? 1 : 0) ? 54 : 0) + ((((3735928559U == 1476533248U) && (0 == 8)) ? 1 : 0) ? 55 : 0) + ((((3735928559U == 1476526080U) && (0 == 6)) ? 1 : 0) ? 56 : 0) + ((((3735928559U == 1476535296U) && (0 == 9)) ? 1 : 0) ? 57 : 0) + ((((3735928559U == 1476534272U) && (0 == 7)) ? 1 : 0) ? 58 : 0) + ((((3735928559U == 1476534272U) && (0 == 6)) ? 1 : 0) ? 59 : 0) + ((((3735928559U == 1476534272U) && (0 == 4)) ? 1 : 0) ? 60 : 0) + ((((3735928559U == 1476533248U) && (0 == 14)) ? 1 : 0) ? 61 : 0) + ((((3735928559U == 1476532224U) && (0 == 11)) ? 1 : 0) ? 62 : 0) + ((((3735928559U == 1476533248U) && (0 == 11)) ? 1 : 0) ? 63 : 0) + ((((3735928559U == 1476533248U) && (0 == 10)) ? 1 : 0) ? 64 : 0) + ((((3735928559U == 1476533248U) && (0 == 9)) ? 1 : 0) ? 65 : 0) + ((((3735928559U == 1476526080U) && (0 == 1)) ? 1 : 0) ? 66 : 0) + ((((3735928559U == 1476529152U) && (0 == 4)) ? 1 : 0) ? 67 : 0) + ((((3735928559U == 1476528128U) && (0 == 6)) ? 1 : 0) ? 68 : 0) + ((((3735928559U == 1476534272U) && (0 == 0)) ? 1 : 0) ? 69 : 0) + ((((3735928559U == 1476534272U) && (0 == 1)) ? 1 : 0) ? 70 : 0) + ((((3735928559U == 1476534272U) && (0 == 2)) ? 1 : 0) ? 71 : 0) + ((((3735928559U == 1476534272U) && (0 == 3)) ? 1 : 0) ? 72 : 0) + ((((3735928559U == 1476528128U) && (0 == 1)) ? 1 : 0) ? 73 : 0) + ((((3735928559U == 1476527104U) && (0 == 12)) ? 1 : 0) ? 74 : 0) + ((((3735928559U == 1476529152U) && (0 == 3)) ? 1 : 0) ? 75 : 0) + ((((3735928559U == 1476528128U) && (0 == 4)) ? 1 : 0) ? 76 : 0) + ((((3735928559U == 1476528128U) && (0 == 5)) ? 1 : 0) ? 77 : 0) + ((((3735928559U == 1476527104U) && (0 == 0)) ? 1 : 0) ? 78 : 0) + ((((3735928559U == 1476527104U) && (0 == 1)) ? 1 : 0) ? 79 : 0) + ((((3735928559U == 1476528128U) && (0 == 3)) ? 1 : 0) ? 80 : 0) + ((((3735928559U == 1476528128U) && (0 == 2)) ? 1 : 0) ? 81 : 0) + ((((3735928559U == 1476528128U) && (0 == 0)) ? 1 : 0) ? 82 : 0) + ((((3735928559U == 1476526080U) && (0 == 0)) ? 1 : 0) ? 83 : 0) + ((((3735928559U == 1476526080U) && (0 == 4)) ? 1 : 0) ? 84 : 0) + ((((3735928559U == 1476526080U) && (0 == 5)) ? 1 : 0) ? 85 : 0) + ((((3735928559U == 1476534272U) && (0 == 12)) ? 1 : 0) ? 86 : 0) + ((((3735928559U == 1476535296U) && (0 == 13)) ? 1 : 0) ? 87 : 0) + ((((3735928559U == 1476530176U) && (0 == 3)) ? 1 : 0) ? 88 : 0) + ((((3735928559U == 1476532224U) && (0 == 9)) ? 1 : 0) ? 89 : 0) + ((((3735928559U == 1476529152U) && (0 == 7)) ? 1 : 0) ? 90 : 0) + ((((3735928559U == 1476527104U) && (0 == 3)) ? 1 : 0) ? 91 : 0) + ((((3735928559U == 1476526080U) && (0 == 15)) ? 1 : 0) ? 92 : 0) + ((((3735928559U == 1476527104U) && (0 == 5)) ? 1 : 0) ? 93 : 0) + ((((3735928559U == 1476527104U) && (0 == 13)) ? 1 : 0) ? 94 : 0) + ((((3735928559U == 1476527104U) && (0 == 6)) ? 1 : 0) ? 95 : 0) + ((((3735928559U == 1476533248U) && (0 == 12)) ? 1 : 0) ? 96 : 0) + ((((3735928559U == 3735928559U) && (0 == 0)) ? 1 : 0) ? 97 : 0) + ((((3735928559U == 3735928559U) && (0 == 1)) ? 1 : 0) ? 98 : 0) + ((((3735928559U == 3735928559U) && (0 == 2)) ? 1 : 0) ? 99 : 0) + ((((3735928559U == 3735928559U) && (0 == 3)) ? 1 : 0) ? 100 : 0), A9 = ((((3735928559U == 1476527104U) && (1 == 7)) ? 1 : 0) ? 0 : 0) + ((((3735928559U == 1476526080U) && (1 == 9)) ? 1 : 0) ? 1 : 0) + ((((3735928559U == 1476526080U) && (1 == 3)) ? 1 : 0) ? 2 : 0) + ((((3735928559U == 1476526080U) && (1 == 2)) ? 1 : 0) ? 3 : 0) + ((((3735928559U == 1476535296U) && (1 == 8)) ? 1 : 0) ? 4 : 0) + ((((3735928559U == 1476526080U) && (1 == 7)) ? 1 : 0) ? 5 : 0) + ((((3735928559U == 1476529152U) && (1 == 13)) ? 1 : 0) ? 6 : 0) + ((((3735928559U == 1476527104U) && (1 == 4)) ? 1 : 0) ? 7 : 0) + ((((3735928559U == 1476527104U) && (1 == 8)) ? 1 : 0) ? 8 : 0) + ((((3735928559U == 1476527104U) && (1 == 9)) ? 1 : 0) ? 9 : 0) + ((((3735928559U == 1476536320U) && (1 == 1)) ? 1 : 0) ? 10 : 0) + ((((3735928559U == 1476535296U) && (1 == 10)) ? 1 : 0) ? 11 : 0) + ((((3735928559U == 1476535296U) && (1 == 11)) ? 1 : 0) ? 12 : 0) + ((((3735928559U == 1476533248U) && (1 == 6)) ? 1 : 0) ? 13 : 0) + ((((3735928559U == 1476532224U) && (1 == 14)) ? 1 : 0) ? 14 : 0) + ((((3735928559U == 1476528128U) && (1 == 7)) ? 1 : 0) ? 15 : 0) + ((((3735928559U == 1476533248U) && (1 == 13)) ? 1 : 0) ? 16 : 0) + ((((3735928559U == 1476534272U) && (1 == 9)) ? 1 : 0) ? 17 : 0) + ((((3735928559U == 1476529152U) && (1 == 5)) ? 1 : 0) ? 18 : 0) + ((((3735928559U == 1476529152U) && (1 == 6)) ? 1 : 0) ? 19 : 0) + ((((3735928559U == 1476527104U) && (1 == 11)) ? 1 : 0) ? 20 : 0) + ((((3735928559U == 1476533248U) && (1 == 4)) ? 1 : 0) ? 21 : 0) + ((((3735928559U == 1476535296U) && (1 == 12)) ? 1 : 0) ? 22 : 0) + ((((3735928559U == 1476532224U) && (1 == 13)) ? 1 : 0) ? 23 : 0) + ((((3735928559U == 1476532224U) && (1 == 12)) ? 1 : 0) ? 24 : 0) + ((((3735928559U == 1476535296U) && (1 == 0)) ? 1 : 0) ? 25 : 0) + ((((3735928559U == 1476535296U) && (1 == 14)) ? 1 : 0) ? 26 : 0) + ((((3735928559U == 1476535296U) && (1 == 1)) ? 1 : 0) ? 27 : 0) + ((((3735928559U == 1476535296U) && (1 == 15)) ? 1 : 0) ? 28 : 0) + ((((3735928559U == 1476535296U) && (1 == 2)) ? 1 : 0) ? 29 : 0) + ((((3735928559U == 1476536320U) && (1 == 3)) ? 1 : 0) ? 30 : 0) + ((((3735928559U == 1476535296U) && (1 == 3)) ? 1 : 0) ? 31 : 0) + ((((3735928559U == 1476536320U) && (1 == 4)) ? 1 : 0) ? 32 : 0) + ((((3735928559U == 1476535296U) && (1 == 4)) ? 1 : 0) ? 33 : 0) + ((((3735928559U == 1476536320U) && (1 == 5)) ? 1 : 0) ? 34 : 0) + ((((3735928559U == 1476535296U) && (1 == 5)) ? 1 : 0) ? 35 : 0) + ((((3735928559U == 1476536320U) && (1 == 6)) ? 1 : 0) ? 36 : 0) + ((((3735928559U == 1476535296U) && (1 == 6)) ? 1 : 0) ? 37 : 0) + ((((3735928559U == 1476535296U) && (1 == 7)) ? 1 : 0) ? 38 : 0) + ((((3735928559U == 1476534272U) && (1 == 14)) ? 1 : 0) ? 39 : 0) + ((((3735928559U == 1476530176U) && (1 == 6)) ? 1 : 0) ? 40 : 0) + ((((3735928559U == 1476536320U) && (1 == 7)) ? 1 : 0) ? 41 : 0) + ((((3735928559U == 1476534272U) && (1 == 15)) ? 1 : 0) ? 42 : 0) + ((((3735928559U == 1476534272U) && (1 == 10)) ? 1 : 0) ? 43 : 0) + ((((3735928559U == 1476532224U) && (1 == 10)) ? 1 : 0) ? 44 : 0) + ((((3735928559U == 1476534272U) && (1 == 13)) ? 1 : 0) ? 45 : 0) + ((((3735928559U == 1476533248U) && (1 == 15)) ? 1 : 0) ? 46 : 0) + ((((3735928559U == 1476527104U) && (1 == 2)) ? 1 : 0) ? 47 : 0) + ((((3735928559U == 1476536320U) && (1 == 0)) ? 1 : 0) ? 48 : 0) + ((((3735928559U == 1476530176U) && (1 == 4)) ? 1 : 0) ? 49 : 0) + ((((3735928559U == 1476534272U) && (1 == 11)) ? 1 : 0) ? 50 : 0) + ((((3735928559U == 1476530176U) && (1 == 5)) ? 1 : 0) ? 51 : 0) + ((((3735928559U == 1476536320U) && (1 == 2)) ? 1 : 0) ? 52 : 0) + ((((3735928559U == 1476532224U) && (1 == 7)) ? 1 : 0) ? 53 : 0) + ((((3735928559U == 1476534272U) && (1 == 5)) ? 1 : 0) ? 54 : 0) + ((((3735928559U == 1476533248U) && (1 == 8)) ? 1 : 0) ? 55 : 0) + ((((3735928559U == 1476526080U) && (1 == 6)) ? 1 : 0) ? 56 : 0) + ((((3735928559U == 1476535296U) && (1 == 9)) ? 1 : 0) ? 57 : 0) + ((((3735928559U == 1476534272U) && (1 == 7)) ? 1 : 0) ? 58 : 0) + ((((3735928559U == 1476534272U) && (1 == 6)) ? 1 : 0) ? 59 : 0) + ((((3735928559U == 1476534272U) && (1 == 4)) ? 1 : 0) ? 60 : 0) + ((((3735928559U == 1476533248U) && (1 == 14)) ? 1 : 0) ? 61 : 0) + ((((3735928559U == 1476532224U) && (1 == 11)) ? 1 : 0) ? 62 : 0) + ((((3735928559U == 1476533248U) && (1 == 11)) ? 1 : 0) ? 63 : 0) + ((((3735928559U == 1476533248U) && (1 == 10)) ? 1 : 0) ? 64 : 0) + ((((3735928559U == 1476533248U) && (1 == 9)) ? 1 : 0) ? 65 : 0) + ((((3735928559U == 1476526080U) && (1 == 1)) ? 1 : 0) ? 66 : 0) + ((((3735928559U == 1476529152U) && (1 == 4)) ? 1 : 0) ? 67 : 0) + ((((3735928559U == 1476528128U) && (1 == 6)) ? 1 : 0) ? 68 : 0) + ((((3735928559U == 1476534272U) && (1 == 0)) ? 1 : 0) ? 69 : 0) + ((((3735928559U == 1476534272U) && (1 == 1)) ? 1 : 0) ? 70 : 0) + ((((3735928559U == 1476534272U) && (1 == 2)) ? 1 : 0) ? 71 : 0) + ((((3735928559U == 1476534272U) && (1 == 3)) ? 1 : 0) ? 72 : 0) + ((((3735928559U == 1476528128U) && (1 == 1)) ? 1 : 0) ? 73 : 0) + ((((3735928559U == 1476527104U) && (1 == 12)) ? 1 : 0) ? 74 : 0) + ((((3735928559U == 1476529152U) && (1 == 3)) ? 1 : 0) ? 75 : 0) + ((((3735928559U == 1476528128U) && (1 == 4)) ? 1 : 0) ? 76 : 0) + ((((3735928559U == 1476528128U) && (1 == 5)) ? 1 : 0) ? 77 : 0) + ((((3735928559U == 1476527104U) && (1 == 0)) ? 1 : 0) ? 78 : 0) + ((((3735928559U == 1476527104U) && (1 == 1)) ? 1 : 0) ? 79 : 0) + ((((3735928559U == 1476528128U) && (1 == 3)) ? 1 : 0) ? 80 : 0) + ((((3735928559U == 1476528128U) && (1 == 2)) ? 1 : 0) ? 81 : 0) + ((((3735928559U == 1476528128U) && (1 == 0)) ? 1 : 0) ? 82 : 0) + ((((3735928559U == 1476526080U) && (1 == 0)) ? 1 : 0) ? 83 : 0) + ((((3735928559U == 1476526080U) && (1 == 4)) ? 1 : 0) ? 84 : 0) + ((((3735928559U == 1476526080U) && (1 == 5)) ? 1 : 0) ? 85 : 0) + ((((3735928559U == 1476534272U) && (1 == 12)) ? 1 : 0) ? 86 : 0) + ((((3735928559U == 1476535296U) && (1 == 13)) ? 1 : 0) ? 87 : 0) + ((((3735928559U == 1476530176U) && (1 == 3)) ? 1 : 0) ? 88 : 0) + ((((3735928559U == 1476532224U) && (1 == 9)) ? 1 : 0) ? 89 : 0) + ((((3735928559U == 1476529152U) && (1 == 7)) ? 1 : 0) ? 90 : 0) + ((((3735928559U == 1476527104U) && (1 == 3)) ? 1 : 0) ? 91 : 0) + ((((3735928559U == 1476526080U) && (1 == 15)) ? 1 : 0) ? 92 : 0) + ((((3735928559U == 1476527104U) && (1 == 5)) ? 1 : 0) ? 93 : 0) + ((((3735928559U == 1476527104U) && (1 == 13)) ? 1 : 0) ? 94 : 0) + ((((3735928559U == 1476527104U) && (1 == 6)) ? 1 : 0) ? 95 : 0) + ((((3735928559U == 1476533248U) && (1 == 12)) ? 1 : 0) ? 96 : 0) + ((((3735928559U == 3735928559U) && (1 == 0)) ? 1 : 0) ? 97 : 0) + ((((3735928559U == 3735928559U) && (1 == 1)) ? 1 : 0) ? 98 : 0) + ((((3735928559U == 3735928559U) && (1 == 2)) ? 1 : 0) ? 99 : 0) + ((((3735928559U == 3735928559U) && (1 == 3)) ? 1 : 0) ? 100 : 0), A10 = ((((3735928559U == 1476527104U) && (2 == 7)) ? 1 : 0) ? 0 : 0) + ((((3735928559U == 1476526080U) && (2 == 9)) ? 1 : 0) ? 1 : 0) + ((((3735928559U == 1476526080U) && (2 == 3)) ? 1 : 0) ? 2 : 0) + ((((3735928559U == 1476526080U) && (2 == 2)) ? 1 : 0) ? 3 : 0) + ((((3735928559U == 1476535296U) && (2 == 8)) ? 1 : 0) ? 4 : 0) + ((((3735928559U == 1476526080U) && (2 == 7)) ? 1 : 0) ? 5 : 0) + ((((3735928559U == 1476529152U) && (2 == 13)) ? 1 : 0) ? 6 : 0) + ((((3735928559U == 1476527104U) && (2 == 4)) ? 1 : 0) ? 7 : 0) + ((((3735928559U == 1476527104U) && (2 == 8)) ? 1 : 0) ? 8 : 0) + ((((3735928559U == 1476527104U) && (2 == 9)) ? 1 : 0) ? 9 : 0) + ((((3735928559U == 1476536320U) && (2 == 1)) ? 1 : 0) ? 10 : 0) + ((((3735928559U == 1476535296U) && (2 == 10)) ? 1 : 0) ? 11 : 0) + ((((3735928559U == 1476535296U) && (2 == 11)) ? 1 : 0) ? 12 : 0) + ((((3735928559U == 1476533248U) && (2 == 6)) ? 1 : 0) ? 13 : 0) + ((((3735928559U == 1476532224U) && (2 == 14)) ? 1 : 0) ? 14 : 0) + ((((3735928559U == 1476528128U) && (2 == 7)) ? 1 : 0) ? 15 : 0) + ((((3735928559U == 1476533248U) && (2 == 13)) ? 1 : 0) ? 16 : 0) + ((((3735928559U == 1476534272U) && (2 == 9)) ? 1 : 0) ? 17 : 0) + ((((3735928559U == 1476529152U) && (2 == 5)) ? 1 : 0) ? 18 : 0) + ((((3735928559U == 1476529152U) && (2 == 6)) ? 1 : 0) ? 19 : 0) + ((((3735928559U == 1476527104U) && (2 == 11)) ? 1 : 0) ? 20 : 0) + ((((3735928559U == 1476533248U) && (2 == 4)) ? 1 : 0) ? 21 : 0) + ((((3735928559U == 1476535296U) && (2 == 12)) ? 1 : 0) ? 22 : 0) + ((((3735928559U == 1476532224U) && (2 == 13)) ? 1 : 0) ? 23 : 0) + ((((3735928559U == 1476532224U) && (2 == 12)) ? 1 : 0) ? 24 : 0) + ((((3735928559U == 1476535296U) && (2 == 0)) ? 1 : 0) ? 25 : 0) + ((((3735928559U == 1476535296U) && (2 == 14)) ? 1 : 0) ? 26 : 0) + ((((3735928559U == 1476535296U) && (2 == 1)) ? 1 : 0) ? 27 : 0) + ((((3735928559U == 1476535296U) && (2 == 15)) ? 1 : 0) ? 28 : 0) + ((((3735928559U == 1476535296U) && (2 == 2)) ? 1 : 0) ? 29 : 0) + ((((3735928559U == 1476536320U) && (2 == 3)) ? 1 : 0) ? 30 : 0) + ((((3735928559U == 1476535296U) && (2 == 3)) ? 1 : 0) ? 31 : 0) + ((((3735928559U == 1476536320U) && (2 == 4)) ? 1 : 0) ? 32 : 0) + ((((3735928559U == 1476535296U) && (2 == 4)) ? 1 : 0) ? 33 : 0) + ((((3735928559U == 1476536320U) && (2 == 5)) ? 1 : 0) ? 34 : 0) + ((((3735928559U == 1476535296U) && (2 == 5)) ? 1 : 0) ? 35 : 0) + ((((3735928559U == 1476536320U) && (2 == 6)) ? 1 : 0) ? 36 : 0) + ((((3735928559U == 1476535296U) && (2 == 6)) ? 1 : 0) ? 37 : 0) + ((((3735928559U == 1476535296U) && (2 == 7)) ? 1 : 0) ? 38 : 0) + ((((3735928559U == 1476534272U) && (2 == 14)) ? 1 : 0) ? 39 : 0) + ((((3735928559U == 1476530176U) && (2 == 6)) ? 1 : 0) ? 40 : 0) + ((((3735928559U == 1476536320U) && (2 == 7)) ? 1 : 0) ? 41 : 0) + ((((3735928559U == 1476534272U) && (2 == 15)) ? 1 : 0) ? 42 : 0) + ((((3735928559U == 1476534272U) && (2 == 10)) ? 1 : 0) ? 43 : 0) + ((((3735928559U == 1476532224U) && (2 == 10)) ? 1 : 0) ? 44 : 0) + ((((3735928559U == 1476534272U) && (2 == 13)) ? 1 : 0) ? 45 : 0) + ((((3735928559U == 1476533248U) && (2 == 15)) ? 1 : 0) ? 46 : 0) + ((((3735928559U == 1476527104U) && (2 == 2)) ? 1 : 0) ? 47 : 0) + ((((3735928559U == 1476536320U) && (2 == 0)) ? 1 : 0) ? 48 : 0) + ((((3735928559U == 1476530176U) && (2 == 4)) ? 1 : 0) ? 49 : 0) + ((((3735928559U == 1476534272U) && (2 == 11)) ? 1 : 0) ? 50 : 0) + ((((3735928559U == 1476530176U) && (2 == 5)) ? 1 : 0) ? 51 : 0) + ((((3735928559U == 1476536320U) && (2 == 2)) ? 1 : 0) ? 52 : 0) + ((((3735928559U == 1476532224U) && (2 == 7)) ? 1 : 0) ? 53 : 0) + ((((3735928559U == 1476534272U) && (2 == 5)) ? 1 : 0) ? 54 : 0) + ((((3735928559U == 1476533248U) && (2 == 8)) ? 1 : 0) ? 55 : 0) + ((((3735928559U == 1476526080U) && (2 == 6)) ? 1 : 0) ? 56 : 0) + ((((3735928559U == 1476535296U) && (2 == 9)) ? 1 : 0) ? 57 : 0) + ((((3735928559U == 1476534272U) && (2 == 7)) ? 1 : 0) ? 58 : 0) + ((((3735928559U == 1476534272U) && (2 == 6)) ? 1 : 0) ? 59 : 0) + ((((3735928559U == 1476534272U) && (2 == 4)) ? 1 : 0) ? 60 : 0) + ((((3735928559U == 1476533248U) && (2 == 14)) ? 1 : 0) ? 61 : 0) + ((((3735928559U == 1476532224U) && (2 == 11)) ? 1 : 0) ? 62 : 0) + ((((3735928559U == 1476533248U) && (2 == 11)) ? 1 : 0) ? 63 : 0) + ((((3735928559U == 1476533248U) && (2 == 10)) ? 1 : 0) ? 64 : 0) + ((((3735928559U == 1476533248U) && (2 == 9)) ? 1 : 0) ? 65 : 0) + ((((3735928559U == 1476526080U) && (2 == 1)) ? 1 : 0) ? 66 : 0) + ((((3735928559U == 1476529152U) && (2 == 4)) ? 1 : 0) ? 67 : 0) + ((((3735928559U == 1476528128U) && (2 == 6)) ? 1 : 0) ? 68 : 0) + ((((3735928559U == 1476534272U) && (2 == 0)) ? 1 : 0) ? 69 : 0) + ((((3735928559U == 1476534272U) && (2 == 1)) ? 1 : 0) ? 70 : 0) + ((((3735928559U == 1476534272U) && (2 == 2)) ? 1 : 0) ? 71 : 0) + ((((3735928559U == 1476534272U) && (2 == 3)) ? 1 : 0) ? 72 : 0) + ((((3735928559U == 1476528128U) && (2 == 1)) ? 1 : 0) ? 73 : 0) + ((((3735928559U == 1476527104U) && (2 == 12)) ? 1 : 0) ? 74 : 0) + ((((3735928559U == 1476529152U) && (2 == 3)) ? 1 : 0) ? 75 : 0) + ((((3735928559U == 1476528128U) && (2 == 4)) ? 1 : 0) ? 76 : 0) + ((((3735928559U == 1476528128U) && (2 == 5)) ? 1 : 0) ? 77 : 0) + ((((3735928559U == 1476527104U) && (2 == 0)) ? 1 : 0) ? 78 : 0) + ((((3735928559U == 1476527104U) && (2 == 1)) ? 1 : 0) ? 79 : 0) + ((((3735928559U == 1476528128U) && (2 == 3)) ? 1 : 0) ? 80 : 0) + ((((3735928559U == 1476528128U) && (2 == 2)) ? 1 : 0) ? 81 : 0) + ((((3735928559U == 1476528128U) && (2 == 0)) ? 1 : 0) ? 82 : 0) + ((((3735928559U == 1476526080U) && (2 == 0)) ? 1 : 0) ? 83 : 0) + ((((3735928559U == 1476526080U) && (2 == 4)) ? 1 : 0) ? 84 : 0) + ((((3735928559U == 1476526080U) && (2 == 5)) ? 1 : 0) ? 85 : 0) + ((((3735928559U == 1476534272U) && (2 == 12)) ? 1 : 0) ? 86 : 0) + ((((3735928559U == 1476535296U) && (2 == 13)) ? 1 : 0) ? 87 : 0) + ((((3735928559U == 1476530176U) && (2 == 3)) ? 1 : 0) ? 88 : 0) + ((((3735928559U == 1476532224U) && (2 == 9)) ? 1 : 0) ? 89 : 0) + ((((3735928559U == 1476529152U) && (2 == 7)) ? 1 : 0) ? 90 : 0) + ((((3735928559U == 1476527104U) && (2 == 3)) ? 1 : 0) ? 91 : 0) + ((((3735928559U == 1476526080U) && (2 == 15)) ? 1 : 0) ? 92 : 0) + ((((3735928559U == 1476527104U) && (2 == 5)) ? 1 : 0) ? 93 : 0) + ((((3735928559U == 1476527104U) && (2 == 13)) ? 1 : 0) ? 94 : 0) + ((((3735928559U == 1476527104U) && (2 == 6)) ? 1 : 0) ? 95 : 0) + ((((3735928559U == 1476533248U) && (2 == 12)) ? 1 : 0) ? 96 : 0) + ((((3735928559U == 3735928559U) && (2 == 0)) ? 1 : 0) ? 97 : 0) + ((((3735928559U == 3735928559U) && (2 == 1)) ? 1 : 0) ? 98 : 0) + ((((3735928559U == 3735928559U) && (2 == 2)) ? 1 : 0) ? 99 : 0) + ((((3735928559U == 3735928559U) && (2 == 3)) ? 1 : 0) ? 100 : 0), A11 = ((((3735928559U == 1476527104U) && (3 == 7)) ? 1 : 0) ? 0 : 0) + ((((3735928559U == 1476526080U) && (3 == 9)) ? 1 : 0) ? 1 : 0) + ((((3735928559U == 1476526080U) && (3 == 3)) ? 1 : 0) ? 2 : 0) + ((((3735928559U == 1476526080U) && (3 == 2)) ? 1 : 0) ? 3 : 0) + ((((3735928559U == 1476535296U) && (3 == 8)) ? 1 : 0) ? 4 : 0) + ((((3735928559U == 1476526080U) && (3 == 7)) ? 1 : 0) ? 5 : 0) + ((((3735928559U == 1476529152U) && (3 == 13)) ? 1 : 0) ? 6 : 0) + ((((3735928559U == 1476527104U) && (3 == 4)) ? 1 : 0) ? 7 : 0) + ((((3735928559U == 1476527104U) && (3 == 8)) ? 1 : 0) ? 8 : 0) + ((((3735928559U == 1476527104U) && (3 == 9)) ? 1 : 0) ? 9 : 0) + ((((3735928559U == 1476536320U) && (3 == 1)) ? 1 : 0) ? 10 : 0) + ((((3735928559U == 1476535296U) && (3 == 10)) ? 1 : 0) ? 11 : 0) + ((((3735928559U == 1476535296U) && (3 == 11)) ? 1 : 0) ? 12 : 0) + ((((3735928559U == 1476533248U) && (3 == 6)) ? 1 : 0) ? 13 : 0) + ((((3735928559U == 1476532224U) && (3 == 14)) ? 1 : 0) ? 14 : 0) + ((((3735928559U == 1476528128U) && (3 == 7)) ? 1 : 0) ? 15 : 0) + ((((3735928559U == 1476533248U) && (3 == 13)) ? 1 : 0) ? 16 : 0) + ((((3735928559U == 1476534272U) && (3 == 9)) ? 1 : 0) ? 17 : 0) + ((((3735928559U == 1476529152U) && (3 == 5)) ? 1 : 0) ? 18 : 0) + ((((3735928559U == 1476529152U) && (3 == 6)) ? 1 : 0) ? 19 : 0) + ((((3735928559U == 1476527104U) && (3 == 11)) ? 1 : 0) ? 20 : 0) + ((((3735928559U == 1476533248U) && (3 == 4)) ? 1 : 0) ? 21 : 0) + ((((3735928559U == 1476535296U) && (3 == 12)) ? 1 : 0) ? 22 : 0) + ((((3735928559U == 1476532224U) && (3 == 13)) ? 1 : 0) ? 23 : 0) + ((((3735928559U == 1476532224U) && (3 == 12)) ? 1 : 0) ? 24 : 0) + ((((3735928559U == 1476535296U) && (3 == 0)) ? 1 : 0) ? 25 : 0) + ((((3735928559U == 1476535296U) && (3 == 14)) ? 1 : 0) ? 26 : 0) + ((((3735928559U == 1476535296U) && (3 == 1)) ? 1 : 0) ? 27 : 0) + ((((3735928559U == 1476535296U) && (3 == 15)) ? 1 : 0) ? 28 : 0) + ((((3735928559U == 1476535296U) && (3 == 2)) ? 1 : 0) ? 29 : 0) + ((((3735928559U == 1476536320U) && (3 == 3)) ? 1 : 0) ? 30 : 0) + ((((3735928559U == 1476535296U) && (3 == 3)) ? 1 : 0) ? 31 : 0) + ((((3735928559U == 1476536320U) && (3 == 4)) ? 1 : 0) ? 32 : 0) + ((((3735928559U == 1476535296U) && (3 == 4)) ? 1 : 0) ? 33 : 0) + ((((3735928559U == 1476536320U) && (3 == 5)) ? 1 : 0) ? 34 : 0) + ((((3735928559U == 1476535296U) && (3 == 5)) ? 1 : 0) ? 35 : 0) + ((((3735928559U == 1476536320U) && (3 == 6)) ? 1 : 0) ? 36 : 0) + ((((3735928559U == 1476535296U) && (3 == 6)) ? 1 : 0) ? 37 : 0) + ((((3735928559U == 1476535296U) && (3 == 7)) ? 1 : 0) ? 38 : 0) + ((((3735928559U == 1476534272U) && (3 == 14)) ? 1 : 0) ? 39 : 0) + ((((3735928559U == 1476530176U) && (3 == 6)) ? 1 : 0) ? 40 : 0) + ((((3735928559U == 1476536320U) && (3 == 7)) ? 1 : 0) ? 41 : 0) + ((((3735928559U == 1476534272U) && (3 == 15)) ? 1 : 0) ? 42 : 0) + ((((3735928559U == 1476534272U) && (3 == 10)) ? 1 : 0) ? 43 : 0) + ((((3735928559U == 1476532224U) && (3 == 10)) ? 1 : 0) ? 44 : 0) + ((((3735928559U == 1476534272U) && (3 == 13)) ? 1 : 0) ? 45 : 0) + ((((3735928559U == 1476533248U) && (3 == 15)) ? 1 : 0) ? 46 : 0) + ((((3735928559U == 1476527104U) && (3 == 2)) ? 1 : 0) ? 47 : 0) + ((((3735928559U == 1476536320U) && (3 == 0)) ? 1 : 0) ? 48 : 0) + ((((3735928559U == 1476530176U) && (3 == 4)) ? 1 : 0) ? 49 : 0) + ((((3735928559U == 1476534272U) && (3 == 11)) ? 1 : 0) ? 50 : 0) + ((((3735928559U == 1476530176U) && (3 == 5)) ? 1 : 0) ? 51 : 0) + ((((3735928559U == 1476536320U) && (3 == 2)) ? 1 : 0) ? 52 : 0) + ((((3735928559U == 1476532224U) && (3 == 7)) ? 1 : 0) ? 53 : 0) + ((((3735928559U == 1476534272U) && (3 == 5)) ? 1 : 0) ? 54 : 0) + ((((3735928559U == 1476533248U) && (3 == 8)) ? 1 : 0) ? 55 : 0) + ((((3735928559U == 1476526080U) && (3 == 6)) ? 1 : 0) ? 56 : 0) + ((((3735928559U == 1476535296U) && (3 == 9)) ? 1 : 0) ? 57 : 0) + ((((3735928559U == 1476534272U) && (3 == 7)) ? 1 : 0) ? 58 : 0) + ((((3735928559U == 1476534272U) && (3 == 6)) ? 1 : 0) ? 59 : 0) + ((((3735928559U == 1476534272U) && (3 == 4)) ? 1 : 0) ? 60 : 0) + ((((3735928559U == 1476533248U) && (3 == 14)) ? 1 : 0) ? 61 : 0) + ((((3735928559U == 1476532224U) && (3 == 11)) ? 1 : 0) ? 62 : 0) + ((((3735928559U == 1476533248U) && (3 == 11)) ? 1 : 0) ? 63 : 0) + ((((3735928559U == 1476533248U) && (3 == 10)) ? 1 : 0) ? 64 : 0) + ((((3735928559U == 1476533248U) && (3 == 9)) ? 1 : 0) ? 65 : 0) + ((((3735928559U == 1476526080U) && (3 == 1)) ? 1 : 0) ? 66 : 0) + ((((3735928559U == 1476529152U) && (3 == 4)) ? 1 : 0) ? 67 : 0) + ((((3735928559U == 1476528128U) && (3 == 6)) ? 1 : 0) ? 68 : 0) + ((((3735928559U == 1476534272U) && (3 == 0)) ? 1 : 0) ? 69 : 0) + ((((3735928559U == 1476534272U) && (3 == 1)) ? 1 : 0) ? 70 : 0) + ((((3735928559U == 1476534272U) && (3 == 2)) ? 1 : 0) ? 71 : 0) + ((((3735928559U == 1476534272U) && (3 == 3)) ? 1 : 0) ? 72 : 0) + ((((3735928559U == 1476528128U) && (3 == 1)) ? 1 : 0) ? 73 : 0) + ((((3735928559U == 1476527104U) && (3 == 12)) ? 1 : 0) ? 74 : 0) + ((((3735928559U == 1476529152U) && (3 == 3)) ? 1 : 0) ? 75 : 0) + ((((3735928559U == 1476528128U) && (3 == 4)) ? 1 : 0) ? 76 : 0) + ((((3735928559U == 1476528128U) && (3 == 5)) ? 1 : 0) ? 77 : 0) + ((((3735928559U == 1476527104U) && (3 == 0)) ? 1 : 0) ? 78 : 0) + ((((3735928559U == 1476527104U) && (3 == 1)) ? 1 : 0) ? 79 : 0) + ((((3735928559U == 1476528128U) && (3 == 3)) ? 1 : 0) ? 80 : 0) + ((((3735928559U == 1476528128U) && (3 == 2)) ? 1 : 0) ? 81 : 0) + ((((3735928559U == 1476528128U) && (3 == 0)) ? 1 : 0) ? 82 : 0) + ((((3735928559U == 1476526080U) && (3 == 0)) ? 1 : 0) ? 83 : 0) + ((((3735928559U == 1476526080U) && (3 == 4)) ? 1 : 0) ? 84 : 0) + ((((3735928559U == 1476526080U) && (3 == 5)) ? 1 : 0) ? 85 : 0) + ((((3735928559U == 1476534272U) && (3 == 12)) ? 1 : 0) ? 86 : 0) + ((((3735928559U == 1476535296U) && (3 == 13)) ? 1 : 0) ? 87 : 0) + ((((3735928559U == 1476530176U) && (3 == 3)) ? 1 : 0) ? 88 : 0) + ((((3735928559U == 1476532224U) && (3 == 9)) ? 1 : 0) ? 89 : 0) + ((((3735928559U == 1476529152U) && (3 == 7)) ? 1 : 0) ? 90 : 0) + ((((3735928559U == 1476527104U) && (3 == 3)) ? 1 : 0) ? 91 : 0) + ((((3735928559U == 1476526080U) && (3 == 15)) ? 1 : 0) ? 92 : 0) + ((((3735928559U == 1476527104U) && (3 == 5)) ? 1 : 0) ? 93 : 0) + ((((3735928559U == 1476527104U) && (3 == 13)) ? 1 : 0) ? 94 : 0) + ((((3735928559U == 1476527104U) && (3 == 6)) ? 1 : 0) ? 95 : 0) + ((((3735928559U == 1476533248U) && (3 == 12)) ? 1 : 0) ? 96 : 0) + ((((3735928559U == 3735928559U) && (3 == 0)) ? 1 : 0) ? 97 : 0) + ((((3735928559U == 3735928559U) && (3 == 1)) ? 1 : 0) ? 98 : 0) + ((((3735928559U == 3735928559U) && (3 == 2)) ? 1 : 0) ? 99 : 0) + ((((3735928559U == 3735928559U) && (3 == 3)) ? 1 : 0) ? 100 : 0), A12 = ((((1476526080U == 1476527104U) && (4 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476526080U == 1476526080U) && (4 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476526080U == 1476526080U) && (4 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476526080U == 1476526080U) && (4 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476526080U == 1476535296U) && (4 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476526080U == 1476526080U) && (4 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476526080U == 1476529152U) && (4 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476526080U == 1476527104U) && (4 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476526080U == 1476527104U) && (4 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476526080U == 1476527104U) && (4 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476526080U == 1476536320U) && (4 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476526080U == 1476535296U) && (4 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476526080U == 1476535296U) && (4 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476526080U == 1476533248U) && (4 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476526080U == 1476532224U) && (4 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476526080U == 1476528128U) && (4 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476526080U == 1476533248U) && (4 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476526080U == 1476534272U) && (4 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476526080U == 1476529152U) && (4 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476526080U == 1476529152U) && (4 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476526080U == 1476527104U) && (4 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476526080U == 1476533248U) && (4 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476526080U == 1476535296U) && (4 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476526080U == 1476532224U) && (4 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476526080U == 1476532224U) && (4 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476526080U == 1476535296U) && (4 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476526080U == 1476535296U) && (4 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476526080U == 1476535296U) && (4 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476526080U == 1476535296U) && (4 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476526080U == 1476535296U) && (4 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476526080U == 1476536320U) && (4 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476526080U == 1476535296U) && (4 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476526080U == 1476536320U) && (4 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476526080U == 1476535296U) && (4 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476526080U == 1476536320U) && (4 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476526080U == 1476535296U) && (4 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476526080U == 1476536320U) && (4 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476526080U == 1476535296U) && (4 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476526080U == 1476535296U) && (4 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476526080U == 1476534272U) && (4 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476526080U == 1476530176U) && (4 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476526080U == 1476536320U) && (4 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476526080U == 1476534272U) && (4 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476526080U == 1476534272U) && (4 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476526080U == 1476532224U) && (4 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476526080U == 1476534272U) && (4 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476526080U == 1476533248U) && (4 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476526080U == 1476527104U) && (4 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476526080U == 1476536320U) && (4 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476526080U == 1476530176U) && (4 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476526080U == 1476534272U) && (4 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476526080U == 1476530176U) && (4 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476526080U == 1476536320U) && (4 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476526080U == 1476532224U) && (4 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476526080U == 1476534272U) && (4 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476526080U == 1476533248U) && (4 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476526080U == 1476526080U) && (4 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476526080U == 1476535296U) && (4 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476526080U == 1476534272U) && (4 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476526080U == 1476534272U) && (4 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476526080U == 1476534272U) && (4 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476526080U == 1476533248U) && (4 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476526080U == 1476532224U) && (4 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476526080U == 1476533248U) && (4 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476526080U == 1476533248U) && (4 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476526080U == 1476533248U) && (4 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476526080U == 1476526080U) && (4 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476526080U == 1476529152U) && (4 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476526080U == 1476528128U) && (4 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476526080U == 1476534272U) && (4 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476526080U == 1476534272U) && (4 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476526080U == 1476534272U) && (4 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476526080U == 1476534272U) && (4 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476526080U == 1476528128U) && (4 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476526080U == 1476527104U) && (4 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476526080U == 1476529152U) && (4 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476526080U == 1476528128U) && (4 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476526080U == 1476528128U) && (4 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476526080U == 1476527104U) && (4 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476526080U == 1476527104U) && (4 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476526080U == 1476528128U) && (4 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476526080U == 1476528128U) && (4 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476526080U == 1476528128U) && (4 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476526080U == 1476526080U) && (4 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476526080U == 1476526080U) && (4 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476526080U == 1476526080U) && (4 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476526080U == 1476534272U) && (4 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476526080U == 1476535296U) && (4 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476526080U == 1476530176U) && (4 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476526080U == 1476532224U) && (4 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476526080U == 1476529152U) && (4 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476526080U == 1476527104U) && (4 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476526080U == 1476526080U) && (4 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476526080U == 1476527104U) && (4 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476526080U == 1476527104U) && (4 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476526080U == 1476527104U) && (4 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476526080U == 1476533248U) && (4 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476526080U == 3735928559U) && (4 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476526080U == 3735928559U) && (4 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476526080U == 3735928559U) && (4 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476526080U == 3735928559U) && (4 == 3)) ? 1 : 0) ? 100 : 0), A13 = ((((1476526080U == 1476527104U) && (5 == 7)) ? 1 : 0) ? 0 : 0) + ((((1476526080U == 1476526080U) && (5 == 9)) ? 1 : 0) ? 1 : 0) + ((((1476526080U == 1476526080U) && (5 == 3)) ? 1 : 0) ? 2 : 0) + ((((1476526080U == 1476526080U) && (5 == 2)) ? 1 : 0) ? 3 : 0) + ((((1476526080U == 1476535296U) && (5 == 8)) ? 1 : 0) ? 4 : 0) + ((((1476526080U == 1476526080U) && (5 == 7)) ? 1 : 0) ? 5 : 0) + ((((1476526080U == 1476529152U) && (5 == 13)) ? 1 : 0) ? 6 : 0) + ((((1476526080U == 1476527104U) && (5 == 4)) ? 1 : 0) ? 7 : 0) + ((((1476526080U == 1476527104U) && (5 == 8)) ? 1 : 0) ? 8 : 0) + ((((1476526080U == 1476527104U) && (5 == 9)) ? 1 : 0) ? 9 : 0) + ((((1476526080U == 1476536320U) && (5 == 1)) ? 1 : 0) ? 10 : 0) + ((((1476526080U == 1476535296U) && (5 == 10)) ? 1 : 0) ? 11 : 0) + ((((1476526080U == 1476535296U) && (5 == 11)) ? 1 : 0) ? 12 : 0) + ((((1476526080U == 1476533248U) && (5 == 6)) ? 1 : 0) ? 13 : 0) + ((((1476526080U == 1476532224U) && (5 == 14)) ? 1 : 0) ? 14 : 0) + ((((1476526080U == 1476528128U) && (5 == 7)) ? 1 : 0) ? 15 : 0) + ((((1476526080U == 1476533248U) && (5 == 13)) ? 1 : 0) ? 16 : 0) + ((((1476526080U == 1476534272U) && (5 == 9)) ? 1 : 0) ? 17 : 0) + ((((1476526080U == 1476529152U) && (5 == 5)) ? 1 : 0) ? 18 : 0) + ((((1476526080U == 1476529152U) && (5 == 6)) ? 1 : 0) ? 19 : 0) + ((((1476526080U == 1476527104U) && (5 == 11)) ? 1 : 0) ? 20 : 0) + ((((1476526080U == 1476533248U) && (5 == 4)) ? 1 : 0) ? 21 : 0) + ((((1476526080U == 1476535296U) && (5 == 12)) ? 1 : 0) ? 22 : 0) + ((((1476526080U == 1476532224U) && (5 == 13)) ? 1 : 0) ? 23 : 0) + ((((1476526080U == 1476532224U) && (5 == 12)) ? 1 : 0) ? 24 : 0) + ((((1476526080U == 1476535296U) && (5 == 0)) ? 1 : 0) ? 25 : 0) + ((((1476526080U == 1476535296U) && (5 == 14)) ? 1 : 0) ? 26 : 0) + ((((1476526080U == 1476535296U) && (5 == 1)) ? 1 : 0) ? 27 : 0) + ((((1476526080U == 1476535296U) && (5 == 15)) ? 1 : 0) ? 28 : 0) + ((((1476526080U == 1476535296U) && (5 == 2)) ? 1 : 0) ? 29 : 0) + ((((1476526080U == 1476536320U) && (5 == 3)) ? 1 : 0) ? 30 : 0) + ((((1476526080U == 1476535296U) && (5 == 3)) ? 1 : 0) ? 31 : 0) + ((((1476526080U == 1476536320U) && (5 == 4)) ? 1 : 0) ? 32 : 0) + ((((1476526080U == 1476535296U) && (5 == 4)) ? 1 : 0) ? 33 : 0) + ((((1476526080U == 1476536320U) && (5 == 5)) ? 1 : 0) ? 34 : 0) + ((((1476526080U == 1476535296U) && (5 == 5)) ? 1 : 0) ? 35 : 0) + ((((1476526080U == 1476536320U) && (5 == 6)) ? 1 : 0) ? 36 : 0) + ((((1476526080U == 1476535296U) && (5 == 6)) ? 1 : 0) ? 37 : 0) + ((((1476526080U == 1476535296U) && (5 == 7)) ? 1 : 0) ? 38 : 0) + ((((1476526080U == 1476534272U) && (5 == 14)) ? 1 : 0) ? 39 : 0) + ((((1476526080U == 1476530176U) && (5 == 6)) ? 1 : 0) ? 40 : 0) + ((((1476526080U == 1476536320U) && (5 == 7)) ? 1 : 0) ? 41 : 0) + ((((1476526080U == 1476534272U) && (5 == 15)) ? 1 : 0) ? 42 : 0) + ((((1476526080U == 1476534272U) && (5 == 10)) ? 1 : 0) ? 43 : 0) + ((((1476526080U == 1476532224U) && (5 == 10)) ? 1 : 0) ? 44 : 0) + ((((1476526080U == 1476534272U) && (5 == 13)) ? 1 : 0) ? 45 : 0) + ((((1476526080U == 1476533248U) && (5 == 15)) ? 1 : 0) ? 46 : 0) + ((((1476526080U == 1476527104U) && (5 == 2)) ? 1 : 0) ? 47 : 0) + ((((1476526080U == 1476536320U) && (5 == 0)) ? 1 : 0) ? 48 : 0) + ((((1476526080U == 1476530176U) && (5 == 4)) ? 1 : 0) ? 49 : 0) + ((((1476526080U == 1476534272U) && (5 == 11)) ? 1 : 0) ? 50 : 0) + ((((1476526080U == 1476530176U) && (5 == 5)) ? 1 : 0) ? 51 : 0) + ((((1476526080U == 1476536320U) && (5 == 2)) ? 1 : 0) ? 52 : 0) + ((((1476526080U == 1476532224U) && (5 == 7)) ? 1 : 0) ? 53 : 0) + ((((1476526080U == 1476534272U) && (5 == 5)) ? 1 : 0) ? 54 : 0) + ((((1476526080U == 1476533248U) && (5 == 8)) ? 1 : 0) ? 55 : 0) + ((((1476526080U == 1476526080U) && (5 == 6)) ? 1 : 0) ? 56 : 0) + ((((1476526080U == 1476535296U) && (5 == 9)) ? 1 : 0) ? 57 : 0) + ((((1476526080U == 1476534272U) && (5 == 7)) ? 1 : 0) ? 58 : 0) + ((((1476526080U == 1476534272U) && (5 == 6)) ? 1 : 0) ? 59 : 0) + ((((1476526080U == 1476534272U) && (5 == 4)) ? 1 : 0) ? 60 : 0) + ((((1476526080U == 1476533248U) && (5 == 14)) ? 1 : 0) ? 61 : 0) + ((((1476526080U == 1476532224U) && (5 == 11)) ? 1 : 0) ? 62 : 0) + ((((1476526080U == 1476533248U) && (5 == 11)) ? 1 : 0) ? 63 : 0) + ((((1476526080U == 1476533248U) && (5 == 10)) ? 1 : 0) ? 64 : 0) + ((((1476526080U == 1476533248U) && (5 == 9)) ? 1 : 0) ? 65 : 0) + ((((1476526080U == 1476526080U) && (5 == 1)) ? 1 : 0) ? 66 : 0) + ((((1476526080U == 1476529152U) && (5 == 4)) ? 1 : 0) ? 67 : 0) + ((((1476526080U == 1476528128U) && (5 == 6)) ? 1 : 0) ? 68 : 0) + ((((1476526080U == 1476534272U) && (5 == 0)) ? 1 : 0) ? 69 : 0) + ((((1476526080U == 1476534272U) && (5 == 1)) ? 1 : 0) ? 70 : 0) + ((((1476526080U == 1476534272U) && (5 == 2)) ? 1 : 0) ? 71 : 0) + ((((1476526080U == 1476534272U) && (5 == 3)) ? 1 : 0) ? 72 : 0) + ((((1476526080U == 1476528128U) && (5 == 1)) ? 1 : 0) ? 73 : 0) + ((((1476526080U == 1476527104U) && (5 == 12)) ? 1 : 0) ? 74 : 0) + ((((1476526080U == 1476529152U) && (5 == 3)) ? 1 : 0) ? 75 : 0) + ((((1476526080U == 1476528128U) && (5 == 4)) ? 1 : 0) ? 76 : 0) + ((((1476526080U == 1476528128U) && (5 == 5)) ? 1 : 0) ? 77 : 0) + ((((1476526080U == 1476527104U) && (5 == 0)) ? 1 : 0) ? 78 : 0) + ((((1476526080U == 1476527104U) && (5 == 1)) ? 1 : 0) ? 79 : 0) + ((((1476526080U == 1476528128U) && (5 == 3)) ? 1 : 0) ? 80 : 0) + ((((1476526080U == 1476528128U) && (5 == 2)) ? 1 : 0) ? 81 : 0) + ((((1476526080U == 1476528128U) && (5 == 0)) ? 1 : 0) ? 82 : 0) + ((((1476526080U == 1476526080U) && (5 == 0)) ? 1 : 0) ? 83 : 0) + ((((1476526080U == 1476526080U) && (5 == 4)) ? 1 : 0) ? 84 : 0) + ((((1476526080U == 1476526080U) && (5 == 5)) ? 1 : 0) ? 85 : 0) + ((((1476526080U == 1476534272U) && (5 == 12)) ? 1 : 0) ? 86 : 0) + ((((1476526080U == 1476535296U) && (5 == 13)) ? 1 : 0) ? 87 : 0) + ((((1476526080U == 1476530176U) && (5 == 3)) ? 1 : 0) ? 88 : 0) + ((((1476526080U == 1476532224U) && (5 == 9)) ? 1 : 0) ? 89 : 0) + ((((1476526080U == 1476529152U) && (5 == 7)) ? 1 : 0) ? 90 : 0) + ((((1476526080U == 1476527104U) && (5 == 3)) ? 1 : 0) ? 91 : 0) + ((((1476526080U == 1476526080U) && (5 == 15)) ? 1 : 0) ? 92 : 0) + ((((1476526080U == 1476527104U) && (5 == 5)) ? 1 : 0) ? 93 : 0) + ((((1476526080U == 1476527104U) && (5 == 13)) ? 1 : 0) ? 94 : 0) + ((((1476526080U == 1476527104U) && (5 == 6)) ? 1 : 0) ? 95 : 0) + ((((1476526080U == 1476533248U) && (5 == 12)) ? 1 : 0) ? 96 : 0) + ((((1476526080U == 3735928559U) && (5 == 0)) ? 1 : 0) ? 97 : 0) + ((((1476526080U == 3735928559U) && (5 == 1)) ? 1 : 0) ? 98 : 0) + ((((1476526080U == 3735928559U) && (5 == 2)) ? 1 : 0) ? 99 : 0) + ((((1476526080U == 3735928559U) && (5 == 3)) ? 1 : 0) ? 100 : 0),
                                    };

// We provide analogReadResolution APIs
void analogReadResolution(int bits);
# 116 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h"
enum dacPins { DAC0 = 0, DAC1 = 1, NUM_OF_DACS };



void interrupts(void);
void noInterrupts(void);

int digitalPinToInterrupt(pin_size_t pin);






void analogReadResolution(int bits);
void analogWriteResolution(int bits);

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/variant.h" 1
/*
 * Copyright (c) 2022 Dhruva Gole
 *
 * SPDX-License-Identifier: Apache-2.0
 */

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/pure_analog_pins.h" 1



/******************************************************************************
 * INCLUDE
 ******************************************************************************/



/******************************************************************************
 * PREPROCESSOR-MAGIC
 ******************************************************************************/



/******************************************************************************
 * TYPEDEF
 ******************************************************************************/

class PureAnalogPin {
public:
 PureAnalogPin(int _pin) : pin(_pin) {};
 int get() {
  return pin;
 };
 bool operator== (PureAnalogPin const & other) const {
  return pin == other.pin;
 }
 //operator int() = delete;
 __attribute__ ((error("Change me to a #define"))) operator int();
private:
 int pin;
};

extern PureAnalogPin A8_PURE;
extern PureAnalogPin A9_PURE;
extern PureAnalogPin A10_PURE;
extern PureAnalogPin A11_PURE;






/******************************************************************************
 * FUNCTION DECLARATION
 ******************************************************************************/

void __attribute__ ((error("Can't use pins A8-A11 as digital"))) pinMode (PureAnalogPin pin, PinMode mode);
PinStatus __attribute__ ((error("Can't use pins A8-A11 as digital"))) digitalRead (PureAnalogPin pin);
void __attribute__ ((error("Can't use pins A8-A11 as digital"))) digitalWrite(PureAnalogPin pin, PinStatus value);
int analogRead (PureAnalogPin pin);
void __attribute__ ((error("Can't use pins A8-A11 as digital"))) analogWrite (PureAnalogPin pin, int value);
# 8 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/variant.h" 2

// TODO: correctly handle these legacy defines
# 134 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/SerialUSB.h" 1
/*
 * Copyright (c) 2024 Arduino SA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

       

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/zephyrSerial.h" 1
/*
 * Copyright (c) 2022 Dhruva Gole
 *
 * SPDX-License-Identifier: Apache-2.0
 */

       

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/ring_buffer.h" 1
/*
 * Copyright (c) 2015 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/zephyrSerial.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/kernel.h" 1
/*
 * Copyright (c) 2016, Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 *
 * @brief Public kernel APIs.
 */
# 11 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/zephyrSerial.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/HardwareSerial.h" 1
/*
  HardwareSerial.h - Hardware serial interface for Arduino
  Copyright (c) 2016 Arduino LLC.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

       

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/inttypes.h" 3 4
/*
 * Copyright (c) 2004, 2005 by
 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * is freely granted, provided that this notice is preserved.
 */

/**
 *  @file  inttypes.h
 */
# 23 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/HardwareSerial.h" 2



# 25 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/HardwareSerial.h"
namespace arduino {

// XXX: Those constants should be defined as const int / enums?
// XXX: shall we use namespaces too?
# 88 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/HardwareSerial.h"
class HardwareSerial : public Stream
{
  public:
    virtual void begin(unsigned long) = 0;
    virtual void begin(unsigned long baudrate, uint16_t config) = 0;
    virtual void end() = 0;
    virtual int available(void) = 0;
    virtual int peek(void) = 0;
    virtual int read(void) = 0;
    virtual void flush(void) = 0;
    virtual size_t write(uint8_t) = 0;
    using Print::write; // pull in write(str) and write(buf, size) from Print
    virtual operator bool() = 0;
};

// XXX: Are we keeping the serialEvent API?
extern void serialEventRun(void) __attribute__((weak));

}
# 12 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/zephyrSerial.h" 2

namespace arduino {

class ZephyrSerialStub : public HardwareSerial
{
public:
 void begin(__attribute__((unused)) unsigned long baudRate) { }
 void begin(__attribute__((unused)) unsigned long baudrate, __attribute__((unused)) uint16_t config) { }
 void end() { }
 int available() { return 0; }
 int peek() { return 0; }
 int read() { return 0; }
 void flush() { }
 size_t write(const uint8_t data)
 {
  printk("%c", static_cast<char>(data));
  return 1;
 }

 operator bool() { return true; }
};

class ZephyrSerial : public HardwareSerial
{
public:
 template <int SZ>
 class ZephyrSerialBuffer
 {
  friend arduino::ZephyrSerial;
  struct ring_buf ringbuf;
  uint8_t buffer[SZ];
  struct k_sem sem;

  ZephyrSerialBuffer()
  {
   k_sem_init(&sem, 1, 1);
   ring_buf_init(&ringbuf, sizeof(buffer), buffer);
  }
 };

 ZephyrSerial(const struct device *dev) : uart(dev) { }
 void begin(unsigned long baudrate, uint16_t config);
 void begin(unsigned long baudrate) { begin(baudrate, ((0x10ul) | (0x3ul) | (0x400ul))); }
 void flush();
 void end() { }
 size_t write(const uint8_t *buffer, size_t size);
 size_t write(const uint8_t data) { return write(&data, 1); }
 using Print::write; // pull in write(str) and write(buf, size) from Print
 int available();
   int availableForWrite();
 int peek();
 int read();

 operator bool()
 {
  return true;
 }

 friend class SerialUSB_;

protected:
 void IrqHandler();
 static void IrqDispatch(const struct device *dev, void *data);

 const struct device *uart;
 ZephyrSerialBuffer<64> tx;
 ZephyrSerialBuffer<64> rx;
};


} // namespace arduino
# 94 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/zephyrSerial.h"
/* Declare Serial1, Serial2, ... */
 extern arduino::ZephyrSerial Serial1; extern arduino::ZephyrSerial Serial2; extern arduino::ZephyrSerial Serial3; extern arduino::ZephyrSerial Serial4;
# 10 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/SerialUSB.h" 2

namespace arduino {

class SerialUSB_ : public ZephyrSerial {

public:
 SerialUSB_(const struct device *dev) : ZephyrSerial(dev) { }
 void begin(unsigned long baudrate, uint16_t config);
 void begin(unsigned long baudrate) { begin(baudrate, ((0x10ul) | (0x3ul) | (0x400ul))); }

 operator bool() override;

protected:
 uint32_t dtr = 0;
 uint32_t baudrate;
 void _baudChangeHandler();
 static void _baudChangeDispatch(struct k_timer *timer);

private:
 struct k_timer baud_timer;
 bool started = false;
};
} // namespace arduino


extern arduino::SerialUSB_ Serial;
# 136 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/strings.h" 1 3 4

# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/strings.h" 3 4
/*-
 * Copyright (c) 2002 Mike Barcroft <mike@FreeBSD.org>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * $FreeBSD: head/include/strings.h 272673 2014-10-07 04:54:11Z delphij $
 */




# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/cdefs.h" 1 3 4
/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */

/* Written 2000 by Werner Almesberger */

/*-
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright (c) 1991, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Berkeley Software Design, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 * $FreeBSD$
 */
# 33 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/strings.h" 2 3 4
# 1 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/sys/_types.h" 1 3 4
/*
Copyright (c) 1982, 1986, 1993
The Regents of the University of California.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
 */
/* ANSI C namespace clean utility typedefs */

/* This file defines various typedefs needed by the system calls that support
   the C library.  Basically, they're just the POSIX versions with an '_'
   prepended.  Targets shall use <machine/_types.h> to define their own
   internal types if desired.

   There are three define patterns used for type definitions.  Lets assume
   xyz_t is a user type.

   The internal type definition uses __machine_xyz_t_defined.  It is defined by
   <machine/_types.h> to disable a default definition in <sys/_types.h>. It
   must not be used in other files.

   User type definitions are guarded by __xyz_t_defined in glibc and
   _XYZ_T_DECLARED in BSD compatible systems.
*/
# 34 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/strings.h" 2 3 4





// As per the GCC source, _SIZE_T_DECLARD is FreeBSD 5
// So: Also check for _SIZE_T
# 53 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/strings.h" 3 4
extern "C" {

int bcmp(const void *, const void *, size_t) __attribute__((__pure__)); /* LEGACY */
void bcopy(const void *, void *, size_t); /* LEGACY */
void bzero(void *, size_t); /* LEGACY */





int ffs(int) __attribute__((__const__));
# 73 "/home/megabug/.arduino15/packages/zephyr/tools/arm-zephyr-eabi/0.16.8/picolibc/include/strings.h" 3 4
char *index(const char *, int) __attribute__((__pure__)); /* LEGACY */
char *rindex(const char *, int) __attribute__((__pure__)); /* LEGACY */

int strcasecmp(const char *, const char *) __attribute__((__pure__));
int strncasecmp(const char *, const char *, size_t) __attribute__((__pure__));





}
# 138 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/itoa.h" 1

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/api/itoa.h"
/*
  itoa.h - Integer to ASCII conversion
  Copyright (c) 2016 Arduino LLC.  All right reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

       

// Standard C functions required in Arduino API
// If these functions are not provided by the standard library, the
// core should supply an implementation of them.


extern "C" {


extern char* itoa(int value, char *string, int radix);
extern char* ltoa(long value, char *string, int radix);
extern char* utoa(unsigned value, char *string, int radix);
extern char* ultoa(unsigned long value, char *string, int radix);


} // extern "C"
# 139 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/time_macros.h" 1
       

# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/variants/arduino_giga_r1_stm32h747xx_m7/llext-edk/include/zephyr/include/zephyr/sys/time_units.h" 1
/*
 * Copyright (c) 2019 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
# 4 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/time_macros.h" 2
# 140 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2
# 1 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/overloads.h" 1


void analogWrite(enum dacPins pinNumber, int value);



// In c++ mode, we also provide analogReadResolution and analogWriteResolution getters
int analogReadResolution();
int analogWriteResolution();
# 141 "/home/megabug/.arduino15/packages/arduino/hardware/zephyr/0.3.1/cores/arduino/Arduino.h" 2

// Allow namespace-less operations if Arduino.h is included
using namespace arduino;
# 2 "/home/megabug/Arduino/Test/build/sketch/Test.ino.cpp" 2
# 1 "/home/megabug/Arduino/Test/Test.ino"
//extern void wait_for_input();
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  while (!Serial && millis() < 5000) {}
  wait_for_input();
}

void loop() {
  // put your main code here, to run repeatedly:

}

void wait_for_input() {
  Serial.println("Press any key to continue");
  while (Serial.read() != -1) {};
  while (Serial.read() == -1) {};
  while (Serial.read() != -1) {};
}
