pub const __ERRNO_H_: u32 = 1;
pub const EDOM: u32 = 33;
pub const ERANGE: u32 = 34;
pub const __CTYPE_H_: u32 = 1;
pub const _STDLIB_H_: u32 = 1;
pub const RAND_MAX: u32 = 32767;
pub const RANDOM_MAX: u32 = 2147483647;
pub const DTOSTR_ALWAYS_SIGN: u32 = 1;
pub const DTOSTR_PLUS_SIGN: u32 = 2;
pub const DTOSTR_UPPERCASE: u32 = 4;
pub const EXIT_SUCCESS: u32 = 0;
pub const EXIT_FAILURE: u32 = 1;
pub const __USING_MINT8: u32 = 0;
pub const INT8_MAX: u32 = 127;
pub const INT8_MIN: i32 = -128;
pub const UINT8_MAX: u32 = 255;
pub const INT16_MAX: u32 = 32767;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MAX: u32 = 2147483647;
pub const INT32_MIN: i32 = -2147483648;
pub const INT64_MAX: u64 = 9223372036854775807;
pub const INT64_MIN: i64 = -9223372036854775808;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST8_MIN: i32 = -128;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST64_MAX: u64 = 9223372036854775807;
pub const INT_LEAST64_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST8_MIN: i32 = -128;
pub const UINT_FAST8_MAX: u32 = 255;
pub const INT_FAST16_MAX: u32 = 32767;
pub const INT_FAST16_MIN: i32 = -32768;
pub const INT_FAST32_MAX: u32 = 2147483647;
pub const INT_FAST32_MIN: i32 = -2147483648;
pub const INT_FAST64_MAX: u64 = 9223372036854775807;
pub const INT_FAST64_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u32 = 32767;
pub const INTPTR_MIN: i32 = -32768;
pub const INTMAX_MAX: u64 = 9223372036854775807;
pub const INTMAX_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u32 = 32767;
pub const PTRDIFF_MIN: i32 = -32768;
pub const SIG_ATOMIC_MAX: u32 = 127;
pub const SIG_ATOMIC_MIN: i32 = -128;
pub const PRId8: &'static [u8; 2usize] = b"d\0";
pub const PRIdLEAST8: &'static [u8; 2usize] = b"d\0";
pub const PRIdFAST8: &'static [u8; 2usize] = b"d\0";
pub const PRIi8: &'static [u8; 2usize] = b"i\0";
pub const PRIiLEAST8: &'static [u8; 2usize] = b"i\0";
pub const PRIiFAST8: &'static [u8; 2usize] = b"i\0";
pub const PRId16: &'static [u8; 2usize] = b"d\0";
pub const PRIdLEAST16: &'static [u8; 2usize] = b"d\0";
pub const PRIdFAST16: &'static [u8; 2usize] = b"d\0";
pub const PRIi16: &'static [u8; 2usize] = b"i\0";
pub const PRIiLEAST16: &'static [u8; 2usize] = b"i\0";
pub const PRIiFAST16: &'static [u8; 2usize] = b"i\0";
pub const PRId32: &'static [u8; 3usize] = b"ld\0";
pub const PRIdLEAST32: &'static [u8; 3usize] = b"ld\0";
pub const PRIdFAST32: &'static [u8; 3usize] = b"ld\0";
pub const PRIi32: &'static [u8; 3usize] = b"li\0";
pub const PRIiLEAST32: &'static [u8; 3usize] = b"li\0";
pub const PRIiFAST32: &'static [u8; 3usize] = b"li\0";
pub const PRIdPTR: &'static [u8; 2usize] = b"d\0";
pub const PRIiPTR: &'static [u8; 2usize] = b"i\0";
pub const PRIo8: &'static [u8; 2usize] = b"o\0";
pub const PRIoLEAST8: &'static [u8; 2usize] = b"o\0";
pub const PRIoFAST8: &'static [u8; 2usize] = b"o\0";
pub const PRIu8: &'static [u8; 2usize] = b"u\0";
pub const PRIuLEAST8: &'static [u8; 2usize] = b"u\0";
pub const PRIuFAST8: &'static [u8; 2usize] = b"u\0";
pub const PRIx8: &'static [u8; 2usize] = b"x\0";
pub const PRIxLEAST8: &'static [u8; 2usize] = b"x\0";
pub const PRIxFAST8: &'static [u8; 2usize] = b"x\0";
pub const PRIX8: &'static [u8; 2usize] = b"X\0";
pub const PRIXLEAST8: &'static [u8; 2usize] = b"X\0";
pub const PRIXFAST8: &'static [u8; 2usize] = b"X\0";
pub const PRIo16: &'static [u8; 2usize] = b"o\0";
pub const PRIoLEAST16: &'static [u8; 2usize] = b"o\0";
pub const PRIoFAST16: &'static [u8; 2usize] = b"o\0";
pub const PRIu16: &'static [u8; 2usize] = b"u\0";
pub const PRIuLEAST16: &'static [u8; 2usize] = b"u\0";
pub const PRIuFAST16: &'static [u8; 2usize] = b"u\0";
pub const PRIx16: &'static [u8; 2usize] = b"x\0";
pub const PRIxLEAST16: &'static [u8; 2usize] = b"x\0";
pub const PRIxFAST16: &'static [u8; 2usize] = b"x\0";
pub const PRIX16: &'static [u8; 2usize] = b"X\0";
pub const PRIXLEAST16: &'static [u8; 2usize] = b"X\0";
pub const PRIXFAST16: &'static [u8; 2usize] = b"X\0";
pub const PRIo32: &'static [u8; 3usize] = b"lo\0";
pub const PRIoLEAST32: &'static [u8; 3usize] = b"lo\0";
pub const PRIoFAST32: &'static [u8; 3usize] = b"lo\0";
pub const PRIu32: &'static [u8; 3usize] = b"lu\0";
pub const PRIuLEAST32: &'static [u8; 3usize] = b"lu\0";
pub const PRIuFAST32: &'static [u8; 3usize] = b"lu\0";
pub const PRIx32: &'static [u8; 3usize] = b"lx\0";
pub const PRIxLEAST32: &'static [u8; 3usize] = b"lx\0";
pub const PRIxFAST32: &'static [u8; 3usize] = b"lx\0";
pub const PRIX32: &'static [u8; 3usize] = b"lX\0";
pub const PRIXLEAST32: &'static [u8; 3usize] = b"lX\0";
pub const PRIXFAST32: &'static [u8; 3usize] = b"lX\0";
pub const PRIoPTR: &'static [u8; 2usize] = b"o\0";
pub const PRIuPTR: &'static [u8; 2usize] = b"u\0";
pub const PRIxPTR: &'static [u8; 2usize] = b"x\0";
pub const PRIXPTR: &'static [u8; 2usize] = b"X\0";
pub const SCNd8: &'static [u8; 4usize] = b"hhd\0";
pub const SCNdLEAST8: &'static [u8; 4usize] = b"hhd\0";
pub const SCNdFAST8: &'static [u8; 4usize] = b"hhd\0";
pub const SCNi8: &'static [u8; 4usize] = b"hhi\0";
pub const SCNiLEAST8: &'static [u8; 4usize] = b"hhi\0";
pub const SCNiFAST8: &'static [u8; 4usize] = b"hhi\0";
pub const SCNd16: &'static [u8; 2usize] = b"d\0";
pub const SCNdLEAST16: &'static [u8; 2usize] = b"d\0";
pub const SCNdFAST16: &'static [u8; 2usize] = b"d\0";
pub const SCNi16: &'static [u8; 2usize] = b"i\0";
pub const SCNiLEAST16: &'static [u8; 2usize] = b"i\0";
pub const SCNiFAST16: &'static [u8; 2usize] = b"i\0";
pub const SCNd32: &'static [u8; 3usize] = b"ld\0";
pub const SCNdLEAST32: &'static [u8; 3usize] = b"ld\0";
pub const SCNdFAST32: &'static [u8; 3usize] = b"ld\0";
pub const SCNi32: &'static [u8; 3usize] = b"li\0";
pub const SCNiLEAST32: &'static [u8; 3usize] = b"li\0";
pub const SCNiFAST32: &'static [u8; 3usize] = b"li\0";
pub const SCNdPTR: &'static [u8; 2usize] = b"d\0";
pub const SCNiPTR: &'static [u8; 2usize] = b"i\0";
pub const SCNo8: &'static [u8; 4usize] = b"hho\0";
pub const SCNoLEAST8: &'static [u8; 4usize] = b"hho\0";
pub const SCNoFAST8: &'static [u8; 4usize] = b"hho\0";
pub const SCNu8: &'static [u8; 4usize] = b"hhu\0";
pub const SCNuLEAST8: &'static [u8; 4usize] = b"hhu\0";
pub const SCNuFAST8: &'static [u8; 4usize] = b"hhu\0";
pub const SCNx8: &'static [u8; 4usize] = b"hhx\0";
pub const SCNxLEAST8: &'static [u8; 4usize] = b"hhx\0";
pub const SCNxFAST8: &'static [u8; 4usize] = b"hhx\0";
pub const SCNo16: &'static [u8; 2usize] = b"o\0";
pub const SCNoLEAST16: &'static [u8; 2usize] = b"o\0";
pub const SCNoFAST16: &'static [u8; 2usize] = b"o\0";
pub const SCNu16: &'static [u8; 2usize] = b"u\0";
pub const SCNuLEAST16: &'static [u8; 2usize] = b"u\0";
pub const SCNuFAST16: &'static [u8; 2usize] = b"u\0";
pub const SCNx16: &'static [u8; 2usize] = b"x\0";
pub const SCNxLEAST16: &'static [u8; 2usize] = b"x\0";
pub const SCNxFAST16: &'static [u8; 2usize] = b"x\0";
pub const SCNo32: &'static [u8; 3usize] = b"lo\0";
pub const SCNoLEAST32: &'static [u8; 3usize] = b"lo\0";
pub const SCNoFAST32: &'static [u8; 3usize] = b"lo\0";
pub const SCNu32: &'static [u8; 3usize] = b"lu\0";
pub const SCNuLEAST32: &'static [u8; 3usize] = b"lu\0";
pub const SCNuFAST32: &'static [u8; 3usize] = b"lu\0";
pub const SCNx32: &'static [u8; 3usize] = b"lx\0";
pub const SCNxLEAST32: &'static [u8; 3usize] = b"lx\0";
pub const SCNxFAST32: &'static [u8; 3usize] = b"lx\0";
pub const SCNoPTR: &'static [u8; 2usize] = b"o\0";
pub const SCNuPTR: &'static [u8; 2usize] = b"u\0";
pub const SCNxPTR: &'static [u8; 2usize] = b"x\0";
pub const _SYS_TYPES_H_: u32 = 1;
pub const ONE_HOUR: u32 = 3600;
pub const ONE_DEGREE: u32 = 3600;
pub const ONE_DAY: u32 = 86400;
pub const UNIX_OFFSET: u32 = 946684800;
pub const NTP_OFFSET: u32 = 3155673600;
pub const M_E: f64 = 2.718281828459045;
pub const M_LOG2E: f64 = 1.4426950408889634;
pub const M_LOG10E: f64 = 0.4342944819032518;
pub const M_LN2: f64 = 0.6931471805599453;
pub const M_LN10: f64 = 2.302585092994046;
pub const M_PI: f64 = 3.141592653589793;
pub const M_PI_2: f64 = 1.5707963267948966;
pub const M_PI_4: f64 = 0.7853981633974483;
pub const M_1_PI: f64 = 0.3183098861837907;
pub const M_2_PI: f64 = 0.6366197723675814;
pub const M_2_SQRTPI: f64 = 1.1283791670955126;
pub const M_SQRT2: f64 = 1.4142135623730951;
pub const M_SQRT1_2: f64 = 0.7071067811865476;
pub const _STRING_H_: u32 = 1;
pub const LC_ALL: u32 = 0;
pub const LC_COLLATE: u32 = 1;
pub const LC_CTYPE: u32 = 2;
pub const LC_MESSAGES: u32 = 3;
pub const LC_MONETARY: u32 = 4;
pub const LC_NUMERIC: u32 = 5;
pub const LC_TIME: u32 = 6;
pub const _STDIO_H_: u32 = 1;
pub const __GNUC_VA_LIST: u32 = 1;
pub const __SRD: u32 = 1;
pub const __SWR: u32 = 2;
pub const __SSTR: u32 = 4;
pub const __SPGM: u32 = 8;
pub const __SERR: u32 = 16;
pub const __SEOF: u32 = 32;
pub const __SUNGET: u32 = 64;
pub const __SMALLOC: u32 = 128;
pub const EOF: i32 = -1;
pub const _FDEV_SETUP_READ: u32 = 1;
pub const _FDEV_SETUP_WRITE: u32 = 2;
pub const _FDEV_SETUP_RW: u32 = 3;
pub const _FDEV_ERR: i32 = -1;
pub const _FDEV_EOF: i32 = -2;
pub const BUFSIZ: u32 = 1024;
pub const _IONBF: u32 = 0;
pub const SEEK_SET: u32 = 0;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const _ALLOCA_H: u32 = 1;
pub const __SETJMP_H_: u32 = 1;
pub const _JBLEN: u32 = 23;
pub const DST_START_WEEK: u32 = 2;
pub const DST_END_WEEK: u32 = 1;
pub const _UTIL_ATOMIC_H_: u32 = 1;
pub const _AVR_SFR_DEFS_H_: u32 = 1;
pub const _SFR_ASM_COMPAT: u32 = 0;
pub const __SFR_OFFSET: u32 = 32;
pub const _AVR_IOXXX_H_: &'static [u8; 10usize] = b"iom328p.h\0";
pub const _AVR_IOM328P_H_: u32 = 1;
pub const PINB0: u32 = 0;
pub const PINB1: u32 = 1;
pub const PINB2: u32 = 2;
pub const PINB3: u32 = 3;
pub const PINB4: u32 = 4;
pub const PINB5: u32 = 5;
pub const PINB6: u32 = 6;
pub const PINB7: u32 = 7;
pub const DDB0: u32 = 0;
pub const DDB1: u32 = 1;
pub const DDB2: u32 = 2;
pub const DDB3: u32 = 3;
pub const DDB4: u32 = 4;
pub const DDB5: u32 = 5;
pub const DDB6: u32 = 6;
pub const DDB7: u32 = 7;
pub const PORTB0: u32 = 0;
pub const PORTB1: u32 = 1;
pub const PORTB2: u32 = 2;
pub const PORTB3: u32 = 3;
pub const PORTB4: u32 = 4;
pub const PORTB5: u32 = 5;
pub const PORTB6: u32 = 6;
pub const PORTB7: u32 = 7;
pub const PINC0: u32 = 0;
pub const PINC1: u32 = 1;
pub const PINC2: u32 = 2;
pub const PINC3: u32 = 3;
pub const PINC4: u32 = 4;
pub const PINC5: u32 = 5;
pub const PINC6: u32 = 6;
pub const DDC0: u32 = 0;
pub const DDC1: u32 = 1;
pub const DDC2: u32 = 2;
pub const DDC3: u32 = 3;
pub const DDC4: u32 = 4;
pub const DDC5: u32 = 5;
pub const DDC6: u32 = 6;
pub const PORTC0: u32 = 0;
pub const PORTC1: u32 = 1;
pub const PORTC2: u32 = 2;
pub const PORTC3: u32 = 3;
pub const PORTC4: u32 = 4;
pub const PORTC5: u32 = 5;
pub const PORTC6: u32 = 6;
pub const PIND0: u32 = 0;
pub const PIND1: u32 = 1;
pub const PIND2: u32 = 2;
pub const PIND3: u32 = 3;
pub const PIND4: u32 = 4;
pub const PIND5: u32 = 5;
pub const PIND6: u32 = 6;
pub const PIND7: u32 = 7;
pub const DDD0: u32 = 0;
pub const DDD1: u32 = 1;
pub const DDD2: u32 = 2;
pub const DDD3: u32 = 3;
pub const DDD4: u32 = 4;
pub const DDD5: u32 = 5;
pub const DDD6: u32 = 6;
pub const DDD7: u32 = 7;
pub const PORTD0: u32 = 0;
pub const PORTD1: u32 = 1;
pub const PORTD2: u32 = 2;
pub const PORTD3: u32 = 3;
pub const PORTD4: u32 = 4;
pub const PORTD5: u32 = 5;
pub const PORTD6: u32 = 6;
pub const PORTD7: u32 = 7;
pub const TOV0: u32 = 0;
pub const OCF0A: u32 = 1;
pub const OCF0B: u32 = 2;
pub const TOV1: u32 = 0;
pub const OCF1A: u32 = 1;
pub const OCF1B: u32 = 2;
pub const ICF1: u32 = 5;
pub const TOV2: u32 = 0;
pub const OCF2A: u32 = 1;
pub const OCF2B: u32 = 2;
pub const PCIF0: u32 = 0;
pub const PCIF1: u32 = 1;
pub const PCIF2: u32 = 2;
pub const INTF0: u32 = 0;
pub const INTF1: u32 = 1;
pub const INT0: u32 = 0;
pub const INT1: u32 = 1;
pub const GPIOR00: u32 = 0;
pub const GPIOR01: u32 = 1;
pub const GPIOR02: u32 = 2;
pub const GPIOR03: u32 = 3;
pub const GPIOR04: u32 = 4;
pub const GPIOR05: u32 = 5;
pub const GPIOR06: u32 = 6;
pub const GPIOR07: u32 = 7;
pub const EERE: u32 = 0;
pub const EEPE: u32 = 1;
pub const EEMPE: u32 = 2;
pub const EERIE: u32 = 3;
pub const EEPM0: u32 = 4;
pub const EEPM1: u32 = 5;
pub const EEDR0: u32 = 0;
pub const EEDR1: u32 = 1;
pub const EEDR2: u32 = 2;
pub const EEDR3: u32 = 3;
pub const EEDR4: u32 = 4;
pub const EEDR5: u32 = 5;
pub const EEDR6: u32 = 6;
pub const EEDR7: u32 = 7;
pub const EEAR0: u32 = 0;
pub const EEAR1: u32 = 1;
pub const EEAR2: u32 = 2;
pub const EEAR3: u32 = 3;
pub const EEAR4: u32 = 4;
pub const EEAR5: u32 = 5;
pub const EEAR6: u32 = 6;
pub const EEAR7: u32 = 7;
pub const EEAR8: u32 = 0;
pub const EEAR9: u32 = 1;
pub const PSRSYNC: u32 = 0;
pub const PSRASY: u32 = 1;
pub const TSM: u32 = 7;
pub const WGM00: u32 = 0;
pub const WGM01: u32 = 1;
pub const COM0B0: u32 = 4;
pub const COM0B1: u32 = 5;
pub const COM0A0: u32 = 6;
pub const COM0A1: u32 = 7;
pub const CS00: u32 = 0;
pub const CS01: u32 = 1;
pub const CS02: u32 = 2;
pub const WGM02: u32 = 3;
pub const FOC0B: u32 = 6;
pub const FOC0A: u32 = 7;
pub const TCNT0_0: u32 = 0;
pub const TCNT0_1: u32 = 1;
pub const TCNT0_2: u32 = 2;
pub const TCNT0_3: u32 = 3;
pub const TCNT0_4: u32 = 4;
pub const TCNT0_5: u32 = 5;
pub const TCNT0_6: u32 = 6;
pub const TCNT0_7: u32 = 7;
pub const OCR0A_0: u32 = 0;
pub const OCR0A_1: u32 = 1;
pub const OCR0A_2: u32 = 2;
pub const OCR0A_3: u32 = 3;
pub const OCR0A_4: u32 = 4;
pub const OCR0A_5: u32 = 5;
pub const OCR0A_6: u32 = 6;
pub const OCR0A_7: u32 = 7;
pub const OCR0B_0: u32 = 0;
pub const OCR0B_1: u32 = 1;
pub const OCR0B_2: u32 = 2;
pub const OCR0B_3: u32 = 3;
pub const OCR0B_4: u32 = 4;
pub const OCR0B_5: u32 = 5;
pub const OCR0B_6: u32 = 6;
pub const OCR0B_7: u32 = 7;
pub const GPIOR10: u32 = 0;
pub const GPIOR11: u32 = 1;
pub const GPIOR12: u32 = 2;
pub const GPIOR13: u32 = 3;
pub const GPIOR14: u32 = 4;
pub const GPIOR15: u32 = 5;
pub const GPIOR16: u32 = 6;
pub const GPIOR17: u32 = 7;
pub const GPIOR20: u32 = 0;
pub const GPIOR21: u32 = 1;
pub const GPIOR22: u32 = 2;
pub const GPIOR23: u32 = 3;
pub const GPIOR24: u32 = 4;
pub const GPIOR25: u32 = 5;
pub const GPIOR26: u32 = 6;
pub const GPIOR27: u32 = 7;
pub const SPR0: u32 = 0;
pub const SPR1: u32 = 1;
pub const CPHA: u32 = 2;
pub const CPOL: u32 = 3;
pub const MSTR: u32 = 4;
pub const DORD: u32 = 5;
pub const SPE: u32 = 6;
pub const SPIE: u32 = 7;
pub const SPI2X: u32 = 0;
pub const WCOL: u32 = 6;
pub const SPIF: u32 = 7;
pub const SPDR0: u32 = 0;
pub const SPDR1: u32 = 1;
pub const SPDR2: u32 = 2;
pub const SPDR3: u32 = 3;
pub const SPDR4: u32 = 4;
pub const SPDR5: u32 = 5;
pub const SPDR6: u32 = 6;
pub const SPDR7: u32 = 7;
pub const ACIS0: u32 = 0;
pub const ACIS1: u32 = 1;
pub const ACIC: u32 = 2;
pub const ACIE: u32 = 3;
pub const ACI: u32 = 4;
pub const ACO: u32 = 5;
pub const ACBG: u32 = 6;
pub const ACD: u32 = 7;
pub const SE: u32 = 0;
pub const SM0: u32 = 1;
pub const SM1: u32 = 2;
pub const SM2: u32 = 3;
pub const PORF: u32 = 0;
pub const EXTRF: u32 = 1;
pub const BORF: u32 = 2;
pub const WDRF: u32 = 3;
pub const IVCE: u32 = 0;
pub const IVSEL: u32 = 1;
pub const PUD: u32 = 4;
pub const BODSE: u32 = 5;
pub const BODS: u32 = 6;
pub const SELFPRGEN: u32 = 0;
pub const SPMEN: u32 = 0;
pub const PGERS: u32 = 1;
pub const PGWRT: u32 = 2;
pub const BLBSET: u32 = 3;
pub const RWWSRE: u32 = 4;
pub const SIGRD: u32 = 5;
pub const RWWSB: u32 = 6;
pub const SPMIE: u32 = 7;
pub const WDP0: u32 = 0;
pub const WDP1: u32 = 1;
pub const WDP2: u32 = 2;
pub const WDE: u32 = 3;
pub const WDCE: u32 = 4;
pub const WDP3: u32 = 5;
pub const WDIE: u32 = 6;
pub const WDIF: u32 = 7;
pub const CLKPS0: u32 = 0;
pub const CLKPS1: u32 = 1;
pub const CLKPS2: u32 = 2;
pub const CLKPS3: u32 = 3;
pub const CLKPCE: u32 = 7;
pub const PRADC: u32 = 0;
pub const PRUSART0: u32 = 1;
pub const PRSPI: u32 = 2;
pub const PRTIM1: u32 = 3;
pub const PRTIM0: u32 = 5;
pub const PRTIM2: u32 = 6;
pub const PRTWI: u32 = 7;
pub const __AVR_HAVE_PRR: u32 = 239;
pub const CAL0: u32 = 0;
pub const CAL1: u32 = 1;
pub const CAL2: u32 = 2;
pub const CAL3: u32 = 3;
pub const CAL4: u32 = 4;
pub const CAL5: u32 = 5;
pub const CAL6: u32 = 6;
pub const CAL7: u32 = 7;
pub const PCIE0: u32 = 0;
pub const PCIE1: u32 = 1;
pub const PCIE2: u32 = 2;
pub const ISC00: u32 = 0;
pub const ISC01: u32 = 1;
pub const ISC10: u32 = 2;
pub const ISC11: u32 = 3;
pub const PCINT0: u32 = 0;
pub const PCINT1: u32 = 1;
pub const PCINT2: u32 = 2;
pub const PCINT3: u32 = 3;
pub const PCINT4: u32 = 4;
pub const PCINT5: u32 = 5;
pub const PCINT6: u32 = 6;
pub const PCINT7: u32 = 7;
pub const PCINT8: u32 = 0;
pub const PCINT9: u32 = 1;
pub const PCINT10: u32 = 2;
pub const PCINT11: u32 = 3;
pub const PCINT12: u32 = 4;
pub const PCINT13: u32 = 5;
pub const PCINT14: u32 = 6;
pub const PCINT16: u32 = 0;
pub const PCINT17: u32 = 1;
pub const PCINT18: u32 = 2;
pub const PCINT19: u32 = 3;
pub const PCINT20: u32 = 4;
pub const PCINT21: u32 = 5;
pub const PCINT22: u32 = 6;
pub const PCINT23: u32 = 7;
pub const TOIE0: u32 = 0;
pub const OCIE0A: u32 = 1;
pub const OCIE0B: u32 = 2;
pub const TOIE1: u32 = 0;
pub const OCIE1A: u32 = 1;
pub const OCIE1B: u32 = 2;
pub const ICIE1: u32 = 5;
pub const TOIE2: u32 = 0;
pub const OCIE2A: u32 = 1;
pub const OCIE2B: u32 = 2;
pub const ADCL0: u32 = 0;
pub const ADCL1: u32 = 1;
pub const ADCL2: u32 = 2;
pub const ADCL3: u32 = 3;
pub const ADCL4: u32 = 4;
pub const ADCL5: u32 = 5;
pub const ADCL6: u32 = 6;
pub const ADCL7: u32 = 7;
pub const ADCH0: u32 = 0;
pub const ADCH1: u32 = 1;
pub const ADCH2: u32 = 2;
pub const ADCH3: u32 = 3;
pub const ADCH4: u32 = 4;
pub const ADCH5: u32 = 5;
pub const ADCH6: u32 = 6;
pub const ADCH7: u32 = 7;
pub const ADPS0: u32 = 0;
pub const ADPS1: u32 = 1;
pub const ADPS2: u32 = 2;
pub const ADIE: u32 = 3;
pub const ADIF: u32 = 4;
pub const ADATE: u32 = 5;
pub const ADSC: u32 = 6;
pub const ADEN: u32 = 7;
pub const ADTS0: u32 = 0;
pub const ADTS1: u32 = 1;
pub const ADTS2: u32 = 2;
pub const ACME: u32 = 6;
pub const MUX0: u32 = 0;
pub const MUX1: u32 = 1;
pub const MUX2: u32 = 2;
pub const MUX3: u32 = 3;
pub const ADLAR: u32 = 5;
pub const REFS0: u32 = 6;
pub const REFS1: u32 = 7;
pub const ADC0D: u32 = 0;
pub const ADC1D: u32 = 1;
pub const ADC2D: u32 = 2;
pub const ADC3D: u32 = 3;
pub const ADC4D: u32 = 4;
pub const ADC5D: u32 = 5;
pub const AIN0D: u32 = 0;
pub const AIN1D: u32 = 1;
pub const WGM10: u32 = 0;
pub const WGM11: u32 = 1;
pub const COM1B0: u32 = 4;
pub const COM1B1: u32 = 5;
pub const COM1A0: u32 = 6;
pub const COM1A1: u32 = 7;
pub const CS10: u32 = 0;
pub const CS11: u32 = 1;
pub const CS12: u32 = 2;
pub const WGM12: u32 = 3;
pub const WGM13: u32 = 4;
pub const ICES1: u32 = 6;
pub const ICNC1: u32 = 7;
pub const FOC1B: u32 = 6;
pub const FOC1A: u32 = 7;
pub const TCNT1L0: u32 = 0;
pub const TCNT1L1: u32 = 1;
pub const TCNT1L2: u32 = 2;
pub const TCNT1L3: u32 = 3;
pub const TCNT1L4: u32 = 4;
pub const TCNT1L5: u32 = 5;
pub const TCNT1L6: u32 = 6;
pub const TCNT1L7: u32 = 7;
pub const TCNT1H0: u32 = 0;
pub const TCNT1H1: u32 = 1;
pub const TCNT1H2: u32 = 2;
pub const TCNT1H3: u32 = 3;
pub const TCNT1H4: u32 = 4;
pub const TCNT1H5: u32 = 5;
pub const TCNT1H6: u32 = 6;
pub const TCNT1H7: u32 = 7;
pub const ICR1L0: u32 = 0;
pub const ICR1L1: u32 = 1;
pub const ICR1L2: u32 = 2;
pub const ICR1L3: u32 = 3;
pub const ICR1L4: u32 = 4;
pub const ICR1L5: u32 = 5;
pub const ICR1L6: u32 = 6;
pub const ICR1L7: u32 = 7;
pub const ICR1H0: u32 = 0;
pub const ICR1H1: u32 = 1;
pub const ICR1H2: u32 = 2;
pub const ICR1H3: u32 = 3;
pub const ICR1H4: u32 = 4;
pub const ICR1H5: u32 = 5;
pub const ICR1H6: u32 = 6;
pub const ICR1H7: u32 = 7;
pub const OCR1AL0: u32 = 0;
pub const OCR1AL1: u32 = 1;
pub const OCR1AL2: u32 = 2;
pub const OCR1AL3: u32 = 3;
pub const OCR1AL4: u32 = 4;
pub const OCR1AL5: u32 = 5;
pub const OCR1AL6: u32 = 6;
pub const OCR1AL7: u32 = 7;
pub const OCR1AH0: u32 = 0;
pub const OCR1AH1: u32 = 1;
pub const OCR1AH2: u32 = 2;
pub const OCR1AH3: u32 = 3;
pub const OCR1AH4: u32 = 4;
pub const OCR1AH5: u32 = 5;
pub const OCR1AH6: u32 = 6;
pub const OCR1AH7: u32 = 7;
pub const OCR1BL0: u32 = 0;
pub const OCR1BL1: u32 = 1;
pub const OCR1BL2: u32 = 2;
pub const OCR1BL3: u32 = 3;
pub const OCR1BL4: u32 = 4;
pub const OCR1BL5: u32 = 5;
pub const OCR1BL6: u32 = 6;
pub const OCR1BL7: u32 = 7;
pub const OCR1BH0: u32 = 0;
pub const OCR1BH1: u32 = 1;
pub const OCR1BH2: u32 = 2;
pub const OCR1BH3: u32 = 3;
pub const OCR1BH4: u32 = 4;
pub const OCR1BH5: u32 = 5;
pub const OCR1BH6: u32 = 6;
pub const OCR1BH7: u32 = 7;
pub const WGM20: u32 = 0;
pub const WGM21: u32 = 1;
pub const COM2B0: u32 = 4;
pub const COM2B1: u32 = 5;
pub const COM2A0: u32 = 6;
pub const COM2A1: u32 = 7;
pub const CS20: u32 = 0;
pub const CS21: u32 = 1;
pub const CS22: u32 = 2;
pub const WGM22: u32 = 3;
pub const FOC2B: u32 = 6;
pub const FOC2A: u32 = 7;
pub const TCNT2_0: u32 = 0;
pub const TCNT2_1: u32 = 1;
pub const TCNT2_2: u32 = 2;
pub const TCNT2_3: u32 = 3;
pub const TCNT2_4: u32 = 4;
pub const TCNT2_5: u32 = 5;
pub const TCNT2_6: u32 = 6;
pub const TCNT2_7: u32 = 7;
pub const OCR2_0: u32 = 0;
pub const OCR2_1: u32 = 1;
pub const OCR2_2: u32 = 2;
pub const OCR2_3: u32 = 3;
pub const OCR2_4: u32 = 4;
pub const OCR2_5: u32 = 5;
pub const OCR2_6: u32 = 6;
pub const OCR2_7: u32 = 7;
pub const TCR2BUB: u32 = 0;
pub const TCR2AUB: u32 = 1;
pub const OCR2BUB: u32 = 2;
pub const OCR2AUB: u32 = 3;
pub const TCN2UB: u32 = 4;
pub const AS2: u32 = 5;
pub const EXCLK: u32 = 6;
pub const TWBR0: u32 = 0;
pub const TWBR1: u32 = 1;
pub const TWBR2: u32 = 2;
pub const TWBR3: u32 = 3;
pub const TWBR4: u32 = 4;
pub const TWBR5: u32 = 5;
pub const TWBR6: u32 = 6;
pub const TWBR7: u32 = 7;
pub const TWPS0: u32 = 0;
pub const TWPS1: u32 = 1;
pub const TWS3: u32 = 3;
pub const TWS4: u32 = 4;
pub const TWS5: u32 = 5;
pub const TWS6: u32 = 6;
pub const TWS7: u32 = 7;
pub const TWGCE: u32 = 0;
pub const TWA0: u32 = 1;
pub const TWA1: u32 = 2;
pub const TWA2: u32 = 3;
pub const TWA3: u32 = 4;
pub const TWA4: u32 = 5;
pub const TWA5: u32 = 6;
pub const TWA6: u32 = 7;
pub const TWD0: u32 = 0;
pub const TWD1: u32 = 1;
pub const TWD2: u32 = 2;
pub const TWD3: u32 = 3;
pub const TWD4: u32 = 4;
pub const TWD5: u32 = 5;
pub const TWD6: u32 = 6;
pub const TWD7: u32 = 7;
pub const TWIE: u32 = 0;
pub const TWEN: u32 = 2;
pub const TWWC: u32 = 3;
pub const TWSTO: u32 = 4;
pub const TWSTA: u32 = 5;
pub const TWEA: u32 = 6;
pub const TWINT: u32 = 7;
pub const TWAM0: u32 = 0;
pub const TWAM1: u32 = 1;
pub const TWAM2: u32 = 2;
pub const TWAM3: u32 = 3;
pub const TWAM4: u32 = 4;
pub const TWAM5: u32 = 5;
pub const TWAM6: u32 = 6;
pub const MPCM0: u32 = 0;
pub const U2X0: u32 = 1;
pub const UPE0: u32 = 2;
pub const DOR0: u32 = 3;
pub const FE0: u32 = 4;
pub const UDRE0: u32 = 5;
pub const TXC0: u32 = 6;
pub const RXC0: u32 = 7;
pub const TXB80: u32 = 0;
pub const RXB80: u32 = 1;
pub const UCSZ02: u32 = 2;
pub const TXEN0: u32 = 3;
pub const RXEN0: u32 = 4;
pub const UDRIE0: u32 = 5;
pub const TXCIE0: u32 = 6;
pub const RXCIE0: u32 = 7;
pub const UCPOL0: u32 = 0;
pub const UCSZ00: u32 = 1;
pub const UCPHA0: u32 = 1;
pub const UCSZ01: u32 = 2;
pub const UDORD0: u32 = 2;
pub const USBS0: u32 = 3;
pub const UPM00: u32 = 4;
pub const UPM01: u32 = 5;
pub const UMSEL00: u32 = 6;
pub const UMSEL01: u32 = 7;
pub const UBRR0_0: u32 = 0;
pub const UBRR0_1: u32 = 1;
pub const UBRR0_2: u32 = 2;
pub const UBRR0_3: u32 = 3;
pub const UBRR0_4: u32 = 4;
pub const UBRR0_5: u32 = 5;
pub const UBRR0_6: u32 = 6;
pub const UBRR0_7: u32 = 7;
pub const UBRR0_8: u32 = 0;
pub const UBRR0_9: u32 = 1;
pub const UBRR0_10: u32 = 2;
pub const UBRR0_11: u32 = 3;
pub const UDR0_0: u32 = 0;
pub const UDR0_1: u32 = 1;
pub const UDR0_2: u32 = 2;
pub const UDR0_3: u32 = 3;
pub const UDR0_4: u32 = 4;
pub const UDR0_5: u32 = 5;
pub const UDR0_6: u32 = 6;
pub const UDR0_7: u32 = 7;
pub const INT0_vect_num: u32 = 1;
pub const INT1_vect_num: u32 = 2;
pub const PCINT0_vect_num: u32 = 3;
pub const PCINT1_vect_num: u32 = 4;
pub const PCINT2_vect_num: u32 = 5;
pub const WDT_vect_num: u32 = 6;
pub const TIMER2_COMPA_vect_num: u32 = 7;
pub const TIMER2_COMPB_vect_num: u32 = 8;
pub const TIMER2_OVF_vect_num: u32 = 9;
pub const TIMER1_CAPT_vect_num: u32 = 10;
pub const TIMER1_COMPA_vect_num: u32 = 11;
pub const TIMER1_COMPB_vect_num: u32 = 12;
pub const TIMER1_OVF_vect_num: u32 = 13;
pub const TIMER0_COMPA_vect_num: u32 = 14;
pub const TIMER0_COMPB_vect_num: u32 = 15;
pub const TIMER0_OVF_vect_num: u32 = 16;
pub const SPI_STC_vect_num: u32 = 17;
pub const USART_RX_vect_num: u32 = 18;
pub const USART_UDRE_vect_num: u32 = 19;
pub const USART_TX_vect_num: u32 = 20;
pub const ADC_vect_num: u32 = 21;
pub const EE_READY_vect_num: u32 = 22;
pub const ANALOG_COMP_vect_num: u32 = 23;
pub const TWI_vect_num: u32 = 24;
pub const SPM_READY_vect_num: u32 = 25;
pub const _VECTORS_SIZE: u32 = 104;
pub const SPM_PAGESIZE: u32 = 128;
pub const RAMSTART: u32 = 256;
pub const RAMEND: u32 = 2303;
pub const XRAMSIZE: u32 = 0;
pub const XRAMEND: u32 = 2303;
pub const E2END: u32 = 1023;
pub const E2PAGESIZE: u32 = 4;
pub const FLASHEND: u32 = 32767;
pub const FUSE_MEMORY_SIZE: u32 = 3;
pub const EFUSE_DEFAULT: u32 = 255;
pub const SIGNATURE_0: u32 = 30;
pub const SIGNATURE_1: u32 = 149;
pub const SIGNATURE_2: u32 = 15;
pub const SLEEP_MODE_IDLE: u32 = 0;
pub const SLEEP_MODE_ADC: u32 = 2;
pub const SLEEP_MODE_PWR_DOWN: u32 = 4;
pub const SLEEP_MODE_PWR_SAVE: u32 = 6;
pub const SLEEP_MODE_STANDBY: u32 = 12;
pub const SLEEP_MODE_EXT_STANDBY: u32 = 14;
pub const _AVR_PORTPINS_H_: u32 = 1;
pub const PORT7: u32 = 7;
pub const PORT6: u32 = 6;
pub const PORT5: u32 = 5;
pub const PORT4: u32 = 4;
pub const PORT3: u32 = 3;
pub const PORT2: u32 = 2;
pub const PORT1: u32 = 1;
pub const PORT0: u32 = 0;
pub const DD7: u32 = 7;
pub const DD6: u32 = 6;
pub const DD5: u32 = 5;
pub const DD4: u32 = 4;
pub const DD3: u32 = 3;
pub const DD2: u32 = 2;
pub const DD1: u32 = 1;
pub const DD0: u32 = 0;
pub const PIN7: u32 = 7;
pub const PIN6: u32 = 6;
pub const PIN5: u32 = 5;
pub const PIN4: u32 = 4;
pub const PIN3: u32 = 3;
pub const PIN2: u32 = 2;
pub const PIN1: u32 = 1;
pub const PIN0: u32 = 0;
pub const PB0: u32 = 0;
pub const PB1: u32 = 1;
pub const PB2: u32 = 2;
pub const PB3: u32 = 3;
pub const PB4: u32 = 4;
pub const PB5: u32 = 5;
pub const PB6: u32 = 6;
pub const PB7: u32 = 7;
pub const PC0: u32 = 0;
pub const PC1: u32 = 1;
pub const PC2: u32 = 2;
pub const PC3: u32 = 3;
pub const PC4: u32 = 4;
pub const PC5: u32 = 5;
pub const PC6: u32 = 6;
pub const PD0: u32 = 0;
pub const PD1: u32 = 1;
pub const PD2: u32 = 2;
pub const PD3: u32 = 3;
pub const PD4: u32 = 4;
pub const PD5: u32 = 5;
pub const PD6: u32 = 6;
pub const PD7: u32 = 7;
pub const SREG_C: u32 = 0;
pub const SREG_Z: u32 = 1;
pub const SREG_N: u32 = 2;
pub const SREG_V: u32 = 3;
pub const SREG_S: u32 = 4;
pub const SREG_H: u32 = 5;
pub const SREG_T: u32 = 6;
pub const SREG_I: u32 = 7;
pub const _HAVE_AVR_STACK_POINTER_HI: u32 = 1;
pub const __AVR_LIBC_VERSION_STRING__: &'static [u8; 9usize] = b"2.0.0svn\0";
pub const __AVR_LIBC_VERSION__: u32 = 20000;
pub const __AVR_LIBC_DATE_STRING__: &'static [u8; 9usize] = b"20150209\0";
pub const __AVR_LIBC_DATE_: u32 = 20150209;
pub const __AVR_LIBC_MAJOR__: u32 = 2;
pub const __AVR_LIBC_MINOR__: u32 = 0;
pub const __AVR_LIBC_REVISION__: u32 = 0;
pub const _AVR_FUSE_H_: u32 = 1;
pub const _AVR_LOCK_H_: u32 = 1;
pub const LB_MODE_1: u32 = 255;
pub const LB_MODE_2: u32 = 254;
pub const LB_MODE_3: u32 = 252;
pub const BLB0_MODE_1: u32 = 255;
pub const BLB0_MODE_2: u32 = 251;
pub const BLB0_MODE_3: u32 = 243;
pub const BLB0_MODE_4: u32 = 247;
pub const BLB1_MODE_1: u32 = 255;
pub const BLB1_MODE_2: u32 = 239;
pub const BLB1_MODE_3: u32 = 207;
pub const BLB1_MODE_4: u32 = 223;
pub const LOCKBITS_DEFAULT: u32 = 255;
pub const _UTIL_TWI_H_: u32 = 1;
pub const TW_START: u32 = 8;
pub const TW_REP_START: u32 = 16;
pub const TW_MT_SLA_ACK: u32 = 24;
pub const TW_MT_SLA_NACK: u32 = 32;
pub const TW_MT_DATA_ACK: u32 = 40;
pub const TW_MT_DATA_NACK: u32 = 48;
pub const TW_MT_ARB_LOST: u32 = 56;
pub const TW_MR_ARB_LOST: u32 = 56;
pub const TW_MR_SLA_ACK: u32 = 64;
pub const TW_MR_SLA_NACK: u32 = 72;
pub const TW_MR_DATA_ACK: u32 = 80;
pub const TW_MR_DATA_NACK: u32 = 88;
pub const TW_ST_SLA_ACK: u32 = 168;
pub const TW_ST_ARB_LOST_SLA_ACK: u32 = 176;
pub const TW_ST_DATA_ACK: u32 = 184;
pub const TW_ST_DATA_NACK: u32 = 192;
pub const TW_ST_LAST_DATA: u32 = 200;
pub const TW_SR_SLA_ACK: u32 = 96;
pub const TW_SR_ARB_LOST_SLA_ACK: u32 = 104;
pub const TW_SR_GCALL_ACK: u32 = 112;
pub const TW_SR_ARB_LOST_GCALL_ACK: u32 = 120;
pub const TW_SR_DATA_ACK: u32 = 128;
pub const TW_SR_DATA_NACK: u32 = 136;
pub const TW_SR_GCALL_DATA_ACK: u32 = 144;
pub const TW_SR_GCALL_DATA_NACK: u32 = 152;
pub const TW_SR_STOP: u32 = 160;
pub const TW_NO_INFO: u32 = 248;
pub const TW_BUS_ERROR: u32 = 0;
pub const TW_READ: u32 = 1;
pub const TW_WRITE: u32 = 0;
pub const _AVR_SIGNATURE_H_: u32 = 1;
pub const _AVR_SLEEP_H_: u32 = 1;
pub const __HAS_DELAY_CYCLES: u32 = 1;
pub const __PGMSPACE_H_: u32 = 1;
pub const _AVR_CPUFUNC_H_: u32 = 1;
pub const _AVR_POWER_H_: u32 = 1;
pub const _AVR_BOOT_H_: u32 = 1;
pub const _AVR_EEPROM_H_: u32 = 1;
pub const MB_LEN_MAX: u32 = 1;
pub const __SPM_ENABLE: u32 = 0;
pub const __COMMON_ASB: u32 = 6;
pub const __COMMON_ASRE: u32 = 4;
pub const BLB12: u32 = 5;
pub const BLB11: u32 = 4;
pub const BLB02: u32 = 3;
pub const BLB01: u32 = 2;
pub const GET_LOW_FUSE_BITS: u32 = 0;
pub const GET_LOCK_BITS: u32 = 1;
pub const GET_EXTENDED_FUSE_BITS: u32 = 2;
pub const GET_HIGH_FUSE_BITS: u32 = 3;
extern "C" {
pub static mut errno: ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for an alphanumeric character. It is equivalent to <tt>(isalpha(c)"]
#[doc = "|| isdigit(c))</tt>."]
pub fn isalnum(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for an alphabetic character. It is equivalent to <tt>(isupper(c) ||"]
#[doc = "islower(c))</tt>."]
pub fn isalpha(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks whether \\c c is a 7-bit unsigned char value that fits into the"]
#[doc = "ASCII character set."]
pub fn isascii(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for a blank character, that is, a space or a tab."]
pub fn isblank(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for a control character."]
pub fn iscntrl(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for a digit (0 through 9)."]
pub fn isdigit(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for any printable character except space."]
pub fn isgraph(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for a lower-case character."]
pub fn islower(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for any printable character including space."]
pub fn isprint(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for any printable character which is not a space or an alphanumeric"]
#[doc = "character."]
pub fn ispunct(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for white-space characters. For the avr-libc library, these are:"]
#[doc = "space, form-feed ('\\\\f'), newline ('\\\\n'), carriage return ('\\\\r'),"]
#[doc = "horizontal tab ('\\\\t'), and vertical tab ('\\\\v')."]
pub fn isspace(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for an uppercase letter."]
pub fn isupper(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 8 9 a b c d e"]
#[doc = "f A B C D E F."]
pub fn isxdigit(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Converts \\c c to a 7-bit unsigned char value that fits into the ASCII"]
#[doc = "character set, by clearing the high-order bits."]
#[doc = ""]
#[doc = "\\warning Many people will be unhappy if you use this function. This"]
#[doc = "function will convert accented letters into random characters."]
pub fn toascii(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Converts the letter \\c c to lower case, if possible."]
pub fn tolower(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup ctype"]
#[doc = ""]
#[doc = "Converts the letter \\c c to upper case, if possible."]
pub fn toupper(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
pub type size_t = ::rust_ctypes::c_uint;
pub type wchar_t = ::rust_ctypes::c_int;
#[doc = " Result type for function div()."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct div_t {
#[doc = "< The Quotient."]
pub quot: ::rust_ctypes::c_int,
#[doc = "< The Remainder."]
pub rem: ::rust_ctypes::c_int,
}
#[test]
fn bindgen_test_layout_div_t() {
assert_eq!(
::core::mem::size_of::<div_t>(),
4usize,
concat!("Size of: ", stringify!(div_t))
);
assert_eq!(
::core::mem::align_of::<div_t>(),
1usize,
concat!("Alignment of ", stringify!(div_t))
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<div_t>())).quot as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(div_t),
"::",
stringify!(quot)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<div_t>())).rem as *const _ as usize },
2usize,
concat!(
"Offset of field: ",
stringify!(div_t),
"::",
stringify!(rem)
)
);
}
#[doc = " Result type for function ldiv()."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ldiv_t {
#[doc = "< The Quotient."]
pub quot: ::rust_ctypes::c_long,
#[doc = "< The Remainder."]
pub rem: ::rust_ctypes::c_long,
}
#[test]
fn bindgen_test_layout_ldiv_t() {
assert_eq!(
::core::mem::size_of::<ldiv_t>(),
8usize,
concat!("Size of: ", stringify!(ldiv_t))
);
assert_eq!(
::core::mem::align_of::<ldiv_t>(),
1usize,
concat!("Alignment of ", stringify!(ldiv_t))
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<ldiv_t>())).quot as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(ldiv_t),
"::",
stringify!(quot)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<ldiv_t>())).rem as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(ldiv_t),
"::",
stringify!(rem)
)
);
}
#[doc = " Comparision function type for qsort(), just for convenience."]
pub type __compar_fn_t = ::core::option::Option<
unsafe extern "C" fn(
arg1: *const ::rust_ctypes::c_void,
arg2: *const ::rust_ctypes::c_void,
) -> ::rust_ctypes::c_int,
>;
extern "C" {
#[doc = " The abort() function causes abnormal program termination to occur."]
#[doc = "This realization disables interrupts and jumps to _exit() function"]
#[doc = "with argument equal to 1. In the limited AVR environment, execution is"]
#[doc = "effectively halted by entering an infinite loop."]
pub fn abort();
}
extern "C" {
#[doc = " The abs() function computes the absolute value of the integer \\c i."]
#[doc = "\\note The abs() and labs() functions are builtins of gcc."]
pub fn abs(__i: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " The labs() function computes the absolute value of the long integer"]
#[doc = "\\c i."]
#[doc = "\\note The abs() and labs() functions are builtins of gcc."]
pub fn labs(__i: ::rust_ctypes::c_long) -> ::rust_ctypes::c_long;
}
extern "C" {
#[doc = "The bsearch() function searches an array of \\c nmemb objects, the"]
#[doc = "initial member of which is pointed to by \\c base, for a member"]
#[doc = "that matches the object pointed to by \\c key. The size of each"]
#[doc = "member of the array is specified by \\c size."]
#[doc = ""]
#[doc = "The contents of the array should be in ascending sorted order"]
#[doc = "according to the comparison function referenced by \\c compar."]
#[doc = "The \\c compar routine is expected to have two arguments which"]
#[doc = "point to the key object and to an array member, in that order,"]
#[doc = "and should return an integer less than, equal to, or greater than"]
#[doc = "zero if the key object is found, respectively, to be less than,"]
#[doc = "to match, or be greater than the array member."]
#[doc = ""]
#[doc = "The bsearch() function returns a pointer to a matching member of"]
#[doc = "the array, or a null pointer if no match is found. If two"]
#[doc = "members compare as equal, which member is matched is unspecified."]
pub fn bsearch(
__key: *const ::rust_ctypes::c_void,
__base: *const ::rust_ctypes::c_void,
__nmemb: size_t,
__size: size_t,
__compar: ::core::option::Option<
unsafe extern "C" fn(
arg1: *const ::rust_ctypes::c_void,
arg2: *const ::rust_ctypes::c_void,
) -> ::rust_ctypes::c_int,
>,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = "The div() function computes the value \\c num/denom and returns"]
#[doc = "the quotient and remainder in a structure named \\c div_t that"]
#[doc = "contains two int members named \\c quot and \\c rem."]
#[link_name = "\u{1}__divmodhi4"]
pub fn div(__num: ::rust_ctypes::c_int, __denom: ::rust_ctypes::c_int) -> div_t;
}
extern "C" {
#[doc = "The ldiv() function computes the value \\c num/denom and returns"]
#[doc = "the quotient and remainder in a structure named \\c ldiv_t that"]
#[doc = "contains two long integer members named \\c quot and \\c rem."]
#[link_name = "\u{1}__divmodsi4"]
pub fn ldiv(__num: ::rust_ctypes::c_long, __denom: ::rust_ctypes::c_long) -> ldiv_t;
}
extern "C" {
#[doc = "The qsort() function is a modified partition-exchange sort, or"]
#[doc = "quicksort."]
#[doc = ""]
#[doc = "The qsort() function sorts an array of \\c nmemb objects, the"]
#[doc = "initial member of which is pointed to by \\c base. The size of"]
#[doc = "each object is specified by \\c size. The contents of the array"]
#[doc = "base are sorted in ascending order according to a comparison"]
#[doc = "function pointed to by \\c compar, which requires two arguments"]
#[doc = "pointing to the objects being compared."]
#[doc = ""]
#[doc = "The comparison function must return an integer less than, equal"]
#[doc = "to, or greater than zero if the first argument is considered to"]
#[doc = "be respectively less than, equal to, or greater than the second."]
pub fn qsort(
__base: *mut ::rust_ctypes::c_void,
__nmemb: size_t,
__size: size_t,
__compar: __compar_fn_t,
);
}
extern "C" {
#[doc = "The strtol() function converts the string in \\c nptr to a long"]
#[doc = "value. The conversion is done according to the given base, which"]
#[doc = "must be between 2 and 36 inclusive, or be the special value 0."]
#[doc = ""]
#[doc = "The string may begin with an arbitrary amount of white space (as"]
#[doc = "determined by isspace()) followed by a single optional \\c '+' or \\c '-'"]
#[doc = "sign. If \\c base is zero or 16, the string may then include a"]
#[doc = "\\c \"0x\" prefix, and the number will be read in base 16; otherwise,"]
#[doc = "a zero base is taken as 10 (decimal) unless the next character is"]
#[doc = "\\c '0', in which case it is taken as 8 (octal)."]
#[doc = ""]
#[doc = "The remainder of the string is converted to a long value in the"]
#[doc = "obvious manner, stopping at the first character which is not a"]
#[doc = "valid digit in the given base. (In bases above 10, the letter \\c 'A'"]
#[doc = "in either upper or lower case represents 10, \\c 'B' represents 11,"]
#[doc = "and so forth, with \\c 'Z' representing 35.)"]
#[doc = ""]
#[doc = "If \\c endptr is not NULL, strtol() stores the address of the first"]
#[doc = "invalid character in \\c *endptr. If there were no digits at all,"]
#[doc = "however, strtol() stores the original value of \\c nptr in \\c"]
#[doc = "endptr. (Thus, if \\c *nptr is not \\c '\\\\0' but \\c **endptr is \\c '\\\\0'"]
#[doc = "on return, the entire string was valid.)"]
#[doc = ""]
#[doc = "The strtol() function returns the result of the conversion, unless"]
#[doc = "the value would underflow or overflow. If no conversion could be"]
#[doc = "performed, 0 is returned. If an overflow or underflow occurs, \\c"]
#[doc = "errno is set to \\ref avr_errno \"ERANGE\" and the function return value"]
#[doc = "is clamped to \\c LONG_MIN or \\c LONG_MAX, respectively."]
pub fn strtol(
__nptr: *const ::rust_ctypes::c_char,
__endptr: *mut *mut ::rust_ctypes::c_char,
__base: ::rust_ctypes::c_int,
) -> ::rust_ctypes::c_long;
}
extern "C" {
#[doc = "The strtoul() function converts the string in \\c nptr to an"]
#[doc = "unsigned long value. The conversion is done according to the"]
#[doc = "given base, which must be between 2 and 36 inclusive, or be the"]
#[doc = "special value 0."]
#[doc = ""]
#[doc = "The string may begin with an arbitrary amount of white space (as"]
#[doc = "determined by isspace()) followed by a single optional \\c '+' or \\c '-'"]
#[doc = "sign. If \\c base is zero or 16, the string may then include a"]
#[doc = "\\c \"0x\" prefix, and the number will be read in base 16; otherwise,"]
#[doc = "a zero base is taken as 10 (decimal) unless the next character is"]
#[doc = "\\c '0', in which case it is taken as 8 (octal)."]
#[doc = ""]
#[doc = "The remainder of the string is converted to an unsigned long value"]
#[doc = "in the obvious manner, stopping at the first character which is"]
#[doc = "not a valid digit in the given base. (In bases above 10, the"]
#[doc = "letter \\c 'A' in either upper or lower case represents 10, \\c 'B'"]
#[doc = "represents 11, and so forth, with \\c 'Z' representing 35.)"]
#[doc = ""]
#[doc = "If \\c endptr is not NULL, strtoul() stores the address of the first"]
#[doc = "invalid character in \\c *endptr. If there were no digits at all,"]
#[doc = "however, strtoul() stores the original value of \\c nptr in \\c"]
#[doc = "endptr. (Thus, if \\c *nptr is not \\c '\\\\0' but \\c **endptr is \\c '\\\\0'"]
#[doc = "on return, the entire string was valid.)"]
#[doc = ""]
#[doc = "The strtoul() function return either the result of the conversion"]
#[doc = "or, if there was a leading minus sign, the negation of the result"]
#[doc = "of the conversion, unless the original (non-negated) value would"]
#[doc = "overflow; in the latter case, strtoul() returns ULONG_MAX, and \\c"]
#[doc = "errno is set to \\ref avr_errno \"ERANGE\". If no conversion could"]
#[doc = "be performed, 0 is returned."]
pub fn strtoul(
__nptr: *const ::rust_ctypes::c_char,
__endptr: *mut *mut ::rust_ctypes::c_char,
__base: ::rust_ctypes::c_int,
) -> ::rust_ctypes::c_ulong;
}
extern "C" {
#[doc = "The atol() function converts the initial portion of the string"]
#[doc = "pointed to by \\p s to long integer representation. In contrast to"]
#[doc = ""]
#[doc = "\\code strtol(s, (char **)NULL, 10); \\endcode"]
#[doc = ""]
#[doc = "this function does not detect overflow (\\c errno is not changed and"]
#[doc = "the result value is not predictable), uses smaller memory (flash and"]
#[doc = "stack) and works more quickly."]
pub fn atol(__s: *const ::rust_ctypes::c_char) -> ::rust_ctypes::c_long;
}
extern "C" {
#[doc = "The atoi() function converts the initial portion of the string"]
#[doc = "pointed to by \\p s to integer representation. In contrast to"]
#[doc = ""]
#[doc = "\\code (int)strtol(s, (char **)NULL, 10); \\endcode"]
#[doc = ""]
#[doc = "this function does not detect overflow (\\c errno is not changed and"]
#[doc = "the result value is not predictable), uses smaller memory (flash and"]
#[doc = "stack) and works more quickly."]
pub fn atoi(__s: *const ::rust_ctypes::c_char) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The exit() function terminates the application. Since there is no"]
#[doc = "environment to return to, \\c status is ignored, and code execution"]
#[doc = "will eventually reach an infinite loop, thereby effectively halting"]
#[doc = "all code processing. Before entering the infinite loop, interrupts"]
#[doc = "are globally disabled."]
#[doc = ""]
#[doc = "In a C++ context, global destructors will be called before halting"]
#[doc = "execution."]
pub fn exit(__status: ::rust_ctypes::c_int);
}
extern "C" {
#[doc = "The malloc() function allocates \\c size bytes of memory."]
#[doc = "If malloc() fails, a NULL pointer is returned."]
#[doc = ""]
#[doc = "Note that malloc() does \\e not initialize the returned memory to"]
#[doc = "zero bytes."]
#[doc = ""]
#[doc = "See the chapter about \\ref malloc \"malloc() usage\" for implementation"]
#[doc = "details."]
pub fn malloc(__size: size_t) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = "The free() function causes the allocated memory referenced by \\c"]
#[doc = "ptr to be made available for future allocations. If \\c ptr is"]
#[doc = "NULL, no action occurs."]
pub fn free(__ptr: *mut ::rust_ctypes::c_void);
}
extern "C" {
pub static mut __malloc_margin: size_t;
}
extern "C" {
pub static mut __malloc_heap_start: *mut ::rust_ctypes::c_char;
}
extern "C" {
pub static mut __malloc_heap_end: *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = "Allocate \\c nele elements of \\c size each. Identical to calling"]
#[doc = "\\c malloc() using <tt>nele * size</tt> as argument, except the"]
#[doc = "allocated memory will be cleared to zero."]
pub fn calloc(__nele: size_t, __size: size_t) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = "The realloc() function tries to change the size of the region"]
#[doc = "allocated at \\c ptr to the new \\c size value. It returns a"]
#[doc = "pointer to the new region. The returned pointer might be the"]
#[doc = "same as the old pointer, or a pointer to a completely different"]
#[doc = "region."]
#[doc = ""]
#[doc = "The contents of the returned region up to either the old or the new"]
#[doc = "size value (whatever is less) will be identical to the contents of"]
#[doc = "the old region, even in case a new region had to be allocated."]
#[doc = ""]
#[doc = "It is acceptable to pass \\c ptr as NULL, in which case realloc()"]
#[doc = "will behave identical to malloc()."]
#[doc = ""]
#[doc = "If the new memory cannot be allocated, realloc() returns NULL, and"]
#[doc = "the region at \\c ptr will not be changed."]
pub fn realloc(__ptr: *mut ::rust_ctypes::c_void, __size: size_t)
-> *mut ::rust_ctypes::c_void;
}
extern "C" {
pub fn strtod(
__nptr: *const ::rust_ctypes::c_char,
__endptr: *mut *mut ::rust_ctypes::c_char,
) -> f64;
}
extern "C" {
#[doc = " \\ingroup avr_stdlib"]
#[doc = "\\fn double atof (const char *nptr)"]
#[doc = ""]
#[doc = "The atof() function converts the initial portion of the string pointed"]
#[doc = "to by \\a nptr to double representation."]
#[doc = ""]
#[doc = "It is equivalent to calling"]
#[doc = "\\code strtod(nptr, (char **)0); \\endcode"]
pub fn atof(__nptr: *const ::rust_ctypes::c_char) -> f64;
}
extern "C" {
#[doc = "The rand() function computes a sequence of pseudo-random integers in the"]
#[doc = "range of 0 to \\c RAND_MAX (as defined by the header file <stdlib.h>)."]
#[doc = ""]
#[doc = "The srand() function sets its argument \\c seed as the seed for a new"]
#[doc = "sequence of pseudo-random numbers to be returned by rand(). These"]
#[doc = "sequences are repeatable by calling srand() with the same seed value."]
#[doc = ""]
#[doc = "If no seed value is provided, the functions are automatically seeded with"]
#[doc = "a value of 1."]
#[doc = ""]
#[doc = "In compliance with the C standard, these functions operate on"]
#[doc = "\\c int arguments. Since the underlying algorithm already uses"]
#[doc = "32-bit calculations, this causes a loss of precision. See"]
#[doc = "\\c random() for an alternate set of functions that retains full"]
#[doc = "32-bit precision."]
pub fn rand() -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Pseudo-random number generator seeding; see rand()."]
pub fn srand(__seed: ::rust_ctypes::c_uint);
}
extern "C" {
#[doc = "Variant of rand() that stores the context in the user-supplied"]
#[doc = "variable located at \\c ctx instead of a static library variable"]
#[doc = "so the function becomes re-entrant."]
pub fn rand_r(__ctx: *mut ::rust_ctypes::c_ulong) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "\\ingroup avr_stdlib"]
#[doc = "The random() function computes a sequence of pseudo-random integers in the"]
#[doc = "range of 0 to \\c RANDOM_MAX (as defined by the header file <stdlib.h>)."]
#[doc = ""]
#[doc = "The srandom() function sets its argument \\c seed as the seed for a new"]
#[doc = "sequence of pseudo-random numbers to be returned by rand(). These"]
#[doc = "sequences are repeatable by calling srandom() with the same seed value."]
#[doc = ""]
#[doc = "If no seed value is provided, the functions are automatically seeded with"]
#[doc = "a value of 1."]
pub fn random() -> ::rust_ctypes::c_long;
}
extern "C" {
#[doc = "\\ingroup avr_stdlib"]
#[doc = "Pseudo-random number generator seeding; see random()."]
pub fn srandom(__seed: ::rust_ctypes::c_ulong);
}
extern "C" {
#[doc = "\\ingroup avr_stdlib"]
#[doc = "Variant of random() that stores the context in the user-supplied"]
#[doc = "variable located at \\c ctx instead of a static library variable"]
#[doc = "so the function becomes re-entrant."]
pub fn random_r(__ctx: *mut ::rust_ctypes::c_ulong) -> ::rust_ctypes::c_long;
}
extern "C" {
#[doc = "\\ingroup avr_stdlib"]
#[doc = "The dtostre() function converts the double value passed in \\c val into"]
#[doc = "an ASCII representation that will be stored under \\c s. The caller"]
#[doc = "is responsible for providing sufficient storage in \\c s."]
#[doc = ""]
#[doc = "Conversion is done in the format \\c \"[-]d.ddde�dd\" where there is"]
#[doc = "one digit before the decimal-point character and the number of"]
#[doc = "digits after it is equal to the precision \\c prec; if the precision"]
#[doc = "is zero, no decimal-point character appears. If \\c flags has the"]
#[doc = "DTOSTR_UPPERCASE bit set, the letter \\c 'E' (rather than \\c 'e' ) will be"]
#[doc = "used to introduce the exponent. The exponent always contains two"]
#[doc = "digits; if the value is zero, the exponent is \\c \"00\"."]
#[doc = ""]
#[doc = "If \\c flags has the DTOSTR_ALWAYS_SIGN bit set, a space character"]
#[doc = "will be placed into the leading position for positive numbers."]
#[doc = ""]
#[doc = "If \\c flags has the DTOSTR_PLUS_SIGN bit set, a plus sign will be"]
#[doc = "used instead of a space character in this case."]
#[doc = ""]
#[doc = "The dtostre() function returns the pointer to the converted string \\c s."]
pub fn dtostre(
__val: f64,
__s: *mut ::rust_ctypes::c_char,
__prec: ::rust_ctypes::c_uchar,
__flags: ::rust_ctypes::c_uchar,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = "\\ingroup avr_stdlib"]
#[doc = "The dtostrf() function converts the double value passed in \\c val into"]
#[doc = "an ASCII representationthat will be stored under \\c s. The caller"]
#[doc = "is responsible for providing sufficient storage in \\c s."]
#[doc = ""]
#[doc = "Conversion is done in the format \\c \"[-]d.ddd\". The minimum field"]
#[doc = "width of the output string (including the possible \\c '.' and the possible"]
#[doc = "sign for negative values) is given in \\c width, and \\c prec determines"]
#[doc = "the number of digits after the decimal sign. \\c width is signed value,"]
#[doc = "negative for left adjustment."]
#[doc = ""]
#[doc = "The dtostrf() function returns the pointer to the converted string \\c s."]
pub fn dtostrf(
__val: f64,
__width: ::rust_ctypes::c_schar,
__prec: ::rust_ctypes::c_uchar,
__s: *mut ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
pub fn atexit(arg1: ::core::option::Option<unsafe extern "C" fn()>) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn system(arg1: *const ::rust_ctypes::c_char) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn getenv(arg1: *const ::rust_ctypes::c_char) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
pub fn __assert(
__func: *const ::rust_ctypes::c_char,
__file: *const ::rust_ctypes::c_char,
__lineno: ::rust_ctypes::c_int,
__sexp: *const ::rust_ctypes::c_char,
);
}
#[doc = " \\ingroup avr_stdint"]
#[doc = "signed int with at least 8 bits."]
pub type int_least8_t = i8;
#[doc = " \\ingroup avr_stdint"]
#[doc = "unsigned int with at least 8 bits."]
pub type uint_least8_t = u8;
#[doc = " \\ingroup avr_stdint"]
#[doc = "signed int with at least 16 bits."]
pub type int_least16_t = i16;
#[doc = " \\ingroup avr_stdint"]
#[doc = "unsigned int with at least 16 bits."]
pub type uint_least16_t = u16;
#[doc = " \\ingroup avr_stdint"]
#[doc = "signed int with at least 32 bits."]
pub type int_least32_t = i32;
#[doc = " \\ingroup avr_stdint"]
#[doc = "unsigned int with at least 32 bits."]
pub type uint_least32_t = u32;
#[doc = " \\ingroup avr_stdint"]
#[doc = "signed int with at least 64 bits."]
#[doc = "\\note This type is not available when the compiler"]
#[doc = "option -mint8 is in effect."]
pub type int_least64_t = i64;
#[doc = " \\ingroup avr_stdint"]
#[doc = "unsigned int with at least 64 bits."]
#[doc = "\\note This type is not available when the compiler"]
#[doc = "option -mint8 is in effect."]
pub type uint_least64_t = u64;
#[doc = " \\ingroup avr_stdint"]
#[doc = "fastest signed int with at least 8 bits."]
pub type int_fast8_t = i8;
#[doc = " \\ingroup avr_stdint"]
#[doc = "fastest unsigned int with at least 8 bits."]
pub type uint_fast8_t = u8;
#[doc = " \\ingroup avr_stdint"]
#[doc = "fastest signed int with at least 16 bits."]
pub type int_fast16_t = i16;
#[doc = " \\ingroup avr_stdint"]
#[doc = "fastest unsigned int with at least 16 bits."]
pub type uint_fast16_t = u16;
#[doc = " \\ingroup avr_stdint"]
#[doc = "fastest signed int with at least 32 bits."]
pub type int_fast32_t = i32;
#[doc = " \\ingroup avr_stdint"]
#[doc = "fastest unsigned int with at least 32 bits."]
pub type uint_fast32_t = u32;
#[doc = " \\ingroup avr_stdint"]
#[doc = "fastest signed int with at least 64 bits."]
#[doc = "\\note This type is not available when the compiler"]
#[doc = "option -mint8 is in effect."]
pub type int_fast64_t = i64;
#[doc = " \\ingroup avr_stdint"]
#[doc = "fastest unsigned int with at least 64 bits."]
#[doc = "\\note This type is not available when the compiler"]
#[doc = "option -mint8 is in effect."]
pub type uint_fast64_t = u64;
#[doc = " \\ingroup avr_stdint"]
#[doc = "largest signed int available."]
pub type intmax_t = i64;
#[doc = " \\ingroup avr_stdint"]
#[doc = "largest unsigned int available."]
pub type uintmax_t = u64;
#[doc = " \\ingroup avr_inttypes"]
#[doc = "signed integer type that can hold a pointer > 64 KB"]
pub type int_farptr_t = i32;
#[doc = " \\ingroup avr_inttypes"]
#[doc = "unsigned integer type that can hold a pointer > 64 KB"]
pub type uint_farptr_t = u32;
pub type off_t = ::rust_ctypes::c_long;
#[doc = "time_t represents seconds elapsed from Midnight, Jan 1 2000 UTC (the Y2K 'epoch')."]
#[doc = "Its range allows this implementation to represent time up to Tue Feb 7 06:28:15 2136 UTC."]
pub type time_t = u32;
extern "C" {
#[doc = "The time function returns the systems current time stamp."]
#[doc = "If timer is not a null pointer, the return value is also assigned to the object it points to."]
pub fn time(timer: *mut time_t) -> time_t;
}
extern "C" {
#[doc = "The difftime function returns the difference between two binary time stamps,"]
#[doc = "time1 - time0."]
pub fn difftime(time1: time_t, time0: time_t) -> i32;
}
#[doc = "The tm structure contains a representation of time 'broken down' into components of the"]
#[doc = "Gregorian calendar."]
#[doc = ""]
#[doc = "The value of tm_isdst is zero if Daylight Saving Time is not in effect, and is negative if"]
#[doc = "the information is not available."]
#[doc = ""]
#[doc = "When Daylight Saving Time is in effect, the value represents the number of"]
#[doc = "seconds the clock is advanced."]
#[doc = ""]
#[doc = "See the set_dst() function for more information about Daylight Saving."]
#[doc = ""]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tm {
#[doc = "< seconds after the minute - [ 0 to 59 ]"]
pub tm_sec: i8,
#[doc = "< minutes after the hour - [ 0 to 59 ]"]
pub tm_min: i8,
#[doc = "< hours since midnight - [ 0 to 23 ]"]
pub tm_hour: i8,
#[doc = "< day of the month - [ 1 to 31 ]"]
pub tm_mday: i8,
#[doc = "< days since Sunday - [ 0 to 6 ]"]
pub tm_wday: i8,
#[doc = "< months since January - [ 0 to 11 ]"]
pub tm_mon: i8,
#[doc = "< years since 1900"]
pub tm_year: i16,
#[doc = "< days since January 1 - [ 0 to 365 ]"]
pub tm_yday: i16,
#[doc = "< Daylight Saving Time flag"]
pub tm_isdst: i16,
}
#[test]
fn bindgen_test_layout_tm() {
assert_eq!(
::core::mem::size_of::<tm>(),
12usize,
concat!("Size of: ", stringify!(tm))
);
assert_eq!(
::core::mem::align_of::<tm>(),
1usize,
concat!("Alignment of ", stringify!(tm))
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<tm>())).tm_sec as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(tm),
"::",
stringify!(tm_sec)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<tm>())).tm_min as *const _ as usize },
1usize,
concat!(
"Offset of field: ",
stringify!(tm),
"::",
stringify!(tm_min)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<tm>())).tm_hour as *const _ as usize },
2usize,
concat!(
"Offset of field: ",
stringify!(tm),
"::",
stringify!(tm_hour)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<tm>())).tm_mday as *const _ as usize },
3usize,
concat!(
"Offset of field: ",
stringify!(tm),
"::",
stringify!(tm_mday)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<tm>())).tm_wday as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(tm),
"::",
stringify!(tm_wday)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<tm>())).tm_mon as *const _ as usize },
5usize,
concat!(
"Offset of field: ",
stringify!(tm),
"::",
stringify!(tm_mon)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<tm>())).tm_year as *const _ as usize },
6usize,
concat!(
"Offset of field: ",
stringify!(tm),
"::",
stringify!(tm_year)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<tm>())).tm_yday as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(tm),
"::",
stringify!(tm_yday)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<tm>())).tm_isdst as *const _ as usize },
10usize,
concat!(
"Offset of field: ",
stringify!(tm),
"::",
stringify!(tm_isdst)
)
);
}
pub type clock_t = ::rust_ctypes::c_ulong;
extern "C" {
pub static mut _CLOCKS_PER_SEC_: *mut ::rust_ctypes::c_char;
}
extern "C" {
pub fn clock() -> clock_t;
}
extern "C" {
#[doc = "This function 'compiles' the elements of a broken-down time structure, returning a binary time stamp."]
#[doc = "The elements of timeptr are interpreted as representing Local Time."]
#[doc = ""]
#[doc = "The original values of the tm_wday and tm_yday elements of the structure are ignored,"]
#[doc = "and the original values of the other elements are not restricted to the ranges stated for struct tm."]
#[doc = ""]
#[doc = "On successful completion, the values of all elements of timeptr are set to the appropriate range."]
pub fn mktime(timeptr: *mut tm) -> time_t;
}
extern "C" {
#[doc = "This function 'compiles' the elements of a broken-down time structure, returning a binary time stamp."]
#[doc = "The elements of timeptr are interpreted as representing UTC."]
#[doc = ""]
#[doc = "The original values of the tm_wday and tm_yday elements of the structure are ignored,"]
#[doc = "and the original values of the other elements are not restricted to the ranges stated for struct tm."]
#[doc = ""]
#[doc = "Unlike mktime(), this function DOES NOT modify the elements of timeptr."]
pub fn mk_gmtime(timeptr: *const tm) -> time_t;
}
extern "C" {
#[doc = "The gmtime function converts the time stamp pointed to by timer into broken-down time,"]
#[doc = "expressed as UTC."]
pub fn gmtime(timer: *const time_t) -> *mut tm;
}
extern "C" {
#[doc = "Re entrant version of gmtime()."]
pub fn gmtime_r(timer: *const time_t, timeptr: *mut tm);
}
extern "C" {
#[doc = "The localtime function converts the time stamp pointed to by timer into broken-down time,"]
#[doc = "expressed as Local time."]
pub fn localtime(timer: *const time_t) -> *mut tm;
}
extern "C" {
#[doc = "Re entrant version of localtime()."]
pub fn localtime_r(timer: *const time_t, timeptr: *mut tm);
}
extern "C" {
#[doc = "The asctime function converts the broken-down time of timeptr, into an ascii string in the form"]
#[doc = ""]
#[doc = "Sun Mar 23 01:03:52 2013"]
pub fn asctime(timeptr: *const tm) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = "Re entrant version of asctime()."]
pub fn asctime_r(timeptr: *const tm, buf: *mut ::rust_ctypes::c_char);
}
extern "C" {
#[doc = "The ctime function is equivalent to asctime(localtime(timer))"]
pub fn ctime(timer: *const time_t) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = "Re entrant version of ctime()."]
pub fn ctime_r(timer: *const time_t, buf: *mut ::rust_ctypes::c_char);
}
extern "C" {
#[doc = "The isotime function constructs an ascii string in the form"]
#[doc = "\\code2013-03-23 01:03:52\\endcode"]
pub fn isotime(tmptr: *const tm) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = "Re entrant version of isotime()"]
pub fn isotime_r(arg1: *const tm, arg2: *mut ::rust_ctypes::c_char);
}
extern "C" {
#[doc = "A complete description of strftime() is beyond the pale of this document."]
#[doc = "Refer to ISO/IEC document 9899 for details."]
#[doc = ""]
#[doc = "All conversions are made using the 'C Locale', ignoring the E or O modifiers. Due to the lack of"]
#[doc = "a time zone 'name', the 'Z' conversion is also ignored."]
pub fn strftime(
s: *mut ::rust_ctypes::c_char,
maxsize: size_t,
format: *const ::rust_ctypes::c_char,
timeptr: *const tm,
) -> size_t;
}
extern "C" {
#[doc = "Specify the Daylight Saving function."]
#[doc = ""]
#[doc = "The Daylight Saving function should examine its parameters to determine whether"]
#[doc = "Daylight Saving is in effect, and return a value appropriate for tm_isdst."]
#[doc = ""]
#[doc = "Working examples for the USA and the EU are available.."]
#[doc = ""]
#[doc = "\\code #include <util/eu_dst.h>\\endcode"]
#[doc = "for the European Union, and"]
#[doc = "\\code #include <util/usa_dst.h>\\endcode"]
#[doc = "for the United States"]
#[doc = ""]
#[doc = "If a Daylight Saving function is not specified, the system will ignore Daylight Saving."]
pub fn set_dst(
arg1: ::core::option::Option<
unsafe extern "C" fn(arg1: *const time_t, arg2: *mut i32) -> ::rust_ctypes::c_int,
>,
);
}
extern "C" {
#[doc = "Set the 'time zone'. The parameter is given in seconds East of the Prime Meridian."]
#[doc = "Example for New York City:"]
#[doc = "\\code set_zone(-5 * ONE_HOUR);\\endcode"]
#[doc = ""]
#[doc = "If the time zone is not set, the time system will operate in UTC only."]
pub fn set_zone(arg1: i32);
}
extern "C" {
#[doc = "Initialize the system time. Examples are..."]
#[doc = ""]
#[doc = "From a Clock / Calendar type RTC:"]
#[doc = "\\code"]
#[doc = "struct tm rtc_time;"]
#[doc = ""]
#[doc = "read_rtc(&rtc_time);"]
#[doc = "rtc_time.tm_isdst = 0;"]
#[doc = "set_system_time( mktime(&rtc_time) );"]
#[doc = "\\endcode"]
#[doc = ""]
#[doc = "From a Network Time Protocol time stamp:"]
#[doc = "\\code"]
#[doc = "set_system_time(ntp_timestamp - NTP_OFFSET);"]
#[doc = "\\endcode"]
#[doc = ""]
#[doc = "From a UNIX time stamp:"]
#[doc = "\\code"]
#[doc = "set_system_time(unix_timestamp - UNIX_OFFSET);"]
#[doc = "\\endcode"]
#[doc = ""]
pub fn set_system_time(timestamp: time_t);
}
extern "C" {
#[doc = "Maintain the system time by calling this function at a rate of 1 Hertz."]
#[doc = ""]
#[doc = "It is anticipated that this function will typically be called from within an"]
#[doc = "Interrupt Service Routine, (though that is not required). It therefore includes code which"]
#[doc = "makes it simple to use from within a 'Naked' ISR, avoiding the cost of saving and restoring"]
#[doc = "all the cpu registers."]
#[doc = ""]
#[doc = "Such an ISR may resemble the following example..."]
#[doc = "\\code"]
#[doc = "ISR(RTC_OVF_vect, ISR_NAKED)"]
#[doc = "{"]
#[doc = "system_tick();"]
#[doc = "reti();"]
#[doc = "}"]
#[doc = "\\endcode"]
pub fn system_tick();
}
pub const _WEEK_DAYS__SUNDAY: _WEEK_DAYS_ = 0;
pub const _WEEK_DAYS__MONDAY: _WEEK_DAYS_ = 1;
pub const _WEEK_DAYS__TUESDAY: _WEEK_DAYS_ = 2;
pub const _WEEK_DAYS__WEDNESDAY: _WEEK_DAYS_ = 3;
pub const _WEEK_DAYS__THURSDAY: _WEEK_DAYS_ = 4;
pub const _WEEK_DAYS__FRIDAY: _WEEK_DAYS_ = 5;
pub const _WEEK_DAYS__SATURDAY: _WEEK_DAYS_ = 6;
#[doc = "Enumerated labels for the days of the week."]
pub type _WEEK_DAYS_ = ::rust_ctypes::c_uint;
pub const _MONTHS__JANUARY: _MONTHS_ = 0;
pub const _MONTHS__FEBRUARY: _MONTHS_ = 1;
pub const _MONTHS__MARCH: _MONTHS_ = 2;
pub const _MONTHS__APRIL: _MONTHS_ = 3;
pub const _MONTHS__MAY: _MONTHS_ = 4;
pub const _MONTHS__JUNE: _MONTHS_ = 5;
pub const _MONTHS__JULY: _MONTHS_ = 6;
pub const _MONTHS__AUGUST: _MONTHS_ = 7;
pub const _MONTHS__SEPTEMBER: _MONTHS_ = 8;
pub const _MONTHS__OCTOBER: _MONTHS_ = 9;
pub const _MONTHS__NOVEMBER: _MONTHS_ = 10;
pub const _MONTHS__DECEMBER: _MONTHS_ = 11;
#[doc = "Enumerated labels for the months."]
pub type _MONTHS_ = ::rust_ctypes::c_uint;
extern "C" {
#[doc = "Return 1 if year is a leap year, zero if it is not."]
pub fn is_leap_year(year: i16) -> u8;
}
extern "C" {
#[doc = "Return the length of month, given the year and month, where month is in the range 1 to 12."]
pub fn month_length(year: i16, month: u8) -> u8;
}
extern "C" {
#[doc = "Return the calendar week of year, where week 1 is considered to begin on the"]
#[doc = "day of week specified by 'start'. The returned value may range from zero to 52."]
pub fn week_of_year(timeptr: *const tm, start: u8) -> u8;
}
extern "C" {
#[doc = "Return the calendar week of month, where the first week is considered to begin on the"]
#[doc = "day of week specified by 'start'. The returned value may range from zero to 5."]
pub fn week_of_month(timeptr: *const tm, start: u8) -> u8;
}
#[doc = "Structure which represents a date as a year, week number of that year, and day of week."]
#[doc = "See http://en.wikipedia.org/wiki/ISO_week_date for more information."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct week_date {
#[doc = "< year number (Gregorian calendar)"]
pub year: ::rust_ctypes::c_int,
#[doc = "< week number (#1 is where first Thursday is in)"]
pub week: ::rust_ctypes::c_int,
#[doc = "< day within week"]
pub day: ::rust_ctypes::c_int,
}
#[test]
fn bindgen_test_layout_week_date() {
assert_eq!(
::core::mem::size_of::<week_date>(),
6usize,
concat!("Size of: ", stringify!(week_date))
);
assert_eq!(
::core::mem::align_of::<week_date>(),
1usize,
concat!("Alignment of ", stringify!(week_date))
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<week_date>())).year as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(week_date),
"::",
stringify!(year)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<week_date>())).week as *const _ as usize },
2usize,
concat!(
"Offset of field: ",
stringify!(week_date),
"::",
stringify!(week)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<week_date>())).day as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(week_date),
"::",
stringify!(day)
)
);
}
extern "C" {
#[doc = "Return a week_date structure with the ISO_8601 week based date corresponding to the given"]
#[doc = "year and day of year. See http://en.wikipedia.org/wiki/ISO_week_date for more"]
#[doc = "information."]
pub fn iso_week_date(year: ::rust_ctypes::c_int, yday: ::rust_ctypes::c_int) -> *mut week_date;
}
extern "C" {
#[doc = "Re-entrant version of iso-week_date."]
pub fn iso_week_date_r(
year: ::rust_ctypes::c_int,
yday: ::rust_ctypes::c_int,
arg1: *mut week_date,
);
}
extern "C" {
#[doc = "Convert a Y2K time stamp into a FAT file system time stamp."]
pub fn fatfs_time(timeptr: *const tm) -> u32;
}
extern "C" {
#[doc = "Set the geographic coordinates of the 'observer', for use with several of the"]
#[doc = "following functions. Parameters are passed as seconds of North Latitude, and seconds"]
#[doc = "of East Longitude."]
#[doc = ""]
#[doc = "For New York City..."]
#[doc = "\\code set_position( 40.7142 * ONE_DEGREE, -74.0064 * ONE_DEGREE); \\endcode"]
pub fn set_position(latitude: i32, longitude: i32);
}
extern "C" {
#[doc = "Computes the difference between apparent solar time and mean solar time."]
#[doc = "The returned value is in seconds."]
pub fn equation_of_time(timer: *const time_t) -> i16;
}
extern "C" {
#[doc = "Computes the amount of time the sun is above the horizon, at the location of the observer."]
#[doc = ""]
#[doc = "NOTE: At observer locations inside a polar circle, this value can be zero during the winter,"]
#[doc = "and can exceed ONE_DAY during the summer."]
#[doc = ""]
#[doc = "The returned value is in seconds."]
pub fn daylight_seconds(timer: *const time_t) -> i32;
}
extern "C" {
#[doc = "Computes the time of solar noon, at the location of the observer."]
pub fn solar_noon(timer: *const time_t) -> time_t;
}
extern "C" {
#[doc = "Return the time of sunrise, at the location of the observer. See the note about daylight_seconds()."]
pub fn sun_rise(timer: *const time_t) -> time_t;
}
extern "C" {
#[doc = "Return the time of sunset, at the location of the observer. See the note about daylight_seconds()."]
pub fn sun_set(timer: *const time_t) -> time_t;
}
extern "C" {
#[doc = " Returns the declination of the sun in radians."]
pub fn solar_declination(timer: *const time_t) -> f64;
}
extern "C" {
#[doc = "Returns an approximation to the phase of the moon."]
#[doc = "The sign of the returned value indicates a waning or waxing phase."]
#[doc = "The magnitude of the returned value indicates the percentage illumination."]
pub fn moon_phase(timer: *const time_t) -> i8;
}
extern "C" {
#[doc = "Returns Greenwich Mean Sidereal Time, as seconds into the sidereal day."]
#[doc = "The returned value will range from 0 through 86399 seconds."]
pub fn gm_sidereal(timer: *const time_t) -> ::rust_ctypes::c_ulong;
}
extern "C" {
#[doc = "Returns Local Mean Sidereal Time, as seconds into the sidereal day."]
#[doc = "The returned value will range from 0 through 86399 seconds."]
pub fn lm_sidereal(timer: *const time_t) -> ::rust_ctypes::c_ulong;
}
extern "C" {
#[doc = "The cos() function returns the cosine of \\a __x, measured in radians."]
pub fn cos(__x: f64) -> f64;
}
extern "C" {
#[doc = "The sin() function returns the sine of \\a __x, measured in radians."]
pub fn sin(__x: f64) -> f64;
}
extern "C" {
#[doc = "The tan() function returns the tangent of \\a __x, measured in radians."]
pub fn tan(__x: f64) -> f64;
}
extern "C" {
#[doc = "The fabs() function computes the absolute value of a floating-point"]
#[doc = "number \\a __x."]
pub fn fabs(__x: f64) -> f64;
}
extern "C" {
#[doc = "The function fmod() returns the floating-point remainder of <em>__x /"]
#[doc = "__y</em>."]
pub fn fmod(__x: f64, __y: f64) -> f64;
}
extern "C" {
#[doc = "The modf() function breaks the argument \\a __x into integral and"]
#[doc = "fractional parts, each of which has the same sign as the argument."]
#[doc = "It stores the integral part as a double in the object pointed to by"]
#[doc = "\\a __iptr."]
#[doc = ""]
#[doc = "The modf() function returns the signed fractional part of \\a __x."]
#[doc = ""]
#[doc = "\\note This implementation skips writing by zero pointer. However,"]
#[doc = "the GCC 4.3 can replace this function with inline code that does not"]
#[doc = "permit to use NULL address for the avoiding of storing."]
pub fn modf(__x: f64, __iptr: *mut f64) -> f64;
}
extern "C" {
#[doc = " An alias for modf()."]
pub fn modff(__x: f32, __iptr: *mut f32) -> f32;
}
extern "C" {
#[doc = "The sqrt() function returns the non-negative square root of \\a __x."]
pub fn sqrt(__x: f64) -> f64;
}
extern "C" {
#[doc = " An alias for sqrt()."]
pub fn sqrtf(arg1: f32) -> f32;
}
extern "C" {
#[doc = "The cbrt() function returns the cube root of \\a __x."]
pub fn cbrt(__x: f64) -> f64;
}
extern "C" {
#[doc = "The hypot() function returns <em>sqrt(__x*__x + __y*__y)</em>. This"]
#[doc = "is the length of the hypotenuse of a right triangle with sides of"]
#[doc = "length \\a __x and \\a __y, or the distance of the point (\\a __x, \\a"]
#[doc = "__y) from the origin. Using this function instead of the direct"]
#[doc = "formula is wise, since the error is much smaller. No underflow with"]
#[doc = "small \\a __x and \\a __y. No overflow if result is in range."]
pub fn hypot(__x: f64, __y: f64) -> f64;
}
extern "C" {
#[doc = "The function square() returns <em>__x * __x</em>."]
#[doc = ""]
#[doc = "\\note This function does not belong to the C standard definition."]
pub fn square(__x: f64) -> f64;
}
extern "C" {
#[doc = "The floor() function returns the largest integral value less than or"]
#[doc = "equal to \\a __x, expressed as a floating-point number."]
pub fn floor(__x: f64) -> f64;
}
extern "C" {
#[doc = "The ceil() function returns the smallest integral value greater than"]
#[doc = "or equal to \\a __x, expressed as a floating-point number."]
pub fn ceil(__x: f64) -> f64;
}
extern "C" {
#[doc = "The frexp() function breaks a floating-point number into a normalized"]
#[doc = "fraction and an integral power of 2. It stores the integer in the \\c"]
#[doc = "int object pointed to by \\a __pexp."]
#[doc = ""]
#[doc = "If \\a __x is a normal float point number, the frexp() function"]
#[doc = "returns the value \\c v, such that \\c v has a magnitude in the"]
#[doc = "interval [1/2, 1) or zero, and \\a __x equals \\c v times 2 raised to"]
#[doc = "the power \\a __pexp. If \\a __x is zero, both parts of the result are"]
#[doc = "zero. If \\a __x is not a finite number, the frexp() returns \\a __x as"]
#[doc = "is and stores 0 by \\a __pexp."]
#[doc = ""]
#[doc = "\\note This implementation permits a zero pointer as a directive to"]
#[doc = "skip a storing the exponent."]
pub fn frexp(__x: f64, __pexp: *mut ::rust_ctypes::c_int) -> f64;
}
extern "C" {
#[doc = "The ldexp() function multiplies a floating-point number by an integral"]
#[doc = "power of 2. It returns the value of \\a __x times 2 raised to the power"]
#[doc = "\\a __exp."]
pub fn ldexp(__x: f64, __exp: ::rust_ctypes::c_int) -> f64;
}
extern "C" {
#[doc = "The exp() function returns the exponential value of \\a __x."]
pub fn exp(__x: f64) -> f64;
}
extern "C" {
#[doc = "The cosh() function returns the hyperbolic cosine of \\a __x."]
pub fn cosh(__x: f64) -> f64;
}
extern "C" {
#[doc = "The sinh() function returns the hyperbolic sine of \\a __x."]
pub fn sinh(__x: f64) -> f64;
}
extern "C" {
#[doc = "The tanh() function returns the hyperbolic tangent of \\a __x."]
pub fn tanh(__x: f64) -> f64;
}
extern "C" {
#[doc = "The acos() function computes the principal value of the arc cosine of"]
#[doc = "\\a __x. The returned value is in the range [0, pi] radians. A domain"]
#[doc = "error occurs for arguments not in the range [-1, +1]."]
pub fn acos(__x: f64) -> f64;
}
extern "C" {
#[doc = "The asin() function computes the principal value of the arc sine of"]
#[doc = "\\a __x. The returned value is in the range [-pi/2, pi/2] radians. A"]
#[doc = "domain error occurs for arguments not in the range [-1, +1]."]
pub fn asin(__x: f64) -> f64;
}
extern "C" {
#[doc = "The atan() function computes the principal value of the arc tangent"]
#[doc = "of \\a __x. The returned value is in the range [-pi/2, pi/2] radians."]
pub fn atan(__x: f64) -> f64;
}
extern "C" {
#[doc = "The atan2() function computes the principal value of the arc tangent"]
#[doc = "of <em>__y / __x</em>, using the signs of both arguments to determine"]
#[doc = "the quadrant of the return value. The returned value is in the range"]
#[doc = "[-pi, +pi] radians."]
pub fn atan2(__y: f64, __x: f64) -> f64;
}
extern "C" {
#[doc = "The log() function returns the natural logarithm of argument \\a __x."]
pub fn log(__x: f64) -> f64;
}
extern "C" {
#[doc = "The log10() function returns the logarithm of argument \\a __x to base 10."]
pub fn log10(__x: f64) -> f64;
}
extern "C" {
#[doc = "The function pow() returns the value of \\a __x to the exponent \\a __y."]
pub fn pow(__x: f64, __y: f64) -> f64;
}
extern "C" {
#[doc = "The function isnan() returns 1 if the argument \\a __x represents a"]
#[doc = "\"not-a-number\" (NaN) object, otherwise 0."]
pub fn isnan(__x: f64) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The function isinf() returns 1 if the argument \\a __x is positive"]
#[doc = "infinity, -1 if \\a __x is negative infinity, and 0 otherwise."]
#[doc = ""]
#[doc = "\\note The GCC 4.3 can replace this function with inline code that"]
#[doc = "returns the 1 value for both infinities (gcc bug #35509)."]
pub fn isinf(__x: f64) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The signbit() function returns a nonzero value if the value of \\a __x"]
#[doc = "has its sign bit set. This is not the same as `\\a __x < 0.0',"]
#[doc = "because IEEE 754 floating point allows zero to be signed. The"]
#[doc = "comparison `-0.0 < 0.0' is false, but `signbit (-0.0)' will return a"]
#[doc = "nonzero value."]
pub fn signbit(__x: f64) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The fdim() function returns <em>max(__x - __y, 0)</em>. If \\a __x or"]
#[doc = "\\a __y or both are NaN, NaN is returned."]
pub fn fdim(__x: f64, __y: f64) -> f64;
}
extern "C" {
#[doc = "The fma() function performs floating-point multiply-add. This is the"]
#[doc = "operation <em>(__x * __y) + __z</em>, but the intermediate result is"]
#[doc = "not rounded to the destination type. This can sometimes improve the"]
#[doc = "precision of a calculation."]
pub fn fma(__x: f64, __y: f64, __z: f64) -> f64;
}
extern "C" {
#[doc = "The fmax() function returns the greater of the two values \\a __x and"]
#[doc = "\\a __y. If an argument is NaN, the other argument is returned. If"]
#[doc = "both arguments are NaN, NaN is returned."]
pub fn fmax(__x: f64, __y: f64) -> f64;
}
extern "C" {
#[doc = "The fmin() function returns the lesser of the two values \\a __x and"]
#[doc = "\\a __y. If an argument is NaN, the other argument is returned. If"]
#[doc = "both arguments are NaN, NaN is returned."]
pub fn fmin(__x: f64, __y: f64) -> f64;
}
extern "C" {
#[doc = "The trunc() function rounds \\a __x to the nearest integer not larger"]
#[doc = "in absolute value."]
pub fn trunc(__x: f64) -> f64;
}
extern "C" {
#[doc = "The round() function rounds \\a __x to the nearest integer, but rounds"]
#[doc = "halfway cases away from zero (instead of to the nearest even integer)."]
#[doc = "Overflow is impossible."]
#[doc = ""]
#[doc = "\\return The rounded value. If \\a __x is an integral or infinite, \\a"]
#[doc = "__x itself is returned. If \\a __x is \\c NaN, then \\c NaN is returned."]
pub fn round(__x: f64) -> f64;
}
extern "C" {
#[doc = "The lround() function rounds \\a __x to the nearest integer, but rounds"]
#[doc = "halfway cases away from zero (instead of to the nearest even integer)."]
#[doc = "This function is similar to round() function, but it differs in type of"]
#[doc = "return value and in that an overflow is possible."]
#[doc = ""]
#[doc = "\\return The rounded long integer value. If \\a __x is not a finite number"]
#[doc = "or an overflow was, this realization returns the \\c LONG_MIN value"]
#[doc = "(0x80000000)."]
pub fn lround(__x: f64) -> ::rust_ctypes::c_long;
}
extern "C" {
#[doc = "The lrint() function rounds \\a __x to the nearest integer, rounding the"]
#[doc = "halfway cases to the even integer direction. (That is both 1.5 and 2.5"]
#[doc = "values are rounded to 2). This function is similar to rint() function,"]
#[doc = "but it differs in type of return value and in that an overflow is"]
#[doc = "possible."]
#[doc = ""]
#[doc = "\\return The rounded long integer value. If \\a __x is not a finite"]
#[doc = "number or an overflow was, this realization returns the \\c LONG_MIN"]
#[doc = "value (0x80000000)."]
pub fn lrint(__x: f64) -> ::rust_ctypes::c_long;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn int ffs(int val);"]
#[doc = ""]
#[doc = "\\brief This function finds the first (least significant) bit set in the input value."]
#[doc = ""]
#[doc = "\\returns The ffs() function returns the position of the first"]
#[doc = "(least significant) bit set in the word val, or 0 if no bits are set."]
#[doc = "The least significant bit is position 1."]
#[doc = ""]
#[doc = "\\note For expressions that are constant at compile time, consider"]
#[doc = "using the \\ref _FFS macro instead."]
pub fn ffs(__val: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn int ffsl(long val);"]
#[doc = ""]
#[doc = "\\brief Same as ffs(), for an argument of type long."]
pub fn ffsl(__val: ::rust_ctypes::c_long) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn int ffsll(long long val);"]
#[doc = ""]
#[doc = "\\brief Same as ffs(), for an argument of type long long."]
pub fn ffsll(__val: ::rust_ctypes::c_longlong) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn void *memccpy(void *dest, const void *src, int val, size_t len)"]
#[doc = "\\brief Copy memory area."]
#[doc = ""]
#[doc = "The memccpy() function copies no more than \\p len bytes from memory"]
#[doc = "area \\p src to memory area \\p dest, stopping when the character \\p val"]
#[doc = "is found."]
#[doc = ""]
#[doc = "\\returns The memccpy() function returns a pointer to the next character"]
#[doc = "in \\p dest after \\p val, or NULL if \\p val was not found in the first"]
#[doc = "\\p len characters of \\p src."]
pub fn memccpy(
arg1: *mut ::rust_ctypes::c_void,
arg2: *const ::rust_ctypes::c_void,
arg3: ::rust_ctypes::c_int,
arg4: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn void *memchr(const void *src, int val, size_t len)"]
#[doc = "\\brief Scan memory for a character."]
#[doc = ""]
#[doc = "The memchr() function scans the first len bytes of the memory area pointed"]
#[doc = "to by src for the character val. The first byte to match val (interpreted"]
#[doc = "as an unsigned character) stops the operation."]
#[doc = ""]
#[doc = "\\returns The memchr() function returns a pointer to the matching byte or"]
#[doc = "NULL if the character does not occur in the given memory area."]
pub fn memchr(
arg1: *const ::rust_ctypes::c_void,
arg2: ::rust_ctypes::c_int,
arg3: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn int memcmp(const void *s1, const void *s2, size_t len)"]
#[doc = "\\brief Compare memory areas"]
#[doc = ""]
#[doc = "The memcmp() function compares the first len bytes of the memory areas s1"]
#[doc = "and s2. The comparision is performed using unsigned char operations."]
#[doc = ""]
#[doc = "\\returns The memcmp() function returns an integer less than, equal to, or"]
#[doc = "greater than zero if the first len bytes of s1 is found, respectively, to be"]
#[doc = "less than, to match, or be greater than the first len bytes of s2."]
#[doc = ""]
#[doc = "\\note Be sure to store the result in a 16 bit variable since you may get"]
#[doc = "incorrect results if you use an unsigned char or char due to truncation."]
#[doc = ""]
#[doc = "\\warning This function is not -mint8 compatible, although if you only care"]
#[doc = "about testing for equality, this function should be safe to use."]
pub fn memcmp(
arg1: *const ::rust_ctypes::c_void,
arg2: *const ::rust_ctypes::c_void,
arg3: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn void *memcpy(void *dest, const void *src, size_t len)"]
#[doc = "\\brief Copy a memory area."]
#[doc = ""]
#[doc = "The memcpy() function copies len bytes from memory area src to memory area"]
#[doc = "dest. The memory areas may not overlap. Use memmove() if the memory"]
#[doc = "areas do overlap."]
#[doc = ""]
#[doc = "\\returns The memcpy() function returns a pointer to dest."]
pub fn memcpy(
arg1: *mut ::rust_ctypes::c_void,
arg2: *const ::rust_ctypes::c_void,
arg3: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn void *memmem(const void *s1, size_t len1, const void *s2, size_t len2)"]
#[doc = ""]
#[doc = "The memmem() function finds the start of the first occurrence of the"]
#[doc = "substring \\p s2 of length \\p len2 in the memory area \\p s1 of length"]
#[doc = "\\p len1."]
#[doc = ""]
#[doc = "\\return The memmem() function returns a pointer to the beginning of"]
#[doc = "the substring, or \\c NULL if the substring is not found. If \\p len2"]
#[doc = "is zero, the function returns \\p s1."]
pub fn memmem(
arg1: *const ::rust_ctypes::c_void,
arg2: size_t,
arg3: *const ::rust_ctypes::c_void,
arg4: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn void *memmove(void *dest, const void *src, size_t len)"]
#[doc = "\\brief Copy memory area."]
#[doc = ""]
#[doc = "The memmove() function copies len bytes from memory area src to memory area"]
#[doc = "dest. The memory areas may overlap."]
#[doc = ""]
#[doc = "\\returns The memmove() function returns a pointer to dest."]
pub fn memmove(
arg1: *mut ::rust_ctypes::c_void,
arg2: *const ::rust_ctypes::c_void,
arg3: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn void *memrchr(const void *src, int val, size_t len)"]
#[doc = ""]
#[doc = "The memrchr() function is like the memchr() function, except that it"]
#[doc = "searches backwards from the end of the \\p len bytes pointed to by \\p"]
#[doc = "src instead of forwards from the front. (Glibc, GNU extension.)"]
#[doc = ""]
#[doc = "\\return The memrchr() function returns a pointer to the matching"]
#[doc = "byte or \\c NULL if the character does not occur in the given memory"]
#[doc = "area."]
pub fn memrchr(
arg1: *const ::rust_ctypes::c_void,
arg2: ::rust_ctypes::c_int,
arg3: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn void *memset(void *dest, int val, size_t len)"]
#[doc = "\\brief Fill memory with a constant byte."]
#[doc = ""]
#[doc = "The memset() function fills the first len bytes of the memory area pointed"]
#[doc = "to by dest with the constant byte val."]
#[doc = ""]
#[doc = "\\returns The memset() function returns a pointer to the memory area dest."]
pub fn memset(
arg1: *mut ::rust_ctypes::c_void,
arg2: ::rust_ctypes::c_int,
arg3: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strcat(char *dest, const char *src)"]
#[doc = "\\brief Concatenate two strings."]
#[doc = ""]
#[doc = "The strcat() function appends the src string to the dest string"]
#[doc = "overwriting the '\\\\0' character at the end of dest, and then adds a"]
#[doc = "terminating '\\\\0' character. The strings may not overlap, and the dest"]
#[doc = "string must have enough space for the result."]
#[doc = ""]
#[doc = "\\returns The strcat() function returns a pointer to the resulting string"]
#[doc = "dest."]
pub fn strcat(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strchr(const char *src, int val)"]
#[doc = "\\brief Locate character in string."]
#[doc = ""]
#[doc = "The strchr() function returns a pointer to the first occurrence of"]
#[doc = "the character \\p val in the string \\p src."]
#[doc = ""]
#[doc = "Here \"character\" means \"byte\" - these functions do not work with"]
#[doc = "wide or multi-byte characters."]
#[doc = ""]
#[doc = "\\returns The strchr() function returns a pointer to the matched"]
#[doc = "character or \\c NULL if the character is not found."]
pub fn strchr(
arg1: *const ::rust_ctypes::c_char,
arg2: ::rust_ctypes::c_int,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strchrnul(const char *s, int c)"]
#[doc = ""]
#[doc = "The strchrnul() function is like strchr() except that if \\p c is not"]
#[doc = "found in \\p s, then it returns a pointer to the null byte at the end"]
#[doc = "of \\p s, rather than \\c NULL. (Glibc, GNU extension.)"]
#[doc = ""]
#[doc = "\\return The strchrnul() function returns a pointer to the matched"]
#[doc = "character, or a pointer to the null byte at the end of \\p s (i.e.,"]
#[doc = "\\c s+strlen(s)) if the character is not found."]
pub fn strchrnul(
arg1: *const ::rust_ctypes::c_char,
arg2: ::rust_ctypes::c_int,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn int strcmp(const char *s1, const char *s2)"]
#[doc = "\\brief Compare two strings."]
#[doc = ""]
#[doc = "The strcmp() function compares the two strings \\p s1 and \\p s2."]
#[doc = ""]
#[doc = "\\returns The strcmp() function returns an integer less than, equal"]
#[doc = "to, or greater than zero if \\p s1 is found, respectively, to be less"]
#[doc = "than, to match, or be greater than \\p s2. A consequence of the"]
#[doc = "ordering used by strcmp() is that if \\p s1 is an initial substring"]
#[doc = "of \\p s2, then \\p s1 is considered to be \"less than\" \\p s2."]
pub fn strcmp(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strcpy(char *dest, const char *src)"]
#[doc = "\\brief Copy a string."]
#[doc = ""]
#[doc = "The strcpy() function copies the string pointed to by src (including the"]
#[doc = "terminating '\\\\0' character) to the array pointed to by dest. The strings"]
#[doc = "may not overlap, and the destination string dest must be large enough to"]
#[doc = "receive the copy."]
#[doc = ""]
#[doc = "\\returns The strcpy() function returns a pointer to the destination"]
#[doc = "string dest."]
#[doc = ""]
#[doc = "\\note If the destination string of a strcpy() is not large enough (that"]
#[doc = "is, if the programmer was stupid/lazy, and failed to check the size before"]
#[doc = "copying) then anything might happen. Overflowing fixed length strings is"]
#[doc = "a favourite cracker technique."]
pub fn strcpy(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn int strcasecmp(const char *s1, const char *s2)"]
#[doc = "\\brief Compare two strings ignoring case."]
#[doc = ""]
#[doc = "The strcasecmp() function compares the two strings \\p s1 and \\p s2,"]
#[doc = "ignoring the case of the characters."]
#[doc = ""]
#[doc = "\\returns The strcasecmp() function returns an integer less than,"]
#[doc = "equal to, or greater than zero if \\p s1 is found, respectively, to"]
#[doc = "be less than, to match, or be greater than \\p s2. A consequence of"]
#[doc = "the ordering used by strcasecmp() is that if \\p s1 is an initial"]
#[doc = "substring of \\p s2, then \\p s1 is considered to be \"less than\""]
#[doc = "\\p s2."]
pub fn strcasecmp(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strcasestr(const char *s1, const char *s2)"]
#[doc = ""]
#[doc = "The strcasestr() function finds the first occurrence of the"]
#[doc = "substring \\p s2 in the string \\p s1. This is like strstr(), except"]
#[doc = "that it ignores case of alphabetic symbols in searching for the"]
#[doc = "substring. (Glibc, GNU extension.)"]
#[doc = ""]
#[doc = "\\return The strcasestr() function returns a pointer to the beginning"]
#[doc = "of the substring, or \\c NULL if the substring is not found. If \\p s2"]
#[doc = "points to a string of zero length, the function returns \\p s1."]
pub fn strcasestr(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn size_t strcspn(const char *s, const char *reject)"]
#[doc = ""]
#[doc = "The strcspn() function calculates the length of the initial segment"]
#[doc = "of \\p s which consists entirely of characters not in \\p reject."]
#[doc = ""]
#[doc = "\\return The strcspn() function returns the number of characters in"]
#[doc = "the initial segment of \\p s which are not in the string \\p reject."]
#[doc = "The terminating zero is not considered as a part of string."]
pub fn strcspn(
__s: *const ::rust_ctypes::c_char,
__reject: *const ::rust_ctypes::c_char,
) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strdup(const char *s1)"]
#[doc = "\\brief Duplicate a string."]
#[doc = ""]
#[doc = "The strdup() function allocates memory and copies into it the string"]
#[doc = "addressed by s1, including the terminating null character."]
#[doc = ""]
#[doc = "\\warning The strdup() function calls malloc() to allocate the memory"]
#[doc = "for the duplicated string! The user is responsible for freeing the"]
#[doc = "memory by calling free()."]
#[doc = ""]
#[doc = "\\returns The strdup() function returns a pointer to the resulting string"]
#[doc = "dest. If malloc() cannot allocate enough storage for the string, strdup()"]
#[doc = "will return NULL."]
#[doc = ""]
#[doc = "\\warning Be sure to check the return value of the strdup() function to"]
#[doc = "make sure that the function has succeeded in allocating the memory!"]
pub fn strdup(s1: *const ::rust_ctypes::c_char) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn size_t strlcat(char *dst, const char *src, size_t siz)"]
#[doc = "\\brief Concatenate two strings."]
#[doc = ""]
#[doc = "Appends \\p src to string \\p dst of size \\p siz (unlike strncat(),"]
#[doc = "\\p siz is the full size of \\p dst, not space left). At most \\p siz-1"]
#[doc = "characters will be copied. Always NULL terminates (unless \\p siz <="]
#[doc = "\\p strlen(dst))."]
#[doc = ""]
#[doc = "\\returns The strlcat() function returns strlen(src) + MIN(siz,"]
#[doc = "strlen(initial dst)). If retval >= siz, truncation occurred."]
pub fn strlcat(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn size_t strlcpy(char *dst, const char *src, size_t siz)"]
#[doc = "\\brief Copy a string."]
#[doc = ""]
#[doc = "Copy \\p src to string \\p dst of size \\p siz. At most \\p siz-1"]
#[doc = "characters will be copied. Always NULL terminates (unless \\p siz == 0)."]
#[doc = ""]
#[doc = "\\returns The strlcpy() function returns strlen(src). If retval >= siz,"]
#[doc = "truncation occurred."]
pub fn strlcpy(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn size_t strlen(const char *src)"]
#[doc = "\\brief Calculate the length of a string."]
#[doc = ""]
#[doc = "The strlen() function calculates the length of the string src, not"]
#[doc = "including the terminating '\\\\0' character."]
#[doc = ""]
#[doc = "\\returns The strlen() function returns the number of characters in"]
#[doc = "src."]
pub fn strlen(arg1: *const ::rust_ctypes::c_char) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strlwr(char *s)"]
#[doc = "\\brief Convert a string to lower case."]
#[doc = ""]
#[doc = "The strlwr() function will convert a string to lower case. Only the upper"]
#[doc = "case alphabetic characters [A .. Z] are converted. Non-alphabetic"]
#[doc = "characters will not be changed."]
#[doc = ""]
#[doc = "\\returns The strlwr() function returns a pointer to the converted"]
#[doc = "string."]
pub fn strlwr(arg1: *mut ::rust_ctypes::c_char) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strncat(char *dest, const char *src, size_t len)"]
#[doc = "\\brief Concatenate two strings."]
#[doc = ""]
#[doc = "The strncat() function is similar to strcat(), except that only the first"]
#[doc = "n characters of src are appended to dest."]
#[doc = ""]
#[doc = "\\returns The strncat() function returns a pointer to the resulting string"]
#[doc = "dest."]
pub fn strncat(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn int strncmp(const char *s1, const char *s2, size_t len)"]
#[doc = "\\brief Compare two strings."]
#[doc = ""]
#[doc = "The strncmp() function is similar to strcmp(), except it only compares the"]
#[doc = "first (at most) n characters of s1 and s2."]
#[doc = ""]
#[doc = "\\returns The strncmp() function returns an integer less than, equal to, or"]
#[doc = "greater than zero if s1 (or the first n bytes thereof) is found,"]
#[doc = "respectively, to be less than, to match, or be greater than s2."]
pub fn strncmp(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strncpy(char *dest, const char *src, size_t len)"]
#[doc = "\\brief Copy a string."]
#[doc = ""]
#[doc = "The strncpy() function is similar to strcpy(), except that not more than n"]
#[doc = "bytes of src are copied. Thus, if there is no null byte among the first n"]
#[doc = "bytes of src, the result will not be null-terminated."]
#[doc = ""]
#[doc = "In the case where the length of src is less than that of n, the remainder"]
#[doc = "of dest will be padded with nulls."]
#[doc = ""]
#[doc = "\\returns The strncpy() function returns a pointer to the destination"]
#[doc = "string dest."]
pub fn strncpy(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn int strncasecmp(const char *s1, const char *s2, size_t len)"]
#[doc = "\\brief Compare two strings ignoring case."]
#[doc = ""]
#[doc = "The strncasecmp() function is similar to strcasecmp(), except it"]
#[doc = "only compares the first \\p len characters of \\p s1."]
#[doc = ""]
#[doc = "\\returns The strncasecmp() function returns an integer less than,"]
#[doc = "equal to, or greater than zero if \\p s1 (or the first \\p len bytes"]
#[doc = "thereof) is found, respectively, to be less than, to match, or be"]
#[doc = "greater than \\p s2. A consequence of the ordering used by"]
#[doc = "strncasecmp() is that if \\p s1 is an initial substring of \\p s2,"]
#[doc = "then \\p s1 is considered to be \"less than\" \\p s2."]
pub fn strncasecmp(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn size_t strnlen(const char *src, size_t len)"]
#[doc = "\\brief Determine the length of a fixed-size string."]
#[doc = ""]
#[doc = "The strnlen function returns the number of characters in the string"]
#[doc = "pointed to by src, not including the terminating '\\\\0' character, but at"]
#[doc = "most len. In doing this, strnlen looks only at the first len characters at"]
#[doc = "src and never beyond src+len."]
#[doc = ""]
#[doc = "\\returns The strnlen function returns strlen(src), if that is less than"]
#[doc = "len, or len if there is no '\\\\0' character among the first len"]
#[doc = "characters pointed to by src."]
pub fn strnlen(arg1: *const ::rust_ctypes::c_char, arg2: size_t) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strpbrk(const char *s, const char *accept)"]
#[doc = ""]
#[doc = "The strpbrk() function locates the first occurrence in the string"]
#[doc = "\\p s of any of the characters in the string \\p accept."]
#[doc = ""]
#[doc = "\\return The strpbrk() function returns a pointer to the character"]
#[doc = "in \\p s that matches one of the characters in \\p accept, or \\c NULL"]
#[doc = "if no such character is found. The terminating zero is not"]
#[doc = "considered as a part of string: if one or both args are empty, the"]
#[doc = "result will be \\c NULL."]
pub fn strpbrk(
__s: *const ::rust_ctypes::c_char,
__accept: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strrchr(const char *src, int val)"]
#[doc = "\\brief Locate character in string."]
#[doc = ""]
#[doc = "The strrchr() function returns a pointer to the last occurrence of the"]
#[doc = "character val in the string src."]
#[doc = ""]
#[doc = "Here \"character\" means \"byte\" - these functions do not work with wide or"]
#[doc = "multi-byte characters."]
#[doc = ""]
#[doc = "\\returns The strrchr() function returns a pointer to the matched character"]
#[doc = "or NULL if the character is not found."]
pub fn strrchr(
arg1: *const ::rust_ctypes::c_char,
arg2: ::rust_ctypes::c_int,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strrev(char *s)"]
#[doc = "\\brief Reverse a string."]
#[doc = ""]
#[doc = "The strrev() function reverses the order of the string."]
#[doc = ""]
#[doc = "\\returns The strrev() function returns a pointer to the beginning of the"]
#[doc = "reversed string."]
pub fn strrev(arg1: *mut ::rust_ctypes::c_char) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strsep(char **sp, const char *delim)"]
#[doc = "\\brief Parse a string into tokens."]
#[doc = ""]
#[doc = "The strsep() function locates, in the string referenced by \\p *sp,"]
#[doc = "the first occurrence of any character in the string \\p delim (or the"]
#[doc = "terminating '\\\\0' character) and replaces it with a '\\\\0'. The"]
#[doc = "location of the next character after the delimiter character (or \\c"]
#[doc = "NULL, if the end of the string was reached) is stored in \\p *sp. An"]
#[doc = "``empty'' field, i.e. one caused by two adjacent delimiter"]
#[doc = "characters, can be detected by comparing the location referenced by"]
#[doc = "the pointer returned in \\p *sp to '\\\\0'."]
#[doc = ""]
#[doc = "\\return The strsep() function returns a pointer to the original"]
#[doc = "value of \\p *sp. If \\p *sp is initially \\c NULL, strsep() returns"]
#[doc = "\\c NULL."]
pub fn strsep(
arg1: *mut *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn size_t strspn(const char *s, const char *accept)"]
#[doc = ""]
#[doc = "The strspn() function calculates the length of the initial segment"]
#[doc = "of \\p s which consists entirely of characters in \\p accept."]
#[doc = ""]
#[doc = "\\return The strspn() function returns the number of characters in"]
#[doc = "the initial segment of \\p s which consist only of characters from \\p"]
#[doc = "accept. The terminating zero is not considered as a part of string."]
pub fn strspn(
__s: *const ::rust_ctypes::c_char,
__accept: *const ::rust_ctypes::c_char,
) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strstr(const char *s1, const char *s2)"]
#[doc = "\\brief Locate a substring."]
#[doc = ""]
#[doc = "The strstr() function finds the first occurrence of the substring \\p"]
#[doc = "s2 in the string \\p s1. The terminating '\\\\0' characters are not"]
#[doc = "compared."]
#[doc = ""]
#[doc = "\\returns The strstr() function returns a pointer to the beginning of"]
#[doc = "the substring, or \\c NULL if the substring is not found. If \\p s2"]
#[doc = "points to a string of zero length, the function returns \\p s1."]
pub fn strstr(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strtok(char *s, const char *delim)"]
#[doc = "\\brief Parses the string s into tokens."]
#[doc = ""]
#[doc = "strtok parses the string s into tokens. The first call to strtok"]
#[doc = "should have s as its first argument. Subsequent calls should have"]
#[doc = "the first argument set to NULL. If a token ends with a delimiter, this"]
#[doc = "delimiting character is overwritten with a '\\\\0' and a pointer to the next"]
#[doc = "character is saved for the next call to strtok. The delimiter string"]
#[doc = "delim may be different for each call."]
#[doc = ""]
#[doc = "\\returns The strtok() function returns a pointer to the next token or"]
#[doc = "NULL when no more tokens are found."]
#[doc = ""]
#[doc = "\\note strtok() is NOT reentrant. For a reentrant version of this function"]
#[doc = "see \\c strtok_r()."]
pub fn strtok(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strtok_r(char *string, const char *delim, char **last)"]
#[doc = "\\brief Parses string into tokens."]
#[doc = ""]
#[doc = "strtok_r parses string into tokens. The first call to strtok_r"]
#[doc = "should have string as its first argument. Subsequent calls should have"]
#[doc = "the first argument set to NULL. If a token ends with a delimiter, this"]
#[doc = "delimiting character is overwritten with a '\\\\0' and a pointer to the next"]
#[doc = "character is saved for the next call to strtok_r. The delimiter string"]
#[doc = "\\p delim may be different for each call. \\p last is a user allocated char*"]
#[doc = "pointer. It must be the same while parsing the same string. strtok_r is"]
#[doc = "a reentrant version of strtok()."]
#[doc = ""]
#[doc = "\\returns The strtok_r() function returns a pointer to the next token or"]
#[doc = "NULL when no more tokens are found."]
pub fn strtok_r(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: *mut *mut ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_string"]
#[doc = "\\fn char *strupr(char *s)"]
#[doc = "\\brief Convert a string to upper case."]
#[doc = ""]
#[doc = "The strupr() function will convert a string to upper case. Only the lower"]
#[doc = "case alphabetic characters [a .. z] are converted. Non-alphabetic"]
#[doc = "characters will not be changed."]
#[doc = ""]
#[doc = "\\returns The strupr() function returns a pointer to the converted"]
#[doc = "string. The pointer is the same as that passed in since the operation is"]
#[doc = "perform in place."]
pub fn strupr(arg1: *mut ::rust_ctypes::c_char) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
pub fn strcoll(
s1: *const ::rust_ctypes::c_char,
s2: *const ::rust_ctypes::c_char,
) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn strerror(errnum: ::rust_ctypes::c_int) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
pub fn strxfrm(
dest: *mut ::rust_ctypes::c_char,
src: *const ::rust_ctypes::c_char,
n: size_t,
) -> size_t;
}
extern "C" {
pub fn write(
arg1: ::rust_ctypes::c_int,
arg2: *const ::rust_ctypes::c_void,
arg3: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn read(
arg1: ::rust_ctypes::c_int,
arg2: *mut ::rust_ctypes::c_void,
arg3: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn lseek(arg1: ::rust_ctypes::c_int, arg2: off_t, arg3: ::rust_ctypes::c_int) -> off_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct lconv {
_unused: [u8; 0],
}
extern "C" {
pub fn setlocale(
category: ::rust_ctypes::c_int,
locale: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
pub fn localeconv() -> *mut lconv;
}
pub type va_list = __builtin_va_list;
pub type __gnuc_va_list = __builtin_va_list;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __file {
pub buf: *mut ::rust_ctypes::c_char,
pub unget: ::rust_ctypes::c_uchar,
pub flags: u8,
pub size: ::rust_ctypes::c_int,
pub len: ::rust_ctypes::c_int,
pub put: ::core::option::Option<
unsafe extern "C" fn(
arg1: ::rust_ctypes::c_char,
arg2: *mut __file,
) -> ::rust_ctypes::c_int,
>,
pub get:
::core::option::Option<unsafe extern "C" fn(arg1: *mut __file) -> ::rust_ctypes::c_int>,
pub udata: *mut ::rust_ctypes::c_void,
}
#[test]
fn bindgen_test_layout___file() {
assert_eq!(
::core::mem::size_of::<__file>(),
14usize,
concat!("Size of: ", stringify!(__file))
);
assert_eq!(
::core::mem::align_of::<__file>(),
1usize,
concat!("Alignment of ", stringify!(__file))
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__file>())).buf as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(__file),
"::",
stringify!(buf)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__file>())).unget as *const _ as usize },
2usize,
concat!(
"Offset of field: ",
stringify!(__file),
"::",
stringify!(unget)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__file>())).flags as *const _ as usize },
3usize,
concat!(
"Offset of field: ",
stringify!(__file),
"::",
stringify!(flags)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__file>())).size as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(__file),
"::",
stringify!(size)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__file>())).len as *const _ as usize },
6usize,
concat!(
"Offset of field: ",
stringify!(__file),
"::",
stringify!(len)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__file>())).put as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(__file),
"::",
stringify!(put)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__file>())).get as *const _ as usize },
10usize,
concat!(
"Offset of field: ",
stringify!(__file),
"::",
stringify!(get)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__file>())).udata as *const _ as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(__file),
"::",
stringify!(udata)
)
);
}
#[doc = "\\c FILE is the opaque structure that is passed around between the"]
#[doc = "various standard IO functions."]
pub type FILE = __file;
extern "C" {
pub static mut __iob: [*mut __file; 0usize];
}
extern "C" {
pub fn fdevopen(
__put: ::core::option::Option<
unsafe extern "C" fn(
arg1: ::rust_ctypes::c_char,
arg2: *mut FILE,
) -> ::rust_ctypes::c_int,
>,
__get: ::core::option::Option<
unsafe extern "C" fn(arg1: *mut FILE) -> ::rust_ctypes::c_int,
>,
) -> *mut FILE;
}
extern "C" {
#[doc = "This function closes \\c stream, and disallows and further"]
#[doc = "IO to and from it."]
#[doc = ""]
#[doc = "When using fdevopen() to setup the stream, a call to fclose() is"]
#[doc = "needed in order to free the internal resources allocated."]
#[doc = ""]
#[doc = "If the stream has been set up using fdev_setup_stream() or"]
#[doc = "FDEV_SETUP_STREAM(), use fdev_close() instead."]
#[doc = ""]
#[doc = "It currently always returns 0 (for success)."]
pub fn fclose(__stream: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "\\c vfprintf is the central facility of the \\c printf family of"]
#[doc = "functions. It outputs values to \\c stream under control of a"]
#[doc = "format string passed in \\c fmt. The actual values to print are"]
#[doc = "passed as a variable argument list \\c ap."]
#[doc = ""]
#[doc = "\\c vfprintf returns the number of characters written to \\c stream,"]
#[doc = "or \\c EOF in case of an error. Currently, this will only happen"]
#[doc = "if \\c stream has not been opened with write intent."]
#[doc = ""]
#[doc = "The format string is composed of zero or more directives: ordinary"]
#[doc = "characters (not \\c %), which are copied unchanged to the output"]
#[doc = "stream; and conversion specifications, each of which results in"]
#[doc = "fetching zero or more subsequent arguments. Each conversion"]
#[doc = "specification is introduced by the \\c % character. The arguments must"]
#[doc = "properly correspond (after type promotion) with the conversion"]
#[doc = "specifier. After the \\c %, the following appear in sequence:"]
#[doc = ""]
#[doc = "- Zero or more of the following flags:"]
#[doc = "<ul>"]
#[doc = "<li> \\c # The value should be converted to an \"alternate form\". For"]
#[doc = "c, d, i, s, and u conversions, this option has no effect."]
#[doc = "For o conversions, the precision of the number is"]
#[doc = "increased to force the first character of the output"]
#[doc = "string to a zero (except if a zero value is printed with"]
#[doc = "an explicit precision of zero). For x and X conversions,"]
#[doc = "a non-zero result has the string `0x' (or `0X' for X"]
#[doc = "conversions) prepended to it.</li>"]
#[doc = "<li> \\c 0 (zero) Zero padding. For all conversions, the converted"]
#[doc = "value is padded on the left with zeros rather than blanks."]
#[doc = "If a precision is given with a numeric conversion (d, i,"]
#[doc = "o, u, i, x, and X), the 0 flag is ignored.</li>"]
#[doc = "<li> \\c - A negative field width flag; the converted value is to be"]
#[doc = "left adjusted on the field boundary. The converted value"]
#[doc = "is padded on the right with blanks, rather than on the"]
#[doc = "left with blanks or zeros. A - overrides a 0 if both are"]
#[doc = "given.</li>"]
#[doc = "<li> ' ' (space) A blank should be left before a positive number"]
#[doc = "produced by a signed conversion (d, or i).</li>"]
#[doc = "<li> \\c + A sign must always be placed before a number produced by a"]
#[doc = "signed conversion. A + overrides a space if both are"]
#[doc = "used.</li>"]
#[doc = "</ul>"]
#[doc = ""]
#[doc = "- An optional decimal digit string specifying a minimum field width."]
#[doc = "If the converted value has fewer characters than the field width, it"]
#[doc = "will be padded with spaces on the left (or right, if the left-adjustment"]
#[doc = "flag has been given) to fill out the field width."]
#[doc = "- An optional precision, in the form of a period . followed by an"]
#[doc = "optional digit string. If the digit string is omitted, the"]
#[doc = "precision is taken as zero. This gives the minimum number of"]
#[doc = "digits to appear for d, i, o, u, x, and X conversions, or the"]
#[doc = "maximum number of characters to be printed from a string for \\c s"]
#[doc = "conversions."]
#[doc = "- An optional \\c l or \\c h length modifier, that specifies that the"]
#[doc = "argument for the d, i, o, u, x, or X conversion is a \\c \"long int\""]
#[doc = "rather than \\c int. The \\c h is ignored, as \\c \"short int\" is"]
#[doc = "equivalent to \\c int."]
#[doc = "- A character that specifies the type of conversion to be applied."]
#[doc = ""]
#[doc = "The conversion specifiers and their meanings are:"]
#[doc = ""]
#[doc = "- \\c diouxX The int (or appropriate variant) argument is converted"]
#[doc = "to signed decimal (d and i), unsigned octal (o), unsigned"]
#[doc = "decimal (u), or unsigned hexadecimal (x and X) notation."]
#[doc = "The letters \"abcdef\" are used for x conversions; the"]
#[doc = "letters \"ABCDEF\" are used for X conversions. The"]
#[doc = "precision, if any, gives the minimum number of digits that"]
#[doc = "must appear; if the converted value requires fewer digits,"]
#[doc = "it is padded on the left with zeros."]
#[doc = "- \\c p The <tt>void *</tt> argument is taken as an unsigned integer,"]
#[doc = "and converted similarly as a <tt>%\\#x</tt> command would do."]
#[doc = "- \\c c The \\c int argument is converted to an \\c \"unsigned char\", and the"]
#[doc = "resulting character is written."]
#[doc = "- \\c s The \\c \"char *\" argument is expected to be a pointer to an array"]
#[doc = "of character type (pointer to a string). Characters from"]
#[doc = "the array are written up to (but not including) a"]
#[doc = "terminating NUL character; if a precision is specified, no"]
#[doc = "more than the number specified are written. If a precision"]
#[doc = "is given, no null character need be present; if the"]
#[doc = "precision is not specified, or is greater than the size of"]
#[doc = "the array, the array must contain a terminating NUL"]
#[doc = "character."]
#[doc = "- \\c % A \\c % is written. No argument is converted. The complete"]
#[doc = "conversion specification is \"%%\"."]
#[doc = "- \\c eE The double argument is rounded and converted in the format"]
#[doc = "\\c \"[-]d.ddde�dd\" where there is one digit before the"]
#[doc = "decimal-point character and the number of digits after it"]
#[doc = "is equal to the precision; if the precision is missing, it"]
#[doc = "is taken as 6; if the precision is zero, no decimal-point"]
#[doc = "character appears. An \\e E conversion uses the letter \\c 'E'"]
#[doc = "(rather than \\c 'e') to introduce the exponent. The exponent"]
#[doc = "always contains two digits; if the value is zero,"]
#[doc = "the exponent is 00."]
#[doc = "- \\c fF The double argument is rounded and converted to decimal notation"]
#[doc = "in the format \\c \"[-]ddd.ddd\", where the number of digits after the"]
#[doc = "decimal-point character is equal to the precision specification."]
#[doc = "If the precision is missing, it is taken as 6; if the precision"]
#[doc = "is explicitly zero, no decimal-point character appears. If a"]
#[doc = "decimal point appears, at least one digit appears before it."]
#[doc = "- \\c gG The double argument is converted in style \\c f or \\c e (or"]
#[doc = "\\c F or \\c E for \\c G conversions). The precision"]
#[doc = "specifies the number of significant digits. If the"]
#[doc = "precision is missing, 6 digits are given; if the precision"]
#[doc = "is zero, it is treated as 1. Style \\c e is used if the"]
#[doc = "exponent from its conversion is less than -4 or greater"]
#[doc = "than or equal to the precision. Trailing zeros are removed"]
#[doc = "from the fractional part of the result; a decimal point"]
#[doc = "appears only if it is followed by at least one digit."]
#[doc = "- \\c S Similar to the \\c s format, except the pointer is expected to"]
#[doc = "point to a program-memory (ROM) string instead of a RAM string."]
#[doc = ""]
#[doc = "In no case does a non-existent or small field width cause truncation of a"]
#[doc = "numeric field; if the result of a conversion is wider than the field"]
#[doc = "width, the field is expanded to contain the conversion result."]
#[doc = ""]
#[doc = "Since the full implementation of all the mentioned features becomes"]
#[doc = "fairly large, three different flavours of vfprintf() can be"]
#[doc = "selected using linker options. The default vfprintf() implements"]
#[doc = "all the mentioned functionality except floating point conversions."]
#[doc = "A minimized version of vfprintf() is available that only implements"]
#[doc = "the very basic integer and string conversion facilities, but only"]
#[doc = "the \\c # additional option can be specified using conversion"]
#[doc = "flags (these flags are parsed correctly from the format"]
#[doc = "specification, but then simply ignored). This version can be"]
#[doc = "requested using the following \\ref gcc_minusW \"compiler options\":"]
#[doc = ""]
#[doc = "\\code"]
#[doc = "-Wl,-u,vfprintf -lprintf_min"]
#[doc = "\\endcode"]
#[doc = ""]
#[doc = "If the full functionality including the floating point conversions"]
#[doc = "is required, the following options should be used:"]
#[doc = ""]
#[doc = "\\code"]
#[doc = "-Wl,-u,vfprintf -lprintf_flt -lm"]
#[doc = "\\endcode"]
#[doc = ""]
#[doc = "\\par Limitations:"]
#[doc = "- The specified width and precision can be at most 255."]
#[doc = ""]
#[doc = "\\par Notes:"]
#[doc = "- For floating-point conversions, if you link default or minimized"]
#[doc = "version of vfprintf(), the symbol \\c ? will be output and double"]
#[doc = "argument will be skipped. So you output below will not be crashed."]
#[doc = "For default version the width field and the \"pad to left\" ( symbol"]
#[doc = "minus ) option will work in this case."]
#[doc = "- The \\c hh length modifier is ignored (\\c char argument is"]
#[doc = "promouted to \\c int). More exactly, this realization does not check"]
#[doc = "the number of \\c h symbols."]
#[doc = "- But the \\c ll length modifier will to abort the output, as this"]
#[doc = "realization does not operate \\c long \\c long arguments."]
#[doc = "- The variable width or precision field (an asterisk \\c * symbol)"]
#[doc = "is not realized and will to abort the output."]
#[doc = ""]
pub fn vfprintf(
__stream: *mut FILE,
__fmt: *const ::rust_ctypes::c_char,
__ap: va_list,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of \\c vfprintf() that uses a \\c fmt string that resides"]
#[doc = "in program memory."]
pub fn vfprintf_P(
__stream: *mut FILE,
__fmt: *const ::rust_ctypes::c_char,
__ap: va_list,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The function \\c fputc sends the character \\c c (though given as type"]
#[doc = "\\c int) to \\c stream. It returns the character, or \\c EOF in case"]
#[doc = "an error occurred."]
pub fn fputc(__c: ::rust_ctypes::c_int, __stream: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn putc(__c: ::rust_ctypes::c_int, __stream: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn putchar(__c: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The function \\c printf performs formatted output to stream"]
#[doc = "\\c stdout. See \\c vfprintf() for details."]
pub fn printf(__fmt: *const ::rust_ctypes::c_char, ...) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of \\c printf() that uses a \\c fmt string that resides"]
#[doc = "in program memory."]
pub fn printf_P(__fmt: *const ::rust_ctypes::c_char, ...) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The function \\c vprintf performs formatted output to stream"]
#[doc = "\\c stdout, taking a variable argument list as in vfprintf()."]
#[doc = ""]
#[doc = "See vfprintf() for details."]
pub fn vprintf(__fmt: *const ::rust_ctypes::c_char, __ap: va_list) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of \\c printf() that sends the formatted characters"]
#[doc = "to string \\c s."]
pub fn sprintf(
__s: *mut ::rust_ctypes::c_char,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of \\c sprintf() that uses a \\c fmt string that resides"]
#[doc = "in program memory."]
pub fn sprintf_P(
__s: *mut ::rust_ctypes::c_char,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Like \\c sprintf(), but instead of assuming \\c s to be of infinite"]
#[doc = "size, no more than \\c n characters (including the trailing NUL"]
#[doc = "character) will be converted to \\c s."]
#[doc = ""]
#[doc = "Returns the number of characters that would have been written to"]
#[doc = "\\c s if there were enough space."]
pub fn snprintf(
__s: *mut ::rust_ctypes::c_char,
__n: size_t,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of \\c snprintf() that uses a \\c fmt string that resides"]
#[doc = "in program memory."]
pub fn snprintf_P(
__s: *mut ::rust_ctypes::c_char,
__n: size_t,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Like \\c sprintf() but takes a variable argument list for the"]
#[doc = "arguments."]
pub fn vsprintf(
__s: *mut ::rust_ctypes::c_char,
__fmt: *const ::rust_ctypes::c_char,
ap: va_list,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of \\c vsprintf() that uses a \\c fmt string that resides"]
#[doc = "in program memory."]
pub fn vsprintf_P(
__s: *mut ::rust_ctypes::c_char,
__fmt: *const ::rust_ctypes::c_char,
ap: va_list,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Like \\c vsprintf(), but instead of assuming \\c s to be of infinite"]
#[doc = "size, no more than \\c n characters (including the trailing NUL"]
#[doc = "character) will be converted to \\c s."]
#[doc = ""]
#[doc = "Returns the number of characters that would have been written to"]
#[doc = "\\c s if there were enough space."]
pub fn vsnprintf(
__s: *mut ::rust_ctypes::c_char,
__n: size_t,
__fmt: *const ::rust_ctypes::c_char,
ap: va_list,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of \\c vsnprintf() that uses a \\c fmt string that resides"]
#[doc = "in program memory."]
pub fn vsnprintf_P(
__s: *mut ::rust_ctypes::c_char,
__n: size_t,
__fmt: *const ::rust_ctypes::c_char,
ap: va_list,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The function \\c fprintf performs formatted output to \\c stream."]
#[doc = "See \\c vfprintf() for details."]
pub fn fprintf(
__stream: *mut FILE,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of \\c fprintf() that uses a \\c fmt string that resides"]
#[doc = "in program memory."]
pub fn fprintf_P(
__stream: *mut FILE,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Write the string pointed to by \\c str to stream \\c stream."]
#[doc = ""]
#[doc = "Returns 0 on success and EOF on error."]
pub fn fputs(__str: *const ::rust_ctypes::c_char, __stream: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of fputs() where \\c str resides in program memory."]
pub fn fputs_P(
__str: *const ::rust_ctypes::c_char,
__stream: *mut FILE,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Write the string pointed to by \\c str, and a trailing newline"]
#[doc = "character, to \\c stdout."]
pub fn puts(__str: *const ::rust_ctypes::c_char) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of puts() where \\c str resides in program memory."]
pub fn puts_P(__str: *const ::rust_ctypes::c_char) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Write \\c nmemb objects, \\c size bytes each, to \\c stream."]
#[doc = "The first byte of the first object is referenced by \\c ptr."]
#[doc = ""]
#[doc = "Returns the number of objects successfully written, i. e."]
#[doc = "\\c nmemb unless an output error occured."]
pub fn fwrite(
__ptr: *const ::rust_ctypes::c_void,
__size: size_t,
__nmemb: size_t,
__stream: *mut FILE,
) -> size_t;
}
extern "C" {
#[doc = "The function \\c fgetc reads a character from \\c stream. It returns"]
#[doc = "the character, or \\c EOF in case end-of-file was encountered or an"]
#[doc = "error occurred. The routines feof() or ferror() must be used to"]
#[doc = "distinguish between both situations."]
pub fn fgetc(__stream: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn getc(__stream: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn getchar() -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The ungetc() function pushes the character \\c c (converted to an"]
#[doc = "unsigned char) back onto the input stream pointed to by \\c stream."]
#[doc = "The pushed-back character will be returned by a subsequent read on"]
#[doc = "the stream."]
#[doc = ""]
#[doc = "Currently, only a single character can be pushed back onto the"]
#[doc = "stream."]
#[doc = ""]
#[doc = "The ungetc() function returns the character pushed back after the"]
#[doc = "conversion, or \\c EOF if the operation fails. If the value of the"]
#[doc = "argument \\c c character equals \\c EOF, the operation will fail and"]
#[doc = "the stream will remain unchanged."]
pub fn ungetc(__c: ::rust_ctypes::c_int, __stream: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Read at most <tt>size - 1</tt> bytes from \\c stream, until a"]
#[doc = "newline character was encountered, and store the characters in the"]
#[doc = "buffer pointed to by \\c str. Unless an error was encountered while"]
#[doc = "reading, the string will then be terminated with a \\c NUL"]
#[doc = "character."]
#[doc = ""]
#[doc = "If an error was encountered, the function returns NULL and sets the"]
#[doc = "error flag of \\c stream, which can be tested using ferror()."]
#[doc = "Otherwise, a pointer to the string will be returned."]
pub fn fgets(
__str: *mut ::rust_ctypes::c_char,
__size: ::rust_ctypes::c_int,
__stream: *mut FILE,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = "Similar to fgets() except that it will operate on stream \\c stdin,"]
#[doc = "and the trailing newline (if any) will not be stored in the string."]
#[doc = "It is the caller's responsibility to provide enough storage to hold"]
#[doc = "the characters read."]
pub fn gets(__str: *mut ::rust_ctypes::c_char) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = "Read \\c nmemb objects, \\c size bytes each, from \\c stream,"]
#[doc = "to the buffer pointed to by \\c ptr."]
#[doc = ""]
#[doc = "Returns the number of objects successfully read, i. e."]
#[doc = "\\c nmemb unless an input error occured or end-of-file was"]
#[doc = "encountered. feof() and ferror() must be used to distinguish"]
#[doc = "between these two conditions."]
pub fn fread(
__ptr: *mut ::rust_ctypes::c_void,
__size: size_t,
__nmemb: size_t,
__stream: *mut FILE,
) -> size_t;
}
extern "C" {
#[doc = "Clear the error and end-of-file flags of \\c stream."]
pub fn clearerr(__stream: *mut FILE);
}
extern "C" {
#[doc = "Test the end-of-file flag of \\c stream. This flag can only be cleared"]
#[doc = "by a call to clearerr()."]
pub fn feof(__stream: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Test the error flag of \\c stream. This flag can only be cleared"]
#[doc = "by a call to clearerr()."]
pub fn ferror(__stream: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn vfscanf(
__stream: *mut FILE,
__fmt: *const ::rust_ctypes::c_char,
__ap: va_list,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of vfscanf() using a \\c fmt string in program memory."]
pub fn vfscanf_P(
__stream: *mut FILE,
__fmt: *const ::rust_ctypes::c_char,
__ap: va_list,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The function \\c fscanf performs formatted input, reading the"]
#[doc = "input data from \\c stream."]
#[doc = ""]
#[doc = "See vfscanf() for details."]
pub fn fscanf(
__stream: *mut FILE,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of fscanf() using a \\c fmt string in program memory."]
pub fn fscanf_P(
__stream: *mut FILE,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The function \\c scanf performs formatted input from stream \\c stdin."]
#[doc = ""]
#[doc = "See vfscanf() for details."]
pub fn scanf(__fmt: *const ::rust_ctypes::c_char, ...) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of scanf() where \\c fmt resides in program memory."]
pub fn scanf_P(__fmt: *const ::rust_ctypes::c_char, ...) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The function \\c vscanf performs formatted input from stream"]
#[doc = "\\c stdin, taking a variable argument list as in vfscanf()."]
#[doc = ""]
#[doc = "See vfscanf() for details."]
pub fn vscanf(__fmt: *const ::rust_ctypes::c_char, __ap: va_list) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "The function \\c sscanf performs formatted input, reading the"]
#[doc = "input data from the buffer pointed to by \\c buf."]
#[doc = ""]
#[doc = "See vfscanf() for details."]
pub fn sscanf(
__buf: *const ::rust_ctypes::c_char,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "Variant of sscanf() using a \\c fmt string in program memory."]
pub fn sscanf_P(
__buf: *const ::rust_ctypes::c_char,
__fmt: *const ::rust_ctypes::c_char,
...
) -> ::rust_ctypes::c_int;
}
pub type fpos_t = ::rust_ctypes::c_longlong;
extern "C" {
pub fn fgetpos(stream: *mut FILE, pos: *mut fpos_t) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn fopen(
path: *const ::rust_ctypes::c_char,
mode: *const ::rust_ctypes::c_char,
) -> *mut FILE;
}
extern "C" {
pub fn freopen(
path: *const ::rust_ctypes::c_char,
mode: *const ::rust_ctypes::c_char,
stream: *mut FILE,
) -> *mut FILE;
}
extern "C" {
pub fn fdopen(arg1: ::rust_ctypes::c_int, arg2: *const ::rust_ctypes::c_char) -> *mut FILE;
}
extern "C" {
pub fn fseek(
stream: *mut FILE,
offset: ::rust_ctypes::c_long,
whence: ::rust_ctypes::c_int,
) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn fsetpos(stream: *mut FILE, pos: *mut fpos_t) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn ftell(stream: *mut FILE) -> ::rust_ctypes::c_long;
}
extern "C" {
pub fn fileno(arg1: *mut FILE) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn perror(s: *const ::rust_ctypes::c_char);
}
extern "C" {
pub fn remove(pathname: *const ::rust_ctypes::c_char) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn rename(
oldpath: *const ::rust_ctypes::c_char,
newpath: *const ::rust_ctypes::c_char,
) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn rewind(stream: *mut FILE);
}
extern "C" {
pub fn setbuf(stream: *mut FILE, buf: *mut ::rust_ctypes::c_char);
}
extern "C" {
pub fn setvbuf(
stream: *mut FILE,
buf: *mut ::rust_ctypes::c_char,
mode: ::rust_ctypes::c_int,
size: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn tmpfile() -> *mut FILE;
}
extern "C" {
pub fn tmpnam(s: *mut ::rust_ctypes::c_char) -> *mut ::rust_ctypes::c_char;
}
#[repr(C)]
#[repr(align(8))]
#[derive(Debug, Copy, Clone)]
pub struct max_align_t {
pub __clang_max_align_nonce1: ::rust_ctypes::c_longlong,
pub __clang_max_align_nonce2: f32,
}
#[test]
fn bindgen_test_layout_max_align_t() {
assert_eq!(
::core::mem::size_of::<max_align_t>(),
16usize,
concat!("Size of: ", stringify!(max_align_t))
);
assert_eq!(
::core::mem::align_of::<max_align_t>(),
8usize,
concat!("Alignment of ", stringify!(max_align_t))
);
assert_eq!(
unsafe {
&(*(::core::ptr::null::<max_align_t>())).__clang_max_align_nonce1 as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(max_align_t),
"::",
stringify!(__clang_max_align_nonce1)
)
);
assert_eq!(
unsafe {
&(*(::core::ptr::null::<max_align_t>())).__clang_max_align_nonce2 as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(max_align_t),
"::",
stringify!(__clang_max_align_nonce2)
)
);
}
extern "C" {
#[doc = " \\ingroup alloca"]
#[doc = "\\brief Allocate \\a __size bytes of space in the stack frame of the caller."]
#[doc = ""]
#[doc = "This temporary space is automatically freed when the function that"]
#[doc = "called alloca() returns to its caller. Avr-libc defines the alloca() as"]
#[doc = "a macro, which is translated into the inlined \\c __builtin_alloca()"]
#[doc = "function. The fact that the code is inlined, means that it is impossible"]
#[doc = "to take the address of this function, or to change its behaviour by"]
#[doc = "linking with a different library."]
#[doc = ""]
#[doc = "\\return alloca() returns a pointer to the beginning of the allocated"]
#[doc = "space. If the allocation causes stack overflow, program behaviour is"]
#[doc = "undefined."]
#[doc = ""]
#[doc = "\\warning Avoid use alloca() inside the list of arguments of a function"]
#[doc = "call."]
pub fn alloca(__size: size_t) -> *mut ::rust_ctypes::c_void;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _jmp_buf {
pub _jb: [::rust_ctypes::c_uchar; 23usize],
}
#[test]
fn bindgen_test_layout__jmp_buf() {
assert_eq!(
::core::mem::size_of::<_jmp_buf>(),
23usize,
concat!("Size of: ", stringify!(_jmp_buf))
);
assert_eq!(
::core::mem::align_of::<_jmp_buf>(),
1usize,
concat!("Alignment of ", stringify!(_jmp_buf))
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<_jmp_buf>()))._jb as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(_jmp_buf),
"::",
stringify!(_jb)
)
);
}
pub type jmp_buf = [_jmp_buf; 1usize];
extern "C" {
#[doc = " \\ingroup setjmp"]
#[doc = "\\brief Save stack context for non-local goto."]
#[doc = ""]
#[doc = "\\code #include <setjmp.h>\\endcode"]
#[doc = ""]
#[doc = "setjmp() saves the stack context/environment in \\e __jmpb for later use by"]
#[doc = "longjmp(). The stack context will be invalidated if the function which"]
#[doc = "called setjmp() returns."]
#[doc = ""]
#[doc = "\\param __jmpb Variable of type \\c jmp_buf which holds the stack"]
#[doc = "information such that the environment can be restored."]
#[doc = ""]
#[doc = "\\returns setjmp() returns 0 if returning directly, and"]
#[doc = "non-zero when returning from longjmp() using the saved context."]
pub fn setjmp(__jmpb: *mut _jmp_buf) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup setjmp"]
#[doc = "\\brief Non-local jump to a saved stack context."]
#[doc = ""]
#[doc = "\\code #include <setjmp.h>\\endcode"]
#[doc = ""]
#[doc = "longjmp() restores the environment saved by the last call of setjmp() with"]
#[doc = "the corresponding \\e __jmpb argument. After longjmp() is completed,"]
#[doc = "program execution continues as if the corresponding call of setjmp() had"]
#[doc = "just returned the value \\e __ret."]
#[doc = ""]
#[doc = "\\note longjmp() cannot cause 0 to be returned. If longjmp() is invoked"]
#[doc = "with a second argument of 0, 1 will be returned instead."]
#[doc = ""]
#[doc = "\\param __jmpb Information saved by a previous call to setjmp()."]
#[doc = "\\param __ret Value to return to the caller of setjmp()."]
#[doc = ""]
#[doc = "\\returns This function never returns."]
pub fn longjmp(__jmpb: *mut _jmp_buf, __ret: ::rust_ctypes::c_int);
}
pub type sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: ::rust_ctypes::c_int)>;
extern "C" {
pub fn signal(signum: ::rust_ctypes::c_int, handler: sighandler_t) -> sighandler_t;
}
extern "C" {
pub static mut sig_atomic_t: ::rust_ctypes::c_schar;
}
pub type sigset_t = ::rust_ctypes::c_int;
extern "C" {
pub fn raise(sig: ::rust_ctypes::c_int) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn usa_dst(timer: *const time_t, z: *mut i32) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn eu_dst(timer: *const time_t, z: *mut i32) -> ::rust_ctypes::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fuse_t {
pub low: ::rust_ctypes::c_uchar,
pub high: ::rust_ctypes::c_uchar,
pub extended: ::rust_ctypes::c_uchar,
}
#[test]
fn bindgen_test_layout___fuse_t() {
assert_eq!(
::core::mem::size_of::<__fuse_t>(),
3usize,
concat!("Size of: ", stringify!(__fuse_t))
);
assert_eq!(
::core::mem::align_of::<__fuse_t>(),
1usize,
concat!("Alignment of ", stringify!(__fuse_t))
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__fuse_t>())).low as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(__fuse_t),
"::",
stringify!(low)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__fuse_t>())).high as *const _ as usize },
1usize,
concat!(
"Offset of field: ",
stringify!(__fuse_t),
"::",
stringify!(high)
)
);
assert_eq!(
unsafe { &(*(::core::ptr::null::<__fuse_t>())).extended as *const _ as usize },
2usize,
concat!(
"Offset of field: ",
stringify!(__fuse_t),
"::",
stringify!(extended)
)
);
}
extern "C" {
pub static __signature: [::rust_ctypes::c_uchar; 3usize];
}
extern "C" {
#[doc = "\\ingroup avr_builtins"]
#[doc = ""]
#[doc = "Enables interrupts by setting the global interrupt mask."]
pub fn __builtin_avr_sei();
}
extern "C" {
#[doc = "\\ingroup avr_builtins"]
#[doc = ""]
#[doc = "Disables all interrupts by clearing the global interrupt mask."]
pub fn __builtin_avr_cli();
}
extern "C" {
#[doc = "\\ingroup avr_builtins"]
#[doc = ""]
#[doc = "Emits a \\c SLEEP instruction."]
pub fn __builtin_avr_sleep();
}
extern "C" {
#[doc = "\\ingroup avr_builtins"]
#[doc = ""]
#[doc = "Emits a WDR (watchdog reset) instruction."]
pub fn __builtin_avr_wdr();
}
extern "C" {
#[doc = "\\ingroup avr_builtins"]
#[doc = ""]
#[doc = "Emits a SWAP (nibble swap) instruction on __b."]
pub fn __builtin_avr_swap(__b: ::rust_ctypes::c_uchar) -> ::rust_ctypes::c_uchar;
}
extern "C" {
#[doc = "\\ingroup avr_builtins"]
#[doc = ""]
#[doc = "Emits an FMUL (fractional multiply unsigned) instruction."]
pub fn __builtin_avr_fmul(
__a: ::rust_ctypes::c_uchar,
__b: ::rust_ctypes::c_uchar,
) -> ::rust_ctypes::c_uint;
}
extern "C" {
#[doc = "\\ingroup avr_builtins"]
#[doc = ""]
#[doc = "Emits an FMUL (fractional multiply signed) instruction."]
pub fn __builtin_avr_fmuls(
__a: ::rust_ctypes::c_char,
__b: ::rust_ctypes::c_char,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "\\ingroup avr_builtins"]
#[doc = ""]
#[doc = "Emits an FMUL (fractional multiply signed with unsigned) instruction."]
pub fn __builtin_avr_fmulsu(
__a: ::rust_ctypes::c_char,
__b: ::rust_ctypes::c_uchar,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = "\\ingroup avr_builtins"]
#[doc = ""]
#[doc = "Emits a sequence of instructions causing the CPU to spend"]
#[doc = "\\c __n cycles on it."]
pub fn __builtin_avr_delay_cycles(__n: ::rust_ctypes::c_ulong);
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn const void * memchr_P(const void *s, int val, size_t len)"]
#[doc = "\\brief Scan flash memory for a character."]
#[doc = ""]
#[doc = "The memchr_P() function scans the first \\p len bytes of the flash"]
#[doc = "memory area pointed to by \\p s for the character \\p val. The first"]
#[doc = "byte to match \\p val (interpreted as an unsigned character) stops"]
#[doc = "the operation."]
#[doc = ""]
#[doc = "\\return The memchr_P() function returns a pointer to the matching"]
#[doc = "byte or \\c NULL if the character does not occur in the given memory"]
#[doc = "area."]
pub fn memchr_P(
arg1: *const ::rust_ctypes::c_void,
__val: ::rust_ctypes::c_int,
__len: size_t,
) -> *const ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int memcmp_P(const void *s1, const void *s2, size_t len)"]
#[doc = "\\brief Compare memory areas"]
#[doc = ""]
#[doc = "The memcmp_P() function compares the first \\p len bytes of the memory"]
#[doc = "areas \\p s1 and flash \\p s2. The comparision is performed using unsigned"]
#[doc = "char operations."]
#[doc = ""]
#[doc = "\\returns The memcmp_P() function returns an integer less than, equal"]
#[doc = "to, or greater than zero if the first \\p len bytes of \\p s1 is found,"]
#[doc = "respectively, to be less than, to match, or be greater than the first"]
#[doc = "\\p len bytes of \\p s2."]
pub fn memcmp_P(
arg1: *const ::rust_ctypes::c_void,
arg2: *const ::rust_ctypes::c_void,
arg3: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn void *memccpy_P (void *dest, const void *src, int val, size_t len)"]
#[doc = ""]
#[doc = "This function is similar to memccpy() except that \\p src is pointer"]
#[doc = "to a string in program space."]
pub fn memccpy_P(
arg1: *mut ::rust_ctypes::c_void,
arg2: *const ::rust_ctypes::c_void,
__val: ::rust_ctypes::c_int,
arg3: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn void *memcpy_P(void *dest, const void *src, size_t n)"]
#[doc = ""]
#[doc = "The memcpy_P() function is similar to memcpy(), except the src string"]
#[doc = "resides in program space."]
#[doc = ""]
#[doc = "\\returns The memcpy_P() function returns a pointer to dest."]
pub fn memcpy_P(
arg1: *mut ::rust_ctypes::c_void,
arg2: *const ::rust_ctypes::c_void,
arg3: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn void *memmem_P(const void *s1, size_t len1, const void *s2, size_t len2)"]
#[doc = ""]
#[doc = "The memmem_P() function is similar to memmem() except that \\p s2 is"]
#[doc = "pointer to a string in program space."]
pub fn memmem_P(
arg1: *const ::rust_ctypes::c_void,
arg2: size_t,
arg3: *const ::rust_ctypes::c_void,
arg4: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn const void +memrchr_P(const void *src, int val, size_t len)"]
#[doc = ""]
#[doc = "The memrchr_P() function is like the memchr_P() function, except"]
#[doc = "that it searches backwards from the end of the \\p len bytes pointed"]
#[doc = "to by \\p src instead of forwards from the front. (Glibc, GNU extension.)"]
#[doc = ""]
#[doc = "\\return The memrchr_P() function returns a pointer to the matching"]
#[doc = "byte or \\c NULL if the character does not occur in the given memory"]
#[doc = "area."]
pub fn memrchr_P(
arg1: *const ::rust_ctypes::c_void,
__val: ::rust_ctypes::c_int,
__len: size_t,
) -> *const ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strcat_P(char *dest, const char *src)"]
#[doc = ""]
#[doc = "The strcat_P() function is similar to strcat() except that the \\e src"]
#[doc = "string must be located in program space (flash)."]
#[doc = ""]
#[doc = "\\returns The strcat() function returns a pointer to the resulting string"]
#[doc = "\\e dest."]
pub fn strcat_P(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn const char *strchr_P(const char *s, int val)"]
#[doc = "\\brief Locate character in program space string."]
#[doc = ""]
#[doc = "The strchr_P() function locates the first occurrence of \\p val"]
#[doc = "(converted to a char) in the string pointed to by \\p s in program"]
#[doc = "space. The terminating null character is considered to be part of"]
#[doc = "the string."]
#[doc = ""]
#[doc = "The strchr_P() function is similar to strchr() except that \\p s is"]
#[doc = "pointer to a string in program space."]
#[doc = ""]
#[doc = "\\returns The strchr_P() function returns a pointer to the matched"]
#[doc = "character or \\c NULL if the character is not found."]
pub fn strchr_P(
arg1: *const ::rust_ctypes::c_char,
__val: ::rust_ctypes::c_int,
) -> *const ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn const char *strchrnul_P(const char *s, int c)"]
#[doc = ""]
#[doc = "The strchrnul_P() function is like strchr_P() except that if \\p c is"]
#[doc = "not found in \\p s, then it returns a pointer to the null byte at the"]
#[doc = "end of \\p s, rather than \\c NULL. (Glibc, GNU extension.)"]
#[doc = ""]
#[doc = "\\return The strchrnul_P() function returns a pointer to the matched"]
#[doc = "character, or a pointer to the null byte at the end of \\p s (i.e.,"]
#[doc = "\\c s+strlen(s)) if the character is not found."]
pub fn strchrnul_P(
arg1: *const ::rust_ctypes::c_char,
__val: ::rust_ctypes::c_int,
) -> *const ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int strcmp_P(const char *s1, const char *s2)"]
#[doc = ""]
#[doc = "The strcmp_P() function is similar to strcmp() except that \\p s2 is"]
#[doc = "pointer to a string in program space."]
#[doc = ""]
#[doc = "\\returns The strcmp_P() function returns an integer less than, equal"]
#[doc = "to, or greater than zero if \\p s1 is found, respectively, to be less"]
#[doc = "than, to match, or be greater than \\p s2. A consequence of the"]
#[doc = "ordering used by strcmp_P() is that if \\p s1 is an initial substring"]
#[doc = "of \\p s2, then \\p s1 is considered to be \"less than\" \\p s2."]
pub fn strcmp_P(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strcpy_P(char *dest, const char *src)"]
#[doc = ""]
#[doc = "The strcpy_P() function is similar to strcpy() except that src is a"]
#[doc = "pointer to a string in program space."]
#[doc = ""]
#[doc = "\\returns The strcpy_P() function returns a pointer to the destination"]
#[doc = "string dest."]
pub fn strcpy_P(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int strcasecmp_P(const char *s1, const char *s2)"]
#[doc = "\\brief Compare two strings ignoring case."]
#[doc = ""]
#[doc = "The strcasecmp_P() function compares the two strings \\p s1 and \\p s2,"]
#[doc = "ignoring the case of the characters."]
#[doc = ""]
#[doc = "\\param s1 A pointer to a string in the devices SRAM."]
#[doc = "\\param s2 A pointer to a string in the devices Flash."]
#[doc = ""]
#[doc = "\\returns The strcasecmp_P() function returns an integer less than,"]
#[doc = "equal to, or greater than zero if \\p s1 is found, respectively, to"]
#[doc = "be less than, to match, or be greater than \\p s2. A consequence of"]
#[doc = "the ordering used by strcasecmp_P() is that if \\p s1 is an initial"]
#[doc = "substring of \\p s2, then \\p s1 is considered to be \"less than\" \\p s2."]
pub fn strcasecmp_P(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strcasestr_P(const char *s1, const char *s2)"]
#[doc = ""]
#[doc = "This funtion is similar to strcasestr() except that \\p s2 is pointer"]
#[doc = "to a string in program space."]
pub fn strcasestr_P(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn size_t strcspn_P(const char *s, const char *reject)"]
#[doc = ""]
#[doc = "The strcspn_P() function calculates the length of the initial segment"]
#[doc = "of \\p s which consists entirely of characters not in \\p reject. This"]
#[doc = "function is similar to strcspn() except that \\p reject is a pointer"]
#[doc = "to a string in program space."]
#[doc = ""]
#[doc = "\\return The strcspn_P() function returns the number of characters in"]
#[doc = "the initial segment of \\p s which are not in the string \\p reject."]
#[doc = "The terminating zero is not considered as a part of string."]
pub fn strcspn_P(
__s: *const ::rust_ctypes::c_char,
__reject: *const ::rust_ctypes::c_char,
) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn size_t strlcat_P(char *dst, const char *src, size_t siz)"]
#[doc = "\\brief Concatenate two strings."]
#[doc = ""]
#[doc = "The strlcat_P() function is similar to strlcat(), except that the \\p src"]
#[doc = "string must be located in program space (flash)."]
#[doc = ""]
#[doc = "Appends \\p src to string \\p dst of size \\p siz (unlike strncat(),"]
#[doc = "\\p siz is the full size of \\p dst, not space left). At most \\p siz-1"]
#[doc = "characters will be copied. Always NULL terminates (unless \\p siz <="]
#[doc = "\\p strlen(dst))."]
#[doc = ""]
#[doc = "\\returns The strlcat_P() function returns strlen(src) + MIN(siz,"]
#[doc = "strlen(initial dst)). If retval >= siz, truncation occurred."]
pub fn strlcat_P(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn size_t strlcpy_P(char *dst, const char *src, size_t siz)"]
#[doc = "\\brief Copy a string from progmem to RAM."]
#[doc = ""]
#[doc = "Copy \\p src to string \\p dst of size \\p siz. At most \\p siz-1"]
#[doc = "characters will be copied. Always NULL terminates (unless \\p siz == 0)."]
#[doc = "The strlcpy_P() function is similar to strlcpy() except that the"]
#[doc = "\\p src is pointer to a string in memory space."]
#[doc = ""]
#[doc = "\\returns The strlcpy_P() function returns strlen(src). If"]
#[doc = "retval >= siz, truncation occurred."]
pub fn strlcpy_P(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn size_t strnlen_P(const char *src, size_t len)"]
#[doc = "\\brief Determine the length of a fixed-size string."]
#[doc = ""]
#[doc = "The strnlen_P() function is similar to strnlen(), except that \\c src is a"]
#[doc = "pointer to a string in program space."]
#[doc = ""]
#[doc = "\\returns The strnlen_P function returns strlen_P(src), if that is less than"]
#[doc = "\\c len, or \\c len if there is no '\\\\0' character among the first \\c len"]
#[doc = "characters pointed to by \\c src."]
pub fn strnlen_P(arg1: *const ::rust_ctypes::c_char, arg2: size_t) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int strncmp_P(const char *s1, const char *s2, size_t n)"]
#[doc = ""]
#[doc = "The strncmp_P() function is similar to strcmp_P() except it only compares"]
#[doc = "the first (at most) n characters of s1 and s2."]
#[doc = ""]
#[doc = "\\returns The strncmp_P() function returns an integer less than, equal to,"]
#[doc = "or greater than zero if s1 (or the first n bytes thereof) is found,"]
#[doc = "respectively, to be less than, to match, or be greater than s2."]
pub fn strncmp_P(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int strncasecmp_P(const char *s1, const char *s2, size_t n)"]
#[doc = "\\brief Compare two strings ignoring case."]
#[doc = ""]
#[doc = "The strncasecmp_P() function is similar to strcasecmp_P(), except it"]
#[doc = "only compares the first \\p n characters of \\p s1."]
#[doc = ""]
#[doc = "\\param s1 A pointer to a string in the devices SRAM."]
#[doc = "\\param s2 A pointer to a string in the devices Flash."]
#[doc = "\\param n The maximum number of bytes to compare."]
#[doc = ""]
#[doc = "\\returns The strncasecmp_P() function returns an integer less than,"]
#[doc = "equal to, or greater than zero if \\p s1 (or the first \\p n bytes"]
#[doc = "thereof) is found, respectively, to be less than, to match, or be"]
#[doc = "greater than \\p s2. A consequence of the ordering used by"]
#[doc = "strncasecmp_P() is that if \\p s1 is an initial substring of \\p s2,"]
#[doc = "then \\p s1 is considered to be \"less than\" \\p s2."]
pub fn strncasecmp_P(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strncat_P(char *dest, const char *src, size_t len)"]
#[doc = "\\brief Concatenate two strings."]
#[doc = ""]
#[doc = "The strncat_P() function is similar to strncat(), except that the \\e src"]
#[doc = "string must be located in program space (flash)."]
#[doc = ""]
#[doc = "\\returns The strncat_P() function returns a pointer to the resulting string"]
#[doc = "dest."]
pub fn strncat_P(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strncpy_P(char *dest, const char *src, size_t n)"]
#[doc = ""]
#[doc = "The strncpy_P() function is similar to strcpy_P() except that not more"]
#[doc = "than n bytes of src are copied. Thus, if there is no null byte among the"]
#[doc = "first n bytes of src, the result will not be null-terminated."]
#[doc = ""]
#[doc = "In the case where the length of src is less than that of n, the remainder"]
#[doc = "of dest will be padded with nulls."]
#[doc = ""]
#[doc = "\\returns The strncpy_P() function returns a pointer to the destination"]
#[doc = "string dest."]
pub fn strncpy_P(
arg1: *mut ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
arg3: size_t,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strpbrk_P(const char *s, const char *accept)"]
#[doc = ""]
#[doc = "The strpbrk_P() function locates the first occurrence in the string"]
#[doc = "\\p s of any of the characters in the flash string \\p accept. This"]
#[doc = "function is similar to strpbrk() except that \\p accept is a pointer"]
#[doc = "to a string in program space."]
#[doc = ""]
#[doc = "\\return The strpbrk_P() function returns a pointer to the character"]
#[doc = "in \\p s that matches one of the characters in \\p accept, or \\c NULL"]
#[doc = "if no such character is found. The terminating zero is not considered"]
#[doc = "as a part of string: if one or both args are empty, the result will"]
#[doc = "\\c NULL."]
pub fn strpbrk_P(
__s: *const ::rust_ctypes::c_char,
__accept: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn const char *strrchr_P(const char *s, int val)"]
#[doc = "\\brief Locate character in string."]
#[doc = ""]
#[doc = "The strrchr_P() function returns a pointer to the last occurrence of"]
#[doc = "the character \\p val in the flash string \\p s."]
#[doc = ""]
#[doc = "\\return The strrchr_P() function returns a pointer to the matched"]
#[doc = "character or \\c NULL if the character is not found."]
pub fn strrchr_P(
arg1: *const ::rust_ctypes::c_char,
__val: ::rust_ctypes::c_int,
) -> *const ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strsep_P(char **sp, const char *delim)"]
#[doc = "\\brief Parse a string into tokens."]
#[doc = ""]
#[doc = "The strsep_P() function locates, in the string referenced by \\p *sp,"]
#[doc = "the first occurrence of any character in the string \\p delim (or the"]
#[doc = "terminating '\\\\0' character) and replaces it with a '\\\\0'. The"]
#[doc = "location of the next character after the delimiter character (or \\c"]
#[doc = "NULL, if the end of the string was reached) is stored in \\p *sp. An"]
#[doc = "``empty'' field, i.e. one caused by two adjacent delimiter"]
#[doc = "characters, can be detected by comparing the location referenced by"]
#[doc = "the pointer returned in \\p *sp to '\\\\0'. This function is similar to"]
#[doc = "strsep() except that \\p delim is a pointer to a string in program"]
#[doc = "space."]
#[doc = ""]
#[doc = "\\return The strsep_P() function returns a pointer to the original"]
#[doc = "value of \\p *sp. If \\p *sp is initially \\c NULL, strsep_P() returns"]
#[doc = "\\c NULL."]
pub fn strsep_P(
__sp: *mut *mut ::rust_ctypes::c_char,
__delim: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn size_t strspn_P(const char *s, const char *accept)"]
#[doc = ""]
#[doc = "The strspn_P() function calculates the length of the initial segment"]
#[doc = "of \\p s which consists entirely of characters in \\p accept. This"]
#[doc = "function is similar to strspn() except that \\p accept is a pointer"]
#[doc = "to a string in program space."]
#[doc = ""]
#[doc = "\\return The strspn_P() function returns the number of characters in"]
#[doc = "the initial segment of \\p s which consist only of characters from \\p"]
#[doc = "accept. The terminating zero is not considered as a part of string."]
pub fn strspn_P(
__s: *const ::rust_ctypes::c_char,
__accept: *const ::rust_ctypes::c_char,
) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strstr_P(const char *s1, const char *s2)"]
#[doc = "\\brief Locate a substring."]
#[doc = ""]
#[doc = "The strstr_P() function finds the first occurrence of the substring"]
#[doc = "\\p s2 in the string \\p s1. The terminating '\\\\0' characters are not"]
#[doc = "compared. The strstr_P() function is similar to strstr() except that"]
#[doc = "\\p s2 is pointer to a string in program space."]
#[doc = ""]
#[doc = "\\returns The strstr_P() function returns a pointer to the beginning"]
#[doc = "of the substring, or NULL if the substring is not found. If \\p s2"]
#[doc = "points to a string of zero length, the function returns \\p s1."]
pub fn strstr_P(
arg1: *const ::rust_ctypes::c_char,
arg2: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strtok_P(char *s, const char * delim)"]
#[doc = "\\brief Parses the string into tokens."]
#[doc = ""]
#[doc = "strtok_P() parses the string \\p s into tokens. The first call to"]
#[doc = "strtok_P() should have \\p s as its first argument. Subsequent calls"]
#[doc = "should have the first argument set to NULL. If a token ends with a"]
#[doc = "delimiter, this delimiting character is overwritten with a '\\\\0' and a"]
#[doc = "pointer to the next character is saved for the next call to strtok_P()."]
#[doc = "The delimiter string \\p delim may be different for each call."]
#[doc = ""]
#[doc = "The strtok_P() function is similar to strtok() except that \\p delim"]
#[doc = "is pointer to a string in program space."]
#[doc = ""]
#[doc = "\\returns The strtok_P() function returns a pointer to the next token or"]
#[doc = "NULL when no more tokens are found."]
#[doc = ""]
#[doc = "\\note strtok_P() is NOT reentrant. For a reentrant version of this"]
#[doc = "function see strtok_rP()."]
pub fn strtok_P(
__s: *mut ::rust_ctypes::c_char,
__delim: *const ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strtok_rP (char *string, const char *delim, char **last)"]
#[doc = "\\brief Parses string into tokens."]
#[doc = ""]
#[doc = "The strtok_rP() function parses \\p string into tokens. The first call to"]
#[doc = "strtok_rP() should have string as its first argument. Subsequent calls"]
#[doc = "should have the first argument set to NULL. If a token ends with a"]
#[doc = "delimiter, this delimiting character is overwritten with a '\\\\0' and a"]
#[doc = "pointer to the next character is saved for the next call to strtok_rP()."]
#[doc = "The delimiter string \\p delim may be different for each call. \\p last is"]
#[doc = "a user allocated char* pointer. It must be the same while parsing the"]
#[doc = "same string. strtok_rP() is a reentrant version of strtok_P()."]
#[doc = ""]
#[doc = "The strtok_rP() function is similar to strtok_r() except that \\p delim"]
#[doc = "is pointer to a string in program space."]
#[doc = ""]
#[doc = "\\returns The strtok_rP() function returns a pointer to the next token or"]
#[doc = "NULL when no more tokens are found."]
pub fn strtok_rP(
__s: *mut ::rust_ctypes::c_char,
__delim: *const ::rust_ctypes::c_char,
__last: *mut *mut ::rust_ctypes::c_char,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn size_t strlen_PF(uint_farptr_t s)"]
#[doc = "\\brief Obtain the length of a string"]
#[doc = ""]
#[doc = "The strlen_PF() function is similar to strlen(), except that \\e s is a"]
#[doc = "far pointer to a string in program space."]
#[doc = ""]
#[doc = "\\param s A far pointer to the string in flash"]
#[doc = ""]
#[doc = "\\returns The strlen_PF() function returns the number of characters in"]
#[doc = "\\e s. The contents of RAMPZ SFR are undefined when the function returns."]
pub fn strlen_PF(src: uint_farptr_t) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn size_t strnlen_PF(uint_farptr_t s, size_t len)"]
#[doc = "\\brief Determine the length of a fixed-size string"]
#[doc = ""]
#[doc = "The strnlen_PF() function is similar to strnlen(), except that \\e s is a"]
#[doc = "far pointer to a string in program space."]
#[doc = ""]
#[doc = "\\param s A far pointer to the string in Flash"]
#[doc = "\\param len The maximum number of length to return"]
#[doc = ""]
#[doc = "\\returns The strnlen_PF function returns strlen_P(\\e s), if that is less"]
#[doc = "than \\e len, or \\e len if there is no '\\\\0' character among the first \\e"]
#[doc = "len characters pointed to by \\e s. The contents of RAMPZ SFR are"]
#[doc = "undefined when the function returns."]
pub fn strnlen_PF(src: uint_farptr_t, len: size_t) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn void *memcpy_PF(void *dest, uint_farptr_t src, size_t n)"]
#[doc = "\\brief Copy a memory block from flash to SRAM"]
#[doc = ""]
#[doc = "The memcpy_PF() function is similar to memcpy(), except the data"]
#[doc = "is copied from the program space and is addressed using a far pointer."]
#[doc = ""]
#[doc = "\\param dest A pointer to the destination buffer"]
#[doc = "\\param src A far pointer to the origin of data in flash memory"]
#[doc = "\\param n The number of bytes to be copied"]
#[doc = ""]
#[doc = "\\returns The memcpy_PF() function returns a pointer to \\e dst. The contents"]
#[doc = "of RAMPZ SFR are undefined when the function returns."]
pub fn memcpy_PF(
dest: *mut ::rust_ctypes::c_void,
src: uint_farptr_t,
len: size_t,
) -> *mut ::rust_ctypes::c_void;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strcpy_PF(char *dst, uint_farptr_t src)"]
#[doc = "\\brief Duplicate a string"]
#[doc = ""]
#[doc = "The strcpy_PF() function is similar to strcpy() except that \\e src is a far"]
#[doc = "pointer to a string in program space."]
#[doc = ""]
#[doc = "\\param dst A pointer to the destination string in SRAM"]
#[doc = "\\param src A far pointer to the source string in Flash"]
#[doc = ""]
#[doc = "\\returns The strcpy_PF() function returns a pointer to the destination"]
#[doc = "string \\e dst. The contents of RAMPZ SFR are undefined when the funcion"]
#[doc = "returns."]
pub fn strcpy_PF(
dest: *mut ::rust_ctypes::c_char,
src: uint_farptr_t,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strncpy_PF(char *dst, uint_farptr_t src, size_t n)"]
#[doc = "\\brief Duplicate a string until a limited length"]
#[doc = ""]
#[doc = "The strncpy_PF() function is similar to strcpy_PF() except that not more"]
#[doc = "than \\e n bytes of \\e src are copied. Thus, if there is no null byte among"]
#[doc = "the first \\e n bytes of \\e src, the result will not be null-terminated."]
#[doc = ""]
#[doc = "In the case where the length of \\e src is less than that of \\e n, the"]
#[doc = "remainder of \\e dst will be padded with nulls."]
#[doc = ""]
#[doc = "\\param dst A pointer to the destination string in SRAM"]
#[doc = "\\param src A far pointer to the source string in Flash"]
#[doc = "\\param n The maximum number of bytes to copy"]
#[doc = ""]
#[doc = "\\returns The strncpy_PF() function returns a pointer to the destination"]
#[doc = "string \\e dst. The contents of RAMPZ SFR are undefined when the function"]
#[doc = "returns."]
pub fn strncpy_PF(
dest: *mut ::rust_ctypes::c_char,
src: uint_farptr_t,
len: size_t,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strcat_PF(char *dst, uint_farptr_t src)"]
#[doc = "\\brief Concatenates two strings"]
#[doc = ""]
#[doc = "The strcat_PF() function is similar to strcat() except that the \\e src"]
#[doc = "string must be located in program space (flash) and is addressed using"]
#[doc = "a far pointer"]
#[doc = ""]
#[doc = "\\param dst A pointer to the destination string in SRAM"]
#[doc = "\\param src A far pointer to the string to be appended in Flash"]
#[doc = ""]
#[doc = "\\returns The strcat_PF() function returns a pointer to the resulting"]
#[doc = "string \\e dst. The contents of RAMPZ SFR are undefined when the function"]
#[doc = "returns"]
pub fn strcat_PF(
dest: *mut ::rust_ctypes::c_char,
src: uint_farptr_t,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn size_t strlcat_PF(char *dst, uint_farptr_t src, size_t n)"]
#[doc = "\\brief Concatenate two strings"]
#[doc = ""]
#[doc = "The strlcat_PF() function is similar to strlcat(), except that the \\e src"]
#[doc = "string must be located in program space (flash) and is addressed using"]
#[doc = "a far pointer."]
#[doc = ""]
#[doc = "Appends src to string dst of size \\e n (unlike strncat(), \\e n is the"]
#[doc = "full size of \\e dst, not space left). At most \\e n-1 characters"]
#[doc = "will be copied. Always NULL terminates (unless \\e n <= strlen(\\e dst))."]
#[doc = ""]
#[doc = "\\param dst A pointer to the destination string in SRAM"]
#[doc = "\\param src A far pointer to the source string in Flash"]
#[doc = "\\param n The total number of bytes allocated to the destination string"]
#[doc = ""]
#[doc = "\\returns The strlcat_PF() function returns strlen(\\e src) + MIN(\\e n,"]
#[doc = "strlen(initial \\e dst)). If retval >= \\e n, truncation occurred. The"]
#[doc = "contents of RAMPZ SFR are undefined when the funcion returns."]
pub fn strlcat_PF(dst: *mut ::rust_ctypes::c_char, src: uint_farptr_t, siz: size_t) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strncat_PF(char *dst, uint_farptr_t src, size_t n)"]
#[doc = "\\brief Concatenate two strings"]
#[doc = ""]
#[doc = "The strncat_PF() function is similar to strncat(), except that the \\e src"]
#[doc = "string must be located in program space (flash) and is addressed using a"]
#[doc = "far pointer."]
#[doc = ""]
#[doc = "\\param dst A pointer to the destination string in SRAM"]
#[doc = "\\param src A far pointer to the source string in Flash"]
#[doc = "\\param n The maximum number of bytes to append"]
#[doc = ""]
#[doc = "\\returns The strncat_PF() function returns a pointer to the resulting"]
#[doc = "string \\e dst. The contents of RAMPZ SFR are undefined when the function"]
#[doc = "returns."]
pub fn strncat_PF(
dest: *mut ::rust_ctypes::c_char,
src: uint_farptr_t,
len: size_t,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int strcmp_PF(const char *s1, uint_farptr_t s2)"]
#[doc = "\\brief Compares two strings"]
#[doc = ""]
#[doc = "The strcmp_PF() function is similar to strcmp() except that \\e s2 is a far"]
#[doc = "pointer to a string in program space."]
#[doc = ""]
#[doc = "\\param s1 A pointer to the first string in SRAM"]
#[doc = "\\param s2 A far pointer to the second string in Flash"]
#[doc = ""]
#[doc = "\\returns The strcmp_PF() function returns an integer less than, equal to,"]
#[doc = "or greater than zero if \\e s1 is found, respectively, to be less than, to"]
#[doc = "match, or be greater than \\e s2. The contents of RAMPZ SFR are undefined"]
#[doc = "when the function returns."]
pub fn strcmp_PF(s1: *const ::rust_ctypes::c_char, s2: uint_farptr_t) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int strncmp_PF(const char *s1, uint_farptr_t s2, size_t n)"]
#[doc = "\\brief Compare two strings with limited length"]
#[doc = ""]
#[doc = "The strncmp_PF() function is similar to strcmp_PF() except it only"]
#[doc = "compares the first (at most) \\e n characters of \\e s1 and \\e s2."]
#[doc = ""]
#[doc = "\\param s1 A pointer to the first string in SRAM"]
#[doc = "\\param s2 A far pointer to the second string in Flash"]
#[doc = "\\param n The maximum number of bytes to compare"]
#[doc = ""]
#[doc = "\\returns The strncmp_PF() function returns an integer less than, equal"]
#[doc = "to, or greater than zero if \\e s1 (or the first \\e n bytes thereof) is found,"]
#[doc = "respectively, to be less than, to match, or be greater than \\e s2. The"]
#[doc = "contents of RAMPZ SFR are undefined when the function returns."]
pub fn strncmp_PF(
s1: *const ::rust_ctypes::c_char,
s2: uint_farptr_t,
n: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int strcasecmp_PF(const char *s1, uint_farptr_t s2)"]
#[doc = "\\brief Compare two strings ignoring case"]
#[doc = ""]
#[doc = "The strcasecmp_PF() function compares the two strings \\e s1 and \\e s2, ignoring"]
#[doc = "the case of the characters."]
#[doc = ""]
#[doc = "\\param s1 A pointer to the first string in SRAM"]
#[doc = "\\param s2 A far pointer to the second string in Flash"]
#[doc = ""]
#[doc = "\\returns The strcasecmp_PF() function returns an integer less than, equal"]
#[doc = "to, or greater than zero if \\e s1 is found, respectively, to be less than, to"]
#[doc = "match, or be greater than \\e s2. The contents of RAMPZ SFR are undefined"]
#[doc = "when the function returns."]
pub fn strcasecmp_PF(
s1: *const ::rust_ctypes::c_char,
s2: uint_farptr_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int strncasecmp_PF(const char *s1, uint_farptr_t s2, size_t n)"]
#[doc = "\\brief Compare two strings ignoring case"]
#[doc = ""]
#[doc = "The strncasecmp_PF() function is similar to strcasecmp_PF(), except it"]
#[doc = "only compares the first \\e n characters of \\e s1 and the string in flash is"]
#[doc = "addressed using a far pointer."]
#[doc = ""]
#[doc = "\\param s1 A pointer to a string in SRAM"]
#[doc = "\\param s2 A far pointer to a string in Flash"]
#[doc = "\\param n The maximum number of bytes to compare"]
#[doc = ""]
#[doc = "\\returns The strncasecmp_PF() function returns an integer less than, equal"]
#[doc = "to, or greater than zero if \\e s1 (or the first \\e n bytes thereof) is found,"]
#[doc = "respectively, to be less than, to match, or be greater than \\e s2. The"]
#[doc = "contents of RAMPZ SFR are undefined when the function returns."]
pub fn strncasecmp_PF(
s1: *const ::rust_ctypes::c_char,
s2: uint_farptr_t,
n: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn char *strstr_PF(const char *s1, uint_farptr_t s2)"]
#[doc = "\\brief Locate a substring."]
#[doc = ""]
#[doc = "The strstr_PF() function finds the first occurrence of the substring \\c s2"]
#[doc = "in the string \\c s1. The terminating '\\\\0' characters are not"]
#[doc = "compared."]
#[doc = "The strstr_PF() function is similar to strstr() except that \\c s2 is a"]
#[doc = "far pointer to a string in program space."]
#[doc = ""]
#[doc = "\\returns The strstr_PF() function returns a pointer to the beginning of the"]
#[doc = "substring, or NULL if the substring is not found."]
#[doc = "If \\c s2 points to a string of zero length, the function returns \\c s1. The"]
#[doc = "contents of RAMPZ SFR are undefined when the function returns."]
pub fn strstr_PF(
s1: *const ::rust_ctypes::c_char,
s2: uint_farptr_t,
) -> *mut ::rust_ctypes::c_char;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn size_t strlcpy_PF(char *dst, uint_farptr_t src, size_t siz)"]
#[doc = "\\brief Copy a string from progmem to RAM."]
#[doc = ""]
#[doc = "Copy src to string dst of size siz. At most siz-1 characters will be"]
#[doc = "copied. Always NULL terminates (unless siz == 0)."]
#[doc = ""]
#[doc = "\\returns The strlcpy_PF() function returns strlen(src). If retval >= siz,"]
#[doc = "truncation occurred. The contents of RAMPZ SFR are undefined when the"]
#[doc = "function returns."]
pub fn strlcpy_PF(dst: *mut ::rust_ctypes::c_char, src: uint_farptr_t, siz: size_t) -> size_t;
}
extern "C" {
#[doc = " \\ingroup avr_pgmspace"]
#[doc = "\\fn int memcmp_PF(const void *s1, uint_farptr_t s2, size_t len)"]
#[doc = "\\brief Compare memory areas"]
#[doc = ""]
#[doc = "The memcmp_PF() function compares the first \\p len bytes of the memory"]
#[doc = "areas \\p s1 and flash \\p s2. The comparision is performed using unsigned"]
#[doc = "char operations. It is an equivalent of memcmp_P() function, except"]
#[doc = "that it is capable working on all FLASH including the exteded area"]
#[doc = "above 64kB."]
#[doc = ""]
#[doc = "\\returns The memcmp_PF() function returns an integer less than, equal"]
#[doc = "to, or greater than zero if the first \\p len bytes of \\p s1 is found,"]
#[doc = "respectively, to be less than, to match, or be greater than the first"]
#[doc = "\\p len bytes of \\p s2."]
pub fn memcmp_PF(
arg1: *const ::rust_ctypes::c_void,
arg2: uint_farptr_t,
arg3: size_t,
) -> ::rust_ctypes::c_int;
}
extern "C" {
pub fn __strlen_P(arg1: *const ::rust_ctypes::c_char) -> size_t;
}
extern "C" {
#[doc = "\\ingroup avr_cpufunc"]
#[doc = ""]
#[doc = "Write \\a __value to Configuration Change Protected (CCP) IO register"]
#[doc = "at \\a __ioaddr."]
pub fn ccp_write_io(__ioaddr: *mut u8, __value: u8);
}
pub const clock_div_t_clock_div_1: clock_div_t = 0;
pub const clock_div_t_clock_div_2: clock_div_t = 1;
pub const clock_div_t_clock_div_4: clock_div_t = 2;
pub const clock_div_t_clock_div_8: clock_div_t = 3;
pub const clock_div_t_clock_div_16: clock_div_t = 4;
pub const clock_div_t_clock_div_32: clock_div_t = 5;
pub const clock_div_t_clock_div_64: clock_div_t = 6;
pub const clock_div_t_clock_div_128: clock_div_t = 7;
pub const clock_div_t_clock_div_256: clock_div_t = 8;
pub type clock_div_t = ::rust_ctypes::c_uint;
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Read one byte from EEPROM address \\a __p."]
pub fn eeprom_read_byte(__p: *const u8) -> u8;
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Read one 16-bit word (little endian) from EEPROM address \\a __p."]
pub fn eeprom_read_word(__p: *const u16) -> u16;
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Read one 32-bit double word (little endian) from EEPROM address \\a __p."]
pub fn eeprom_read_dword(__p: *const u32) -> u32;
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Read one float value (little endian) from EEPROM address \\a __p."]
pub fn eeprom_read_float(__p: *const f32) -> f32;
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Read a block of \\a __n bytes from EEPROM address \\a __src to SRAM"]
#[doc = "\\a __dst."]
pub fn eeprom_read_block(
__dst: *mut ::rust_ctypes::c_void,
__src: *const ::rust_ctypes::c_void,
__n: size_t,
);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Write a byte \\a __value to EEPROM address \\a __p."]
pub fn eeprom_write_byte(__p: *mut u8, __value: u8);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Write a word \\a __value to EEPROM address \\a __p."]
pub fn eeprom_write_word(__p: *mut u16, __value: u16);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Write a 32-bit double word \\a __value to EEPROM address \\a __p."]
pub fn eeprom_write_dword(__p: *mut u32, __value: u32);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Write a float \\a __value to EEPROM address \\a __p."]
pub fn eeprom_write_float(__p: *mut f32, __value: f32);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Write a block of \\a __n bytes to EEPROM address \\a __dst from \\a __src."]
#[doc = "\\note The argument order is mismatch with common functions like strcpy()."]
pub fn eeprom_write_block(
__src: *const ::rust_ctypes::c_void,
__dst: *mut ::rust_ctypes::c_void,
__n: size_t,
);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Update a byte \\a __value to EEPROM address \\a __p."]
pub fn eeprom_update_byte(__p: *mut u8, __value: u8);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Update a word \\a __value to EEPROM address \\a __p."]
pub fn eeprom_update_word(__p: *mut u16, __value: u16);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Update a 32-bit double word \\a __value to EEPROM address \\a __p."]
pub fn eeprom_update_dword(__p: *mut u32, __value: u32);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Update a float \\a __value to EEPROM address \\a __p."]
pub fn eeprom_update_float(__p: *mut f32, __value: f32);
}
extern "C" {
#[doc = " \\ingroup avr_eeprom"]
#[doc = "Update a block of \\a __n bytes to EEPROM address \\a __dst from \\a __src."]
#[doc = "\\note The argument order is mismatch with common functions like strcpy()."]
pub fn eeprom_update_block(
__src: *const ::rust_ctypes::c_void,
__dst: *mut ::rust_ctypes::c_void,
__n: size_t,
);
}
pub type __builtin_va_list = *mut ::rust_ctypes::c_void;