Index: avr-libc/include/avr/iom1284.h
===================================================================
--- avr-libc/include/avr/iom1284.h	(revision 2454)
+++ avr-libc/include/avr/iom1284.h	(working copy)
@@ -398,9 +398,22 @@
 #define PRTIM2  6
 #define PRTWI   7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRUSART1
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define PRR1    _SFR_MEM8(0x65)
 #define PRTIM3  0
 
+#define __AVR_HAVE_PRR1	(1<<PRTIM3)
+#define __AVR_HAVE_PRR1_PRTIM3
+
 #define OSCCAL  _SFR_MEM8(0x66)
 #define OSCCAL0 0
 #define OSCCAL1 1
Index: avr-libc/include/avr/iom1284p.h
===================================================================
--- avr-libc/include/avr/iom1284p.h	(revision 2454)
+++ avr-libc/include/avr/iom1284p.h	(working copy)
@@ -433,9 +433,22 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRUSART1
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define PRR1 _SFR_MEM8(0x65)
 #define PRTIM3 0
 
+#define __AVR_HAVE_PRR1	(1<<PRTIM3)
+#define __AVR_HAVE_PRR1_PRTIM3
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom1284rfr2.h
===================================================================
--- avr-libc/include/avr/iom1284rfr2.h	(revision 2454)
+++ avr-libc/include/avr/iom1284rfr2.h	(working copy)
@@ -1231,6 +1231,12 @@
 #define PRRAM2                          2
 #define PRRAM3                          3
 
+#define __AVR_HAVE_PRR2	((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3))
+#define __AVR_HAVE_PRR2_PRRAM0
+#define __AVR_HAVE_PRR2_PRRAM1
+#define __AVR_HAVE_PRR2_PRRAM2
+#define __AVR_HAVE_PRR2_PRRAM3
+
 /* Power Reduction Register0 */
 #define PRR0                            _SFR_MEM8(0x64)
 
@@ -1262,6 +1268,16 @@
 #define PRTIM2                          6
 #define PRTWI                           7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPGA)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRPGA
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Power Reduction Register 1 */
 #define PRR1                            _SFR_MEM8(0x65)
 
@@ -1289,6 +1305,13 @@
 #define PRTIM5                          5
 #define PRTRX24                         6
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRTIM4
+#define __AVR_HAVE_PRR1_PRTIM5
+#define __AVR_HAVE_PRR1_PRTRX24
+
 /* Oscillator Calibration Value */
 #define OSCCAL                          _SFR_MEM8(0x66)
 
Index: avr-libc/include/avr/iom128rfa1.h
===================================================================
--- avr-libc/include/avr/iom128rfa1.h	(revision 2454)
+++ avr-libc/include/avr/iom128rfa1.h	(working copy)
@@ -1225,6 +1225,12 @@
 #define PRRAM2                          2
 #define PRRAM3                          3
 
+#define __AVR_HAVE_PRR2	((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3))
+#define __AVR_HAVE_PRR2_PRRAM0
+#define __AVR_HAVE_PRR2_PRRAM1
+#define __AVR_HAVE_PRR2_PRRAM2
+#define __AVR_HAVE_PRR2_PRRAM3
+
 /* Power Reduction Register0 */
 #define PRR0                            _SFR_MEM8(0x64)
 
@@ -1256,6 +1262,16 @@
 #define PRTIM2                          6
 #define PRTWI                           7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPGA)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRPGA
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Power Reduction Register 1 */
 #define PRR1                            _SFR_MEM8(0x65)
 
@@ -1284,6 +1300,15 @@
 #define PRTIM5                          5
 #define PRTRX24                         6
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRUSART2
+#define __AVR_HAVE_PRR1_PRUSART3
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRTIM4
+#define __AVR_HAVE_PRR1_PRTIM5
+#define __AVR_HAVE_PRR1_PRTRX24
+
 /* Oscillator Calibration Value */
 #define OSCCAL                          _SFR_MEM8(0x66)
 
Index: avr-libc/include/avr/iom128rfr2.h
===================================================================
--- avr-libc/include/avr/iom128rfr2.h	(revision 2454)
+++ avr-libc/include/avr/iom128rfr2.h	(working copy)
@@ -1231,6 +1231,12 @@
 #define PRRAM2                          2
 #define PRRAM3                          3
 
+#define __AVR_HAVE_PRR2	((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3))
+#define __AVR_HAVE_PRR2_PRRAM0
+#define __AVR_HAVE_PRR2_PRRAM1
+#define __AVR_HAVE_PRR2_PRRAM2
+#define __AVR_HAVE_PRR2_PRRAM3
+
 /* Power Reduction Register0 */
 #define PRR0                            _SFR_MEM8(0x64)
 
@@ -1262,6 +1268,16 @@
 #define PRTIM2                          6
 #define PRTWI                           7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPGA)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRPGA
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Power Reduction Register 1 */
 #define PRR1                            _SFR_MEM8(0x65)
 
@@ -1289,6 +1305,13 @@
 #define PRTIM5                          5
 #define PRTRX24                         6
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRTIM4
+#define __AVR_HAVE_PRR1_PRTIM5
+#define __AVR_HAVE_PRR1_PRTRX24
+
 /* Oscillator Calibration Value */
 #define OSCCAL                          _SFR_MEM8(0x66)
 
Index: avr-libc/include/avr/iom164pa.h
===================================================================
--- avr-libc/include/avr/iom164pa.h	(revision 2454)
+++ avr-libc/include/avr/iom164pa.h	(working copy)
@@ -390,6 +390,16 @@
 #define PRTIM2  6
 #define PRTWI   7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRUSART1
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom165a.h
===================================================================
--- avr-libc/include/avr/iom165a.h	(revision 2454)
+++ avr-libc/include/avr/iom165a.h	(working copy)
@@ -422,6 +422,12 @@
 #define PRSPI   2
 #define PRTIM1  3
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom165.h
===================================================================
--- avr-libc/include/avr/iom165.h	(revision 2454)
+++ avr-libc/include/avr/iom165.h	(working copy)
@@ -426,6 +426,12 @@
 #define PRSPI       2
 #define PRTIM1      3
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom165pa.h
===================================================================
--- avr-libc/include/avr/iom165pa.h	(revision 2454)
+++ avr-libc/include/avr/iom165pa.h	(working copy)
@@ -422,6 +422,12 @@
 #define PRSPI   2
 #define PRTIM1  3
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom165p.h
===================================================================
--- avr-libc/include/avr/iom165p.h	(revision 2454)
+++ avr-libc/include/avr/iom165p.h	(working copy)
@@ -428,6 +428,12 @@
 #define PRSPI       2
 #define PRTIM1      3
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom168pa.h
===================================================================
--- avr-libc/include/avr/iom168pa.h	(revision 2454)
+++ avr-libc/include/avr/iom168pa.h	(working copy)
@@ -316,6 +316,15 @@
 #define PRTIM2  6
 #define PRTWI   7
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM2
+#define __AVR_HAVE_PRR_PRTWI
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom168p.h
===================================================================
--- avr-libc/include/avr/iom168p.h	(revision 2454)
+++ avr-libc/include/avr/iom168p.h	(working copy)
@@ -374,6 +374,15 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM2
+#define __AVR_HAVE_PRR_PRTWI
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom169.h
===================================================================
--- avr-libc/include/avr/iom169.h	(revision 2454)
+++ avr-libc/include/avr/iom169.h	(working copy)
@@ -181,6 +181,13 @@
 #define PRTIM1      3
 #define PRLCD       4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 /* Oscillator Calibration Register */
 #define OSCCAL _SFR_MEM8(0x66)
 
Index: avr-libc/include/avr/iom169pa.h
===================================================================
--- avr-libc/include/avr/iom169pa.h	(revision 2454)
+++ avr-libc/include/avr/iom169pa.h	(working copy)
@@ -471,6 +471,13 @@
 #define PRTIM1 3
 #define PRLCD 4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom169p.h
===================================================================
--- avr-libc/include/avr/iom169p.h	(revision 2454)
+++ avr-libc/include/avr/iom169p.h	(working copy)
@@ -441,6 +441,13 @@
 #define PRTIM1      3
 #define PRLCD       4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 /* Oscillator Calibration Register */
 #define OSCCAL _SFR_MEM8(0x66)
 
Index: avr-libc/include/avr/iom16hva2.h
===================================================================
--- avr-libc/include/avr/iom16hva2.h	(revision 2454)
+++ avr-libc/include/avr/iom16hva2.h	(working copy)
@@ -308,6 +308,13 @@
 #define PRSPI 3
 #define PRVRM 5
 
+#define __AVR_HAVE_PRR0	((1<<PRVADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRVRM))
+#define __AVR_HAVE_PRR0_PRVADC
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRVRM
+
 #define FOSCCAL _SFR_MEM8(0x66)
 #define FCAL0 0
 #define FCAL1 1
Index: avr-libc/include/avr/iom16hvb.h
===================================================================
--- avr-libc/include/avr/iom16hvb.h	(revision 2454)
+++ avr-libc/include/avr/iom16hvb.h	(working copy)
@@ -349,6 +349,14 @@
 #define PRVRM 5
 #define PRTWI 6
 
+#define __AVR_HAVE_PRR0	((1<<PRVADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRVRM)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRVADC
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRVRM
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define FOSCCAL _SFR_MEM8(0x66)
 #define FCAL0 0
 #define FCAL1 1
Index: avr-libc/include/avr/iom16hvbrevb.h
===================================================================
--- avr-libc/include/avr/iom16hvbrevb.h	(revision 2454)
+++ avr-libc/include/avr/iom16hvbrevb.h	(working copy)
@@ -349,6 +349,14 @@
 #define PRVRM 5
 #define PRTWI 6
 
+#define __AVR_HAVE_PRR0	((1<<PRVADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRVRM)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRVADC
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRVRM
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define FOSCCAL _SFR_MEM8(0x66)
 #define FCAL0 0
 #define FCAL1 1
Index: avr-libc/include/avr/iom16m1.h
===================================================================
--- avr-libc/include/avr/iom16m1.h	(revision 2454)
+++ avr-libc/include/avr/iom16m1.h	(working copy)
@@ -397,6 +397,15 @@
 #define PRPSC 5
 #define PRCAN 6
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRLIN
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRPSC
+#define __AVR_HAVE_PRR_PRCAN
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom16u2.h
===================================================================
--- avr-libc/include/avr/iom16u2.h	(revision 2454)
+++ avr-libc/include/avr/iom16u2.h	(working copy)
@@ -404,10 +404,19 @@
 #define PRTIM1 3
 #define PRTIM0 5
 
+#define __AVR_HAVE_PRR0	((1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0))
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRTIM0
+
 #define PRR1 _SFR_MEM8(0x65)
 #define PRUSART1 0
 #define PRUSB 7
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRUSB))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRUSB
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom16u4.h
===================================================================
--- avr-libc/include/avr/iom16u4.h	(revision 2454)
+++ avr-libc/include/avr/iom16u4.h	(working copy)
@@ -446,11 +446,25 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define PRR1 _SFR_MEM8(0x65)
 #define PRUSART1 0
 #define PRTIM3 3
 #define PRUSB 7
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRUSB))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRUSB
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom2564rfr2.h
===================================================================
--- avr-libc/include/avr/iom2564rfr2.h	(revision 2454)
+++ avr-libc/include/avr/iom2564rfr2.h	(working copy)
@@ -1239,6 +1239,12 @@
 #define PRRAM2                          2
 #define PRRAM3                          3
 
+#define __AVR_HAVE_PRR2	((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3))
+#define __AVR_HAVE_PRR2_PRRAM0
+#define __AVR_HAVE_PRR2_PRRAM1
+#define __AVR_HAVE_PRR2_PRRAM2
+#define __AVR_HAVE_PRR2_PRRAM3
+
 /* Power Reduction Register0 */
 #define PRR0                            _SFR_MEM8(0x64)
 
@@ -1270,6 +1276,16 @@
 #define PRTIM2                          6
 #define PRTWI                           7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPGA)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRPGA
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Power Reduction Register 1 */
 #define PRR1                            _SFR_MEM8(0x65)
 
@@ -1297,6 +1313,13 @@
 #define PRTIM5                          5
 #define PRTRX24                         6
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRTIM4
+#define __AVR_HAVE_PRR1_PRTIM5
+#define __AVR_HAVE_PRR1_PRTRX24
+
 /* Oscillator Calibration Value */
 #define OSCCAL                          _SFR_MEM8(0x66)
 
Index: avr-libc/include/avr/iom256rfr2.h
===================================================================
--- avr-libc/include/avr/iom256rfr2.h	(revision 2454)
+++ avr-libc/include/avr/iom256rfr2.h	(working copy)
@@ -1239,6 +1239,12 @@
 #define PRRAM2                          2
 #define PRRAM3                          3
 
+#define __AVR_HAVE_PRR2	((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3))
+#define __AVR_HAVE_PRR2_PRRAM0
+#define __AVR_HAVE_PRR2_PRRAM1
+#define __AVR_HAVE_PRR2_PRRAM2
+#define __AVR_HAVE_PRR2_PRRAM3
+
 /* Power Reduction Register0 */
 #define PRR0                            _SFR_MEM8(0x64)
 
@@ -1270,6 +1276,16 @@
 #define PRTIM2                          6
 #define PRTWI                           7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPGA)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRPGA
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Power Reduction Register 1 */
 #define PRR1                            _SFR_MEM8(0x65)
 
@@ -1297,6 +1313,13 @@
 #define PRTIM5                          5
 #define PRTRX24                         6
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRTIM4
+#define __AVR_HAVE_PRR1_PRTIM5
+#define __AVR_HAVE_PRR1_PRTRX24
+
 /* Oscillator Calibration Value */
 #define OSCCAL                          _SFR_MEM8(0x66)
 
Index: avr-libc/include/avr/iom324pa.h
===================================================================
--- avr-libc/include/avr/iom324pa.h	(revision 2454)
+++ avr-libc/include/avr/iom324pa.h	(working copy)
@@ -423,6 +423,16 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRUSART1
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom3250.h
===================================================================
--- avr-libc/include/avr/iom3250.h	(revision 2454)
+++ avr-libc/include/avr/iom3250.h	(working copy)
@@ -434,6 +434,12 @@
 #define PRSPI       2
 #define PRTIM1      3
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom3250pa.h
===================================================================
--- avr-libc/include/avr/iom3250pa.h	(revision 2454)
+++ avr-libc/include/avr/iom3250pa.h	(working copy)
@@ -427,6 +427,13 @@
 #define PRTIM1  3
 #define PRLCD   4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom325.h
===================================================================
--- avr-libc/include/avr/iom325.h	(revision 2454)
+++ avr-libc/include/avr/iom325.h	(working copy)
@@ -431,6 +431,12 @@
 #define PRSPI       2
 #define PRTIM1      3
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom325pa.h
===================================================================
--- avr-libc/include/avr/iom325pa.h	(revision 2454)
+++ avr-libc/include/avr/iom325pa.h	(working copy)
@@ -427,6 +427,13 @@
 #define PRTIM1  3
 #define PRLCD   4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom328p.h
===================================================================
--- avr-libc/include/avr/iom328p.h	(revision 2454)
+++ avr-libc/include/avr/iom328p.h	(working copy)
@@ -376,6 +376,15 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM2
+#define __AVR_HAVE_PRR_PRTWI
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom3290.h
===================================================================
--- avr-libc/include/avr/iom3290.h	(revision 2454)
+++ avr-libc/include/avr/iom3290.h	(working copy)
@@ -436,6 +436,13 @@
 #define PRTIM1      3
 #define PRLCD       4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom3290pa.h
===================================================================
--- avr-libc/include/avr/iom3290pa.h	(revision 2454)
+++ avr-libc/include/avr/iom3290pa.h	(working copy)
@@ -427,6 +427,13 @@
 #define PRTIM1  3
 #define PRLCD   4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom329.h
===================================================================
--- avr-libc/include/avr/iom329.h	(revision 2454)
+++ avr-libc/include/avr/iom329.h	(working copy)
@@ -432,6 +432,13 @@
 #define PRTIM1      3
 #define PRLCD       4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom32c1.h
===================================================================
--- avr-libc/include/avr/iom32c1.h	(revision 2454)
+++ avr-libc/include/avr/iom32c1.h	(working copy)
@@ -397,6 +397,15 @@
 #define PRPSC 5
 #define PRCAN 6
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRLIN
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRPSC
+#define __AVR_HAVE_PRR_PRCAN
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom32hvb.h
===================================================================
--- avr-libc/include/avr/iom32hvb.h	(revision 2454)
+++ avr-libc/include/avr/iom32hvb.h	(working copy)
@@ -349,6 +349,14 @@
 #define PRVRM 5
 #define PRTWI 6
 
+#define __AVR_HAVE_PRR0	((1<<PRVADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRVRM)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRVADC
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRVRM
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define FOSCCAL _SFR_MEM8(0x66)
 #define FCAL0 0
 #define FCAL1 1
Index: avr-libc/include/avr/iom32hvbrevb.h
===================================================================
--- avr-libc/include/avr/iom32hvbrevb.h	(revision 2454)
+++ avr-libc/include/avr/iom32hvbrevb.h	(working copy)
@@ -347,6 +347,14 @@
 #define PRVRM 5
 #define PRTWI 6
 
+#define __AVR_HAVE_PRR0	((1<<PRVADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRVRM)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRVADC
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRVRM
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define FOSCCAL _SFR_MEM8(0x66)
 #define FCAL0 0
 #define FCAL1 1
Index: avr-libc/include/avr/iom32m1.h
===================================================================
--- avr-libc/include/avr/iom32m1.h	(revision 2454)
+++ avr-libc/include/avr/iom32m1.h	(working copy)
@@ -397,6 +397,15 @@
 #define PRPSC 5
 #define PRCAN 6
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRLIN
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRPSC
+#define __AVR_HAVE_PRR_PRCAN
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom32u2.h
===================================================================
--- avr-libc/include/avr/iom32u2.h	(revision 2454)
+++ avr-libc/include/avr/iom32u2.h	(working copy)
@@ -404,10 +404,19 @@
 #define PRTIM1 3
 #define PRTIM0 5
 
+#define __AVR_HAVE_PRR0	((1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0))
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRTIM0
+
 #define PRR1 _SFR_MEM8(0x65)
 #define PRUSART1 0
 #define PRUSB 7
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRUSB))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRUSB
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom32u4.h
===================================================================
--- avr-libc/include/avr/iom32u4.h	(revision 2454)
+++ avr-libc/include/avr/iom32u4.h	(working copy)
@@ -448,11 +448,25 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define PRR1 _SFR_MEM8(0x65)
 #define PRUSART1 0
 #define PRTIM3 3
 #define PRUSB 7
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRUSB))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRUSB
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom32u6.h
===================================================================
--- avr-libc/include/avr/iom32u6.h	(revision 2454)
+++ avr-libc/include/avr/iom32u6.h	(working copy)
@@ -501,11 +501,24 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define PRR1 _SFR_MEM8(0x65)
 #define PRUSART1 0
 #define PRTIM3 3
 #define PRUSB 7
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRUSB))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRUSB
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom406.h
===================================================================
--- avr-libc/include/avr/iom406.h	(revision 2454)
+++ avr-libc/include/avr/iom406.h	(working copy)
@@ -311,6 +311,12 @@
 #define PRTIM0  1
 #define PRVADC  0
 
+#define __AVR_HAVE_PRR0	((1<<PRVADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRVADC
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Reserved [0x65] */
 
 /* Fast Oscillator Calibration Register */
Index: avr-libc/include/avr/iom48pa.h
===================================================================
--- avr-libc/include/avr/iom48pa.h	(revision 2454)
+++ avr-libc/include/avr/iom48pa.h	(working copy)
@@ -312,6 +312,15 @@
 #define PRTIM2  6
 #define PRTWI   7
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM2
+#define __AVR_HAVE_PRR_PRTWI
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom48p.h
===================================================================
--- avr-libc/include/avr/iom48p.h	(revision 2454)
+++ avr-libc/include/avr/iom48p.h	(working copy)
@@ -370,6 +370,15 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM2
+#define __AVR_HAVE_PRR_PRTWI
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom644pa.h
===================================================================
--- avr-libc/include/avr/iom644pa.h	(revision 2454)
+++ avr-libc/include/avr/iom644pa.h	(working copy)
@@ -423,6 +423,16 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRUSART1
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom644rfr2.h
===================================================================
--- avr-libc/include/avr/iom644rfr2.h	(revision 2454)
+++ avr-libc/include/avr/iom644rfr2.h	(working copy)
@@ -1213,6 +1213,12 @@
 #define PRRAM2                          2
 #define PRRAM3                          3
 
+#define __AVR_HAVE_PRR2	((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3))
+#define __AVR_HAVE_PRR2_PRRAM0
+#define __AVR_HAVE_PRR2_PRRAM1
+#define __AVR_HAVE_PRR2_PRRAM2
+#define __AVR_HAVE_PRR2_PRRAM3
+
 /* Power Reduction Register0 */
 #define PRR0                            _SFR_MEM8(0x64)
 
@@ -1244,6 +1250,16 @@
 #define PRTIM2                          6
 #define PRTWI                           7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPGA)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRPGA
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Power Reduction Register 1 */
 #define PRR1                            _SFR_MEM8(0x65)
 
@@ -1271,6 +1287,13 @@
 #define PRTIM5                          5
 #define PRTRX24                         6
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRTIM4
+#define __AVR_HAVE_PRR1_PRTIM5
+#define __AVR_HAVE_PRR1_PRTRX24
+
 /* Oscillator Calibration Value */
 #define OSCCAL                          _SFR_MEM8(0x66)
 
Index: avr-libc/include/avr/iom6450.h
===================================================================
--- avr-libc/include/avr/iom6450.h	(revision 2454)
+++ avr-libc/include/avr/iom6450.h	(working copy)
@@ -430,6 +430,12 @@
 #define PRSPI       2
 #define PRTIM1      3
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom645.h
===================================================================
--- avr-libc/include/avr/iom645.h	(revision 2454)
+++ avr-libc/include/avr/iom645.h	(working copy)
@@ -426,6 +426,12 @@
 #define PRSPI       2
 #define PRTIM1      3
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom6490.h
===================================================================
--- avr-libc/include/avr/iom6490.h	(revision 2454)
+++ avr-libc/include/avr/iom6490.h	(working copy)
@@ -432,6 +432,13 @@
 #define PRTIM1      3
 #define PRLCD       4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom649.h
===================================================================
--- avr-libc/include/avr/iom649.h	(revision 2454)
+++ avr-libc/include/avr/iom649.h	(working copy)
@@ -428,6 +428,13 @@
 #define PRTIM1      3
 #define PRLCD       4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 /* Reserved [0x65] */
 
 #define OSCCAL  _SFR_MEM8(0x66)
Index: avr-libc/include/avr/iom649p.h
===================================================================
--- avr-libc/include/avr/iom649p.h	(revision 2454)
+++ avr-libc/include/avr/iom649p.h	(working copy)
@@ -473,6 +473,13 @@
 #define PRTIM1 3
 #define PRLCD 4
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRLCD))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRLCD
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom64c1.h
===================================================================
--- avr-libc/include/avr/iom64c1.h	(revision 2454)
+++ avr-libc/include/avr/iom64c1.h	(working copy)
@@ -398,6 +398,15 @@
 #define PRPSC 5
 #define PRCAN 6
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRLIN
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRPSC
+#define __AVR_HAVE_PRR_PRCAN
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom64hve.h
===================================================================
--- avr-libc/include/avr/iom64hve.h	(revision 2454)
+++ avr-libc/include/avr/iom64hve.h	(working copy)
@@ -331,6 +331,12 @@
 #define PRSPI 2
 #define PRLIN 3
 
+#define __AVR_HAVE_PRR0	((1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN))
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRLIN
+
 #define SOSCCALA _SFR_MEM8(0x66)
 #define SCALA0 0
 #define SCALA1 1
Index: avr-libc/include/avr/iom64m1.h
===================================================================
--- avr-libc/include/avr/iom64m1.h	(revision 2454)
+++ avr-libc/include/avr/iom64m1.h	(working copy)
@@ -398,6 +398,15 @@
 #define PRPSC 5
 #define PRCAN 6
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRLIN
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRPSC
+#define __AVR_HAVE_PRR_PRCAN
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom64rfr2.h
===================================================================
--- avr-libc/include/avr/iom64rfr2.h	(revision 2454)
+++ avr-libc/include/avr/iom64rfr2.h	(working copy)
@@ -1213,6 +1213,12 @@
 #define PRRAM2                          2
 #define PRRAM3                          3
 
+#define __AVR_HAVE_PRR2	((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3))
+#define __AVR_HAVE_PRR2_PRRAM0
+#define __AVR_HAVE_PRR2_PRRAM1
+#define __AVR_HAVE_PRR2_PRRAM2
+#define __AVR_HAVE_PRR2_PRRAM3
+
 /* Power Reduction Register0 */
 #define PRR0                            _SFR_MEM8(0x64)
 
@@ -1244,6 +1250,16 @@
 #define PRTIM2                          6
 #define PRTWI                           7
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPGA)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRPGA
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Power Reduction Register 1 */
 #define PRR1                            _SFR_MEM8(0x65)
 
@@ -1271,6 +1287,13 @@
 #define PRTIM5                          5
 #define PRTRX24                         6
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRTIM4
+#define __AVR_HAVE_PRR1_PRTIM5
+#define __AVR_HAVE_PRR1_PRTRX24
+
 /* Oscillator Calibration Value */
 #define OSCCAL                          _SFR_MEM8(0x66)
 
Index: avr-libc/include/avr/iom88pa.h
===================================================================
--- avr-libc/include/avr/iom88pa.h	(revision 2454)
+++ avr-libc/include/avr/iom88pa.h	(working copy)
@@ -372,6 +372,15 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM2
+#define __AVR_HAVE_PRR_PRTWI
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom88p.h
===================================================================
--- avr-libc/include/avr/iom88p.h	(revision 2454)
+++ avr-libc/include/avr/iom88p.h	(working copy)
@@ -374,6 +374,15 @@
 #define PRTIM2 6
 #define PRTWI 7
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM2
+#define __AVR_HAVE_PRR_PRTWI
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iom8u2.h
===================================================================
--- avr-libc/include/avr/iom8u2.h	(revision 2454)
+++ avr-libc/include/avr/iom8u2.h	(working copy)
@@ -404,10 +404,19 @@
 #define PRTIM1 3
 #define PRTIM0 5
 
+#define __AVR_HAVE_PRR0	((1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0))
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRTIM0
+
 #define PRR1 _SFR_MEM8(0x65)
 #define PRUSART1 0
 #define PRUSB 7
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRUSB))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRUSB
+
 #define OSCCAL _SFR_MEM8(0x66)
 #define CAL0 0
 #define CAL1 1
Index: avr-libc/include/avr/iomx8.h
===================================================================
--- avr-libc/include/avr/iomx8.h	(revision 2454)
+++ avr-libc/include/avr/iomx8.h	(working copy)
@@ -350,6 +350,15 @@
 #define PRUSART0 1
 #define PRADC    0
 
+#define __AVR_HAVE_PRR	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR_PRADC
+#define __AVR_HAVE_PRR_PRUSART0
+#define __AVR_HAVE_PRR_PRSPI
+#define __AVR_HAVE_PRR_PRTIM1
+#define __AVR_HAVE_PRR_PRTIM0
+#define __AVR_HAVE_PRR_PRTIM2
+#define __AVR_HAVE_PRR_PRTWI
+
 #define OSCCAL  _SFR_MEM8 (0x66)
 
 #define PCICR   _SFR_MEM8 (0x68)
Index: avr-libc/include/avr/iomxx0_1.h
===================================================================
--- avr-libc/include/avr/iomxx0_1.h	(revision 2454)
+++ avr-libc/include/avr/iomxx0_1.h	(working copy)
@@ -497,6 +497,15 @@
 #define PRUSART0    1
 #define PRADC       0
 
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRUSART0
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 #define PRR1    _SFR_MEM8(0x65)
 #define PRTIM5      5
 #define PRTIM4      4
@@ -505,6 +514,14 @@
 #define PRUSART2    1
 #define PRUSART1    0
 
+#define __AVR_HAVE_PRR1	((1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5))
+#define __AVR_HAVE_PRR1_PRUSART1
+#define __AVR_HAVE_PRR1_PRUSART2
+#define __AVR_HAVE_PRR1_PRUSART3
+#define __AVR_HAVE_PRR1_PRTIM3
+#define __AVR_HAVE_PRR1_PRTIM4
+#define __AVR_HAVE_PRR1_PRTIM5
+
 #define OSCCAL  _SFR_MEM8(0x66)
 
 /* Reserved [0x67] */
Index: avr-libc/include/avr/iomxx4.h
===================================================================
--- avr-libc/include/avr/iomxx4.h	(revision 2454)
+++ avr-libc/include/avr/iomxx4.h	(working copy)
@@ -380,6 +380,22 @@
 #define PRUSART0	1
 #define PRADC		0
 
+#if !defined(__AVR_ATmega644__)
+#define __AVR_HAVE_PRR0	((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#else
+#define __AVR_HAVE_PRR0 ((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI))
+#endif
+#define __AVR_HAVE_PRR0_PRADC
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRUSART0
+#if !defined(__AVR_ATmega644__)
+#define __AVR_HAVE_PRR0_PRUSART1
+#endif
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM2
+#define __AVR_HAVE_PRR0_PRTWI
+
 /* Reserved [0x65] */
 
 #define OSCCAL	_SFR_MEM8(0x66)
Index: avr-libc/include/avr/iomxxhva.h
===================================================================
--- avr-libc/include/avr/iomxxhva.h	(revision 2454)
+++ avr-libc/include/avr/iomxxhva.h	(working copy)
@@ -252,6 +252,13 @@
 #define PRTIM0  1
 #define PRVADC  0
 
+#define __AVR_HAVE_PRR0	((1<<PRVADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRVRM))
+#define __AVR_HAVE_PRR0_PRVADC
+#define __AVR_HAVE_PRR0_PRTIM0
+#define __AVR_HAVE_PRR0_PRTIM1
+#define __AVR_HAVE_PRR0_PRSPI
+#define __AVR_HAVE_PRR0_PRVRM
+
 /* Reserved [0x65] */
 
 #define FOSCCAL _SFR_MEM8(0x66)
