? include/avr/iox192a3.h
? include/avr/signature.h
Index: doc/api/doxygen.config.in
===================================================================
RCS file: /sources/avr-libc/avr-libc/doc/api/doxygen.config.in,v
retrieving revision 1.35.2.1
diff -u -p -r1.35.2.1 doxygen.config.in
--- doc/api/doxygen.config.in	6 Nov 2008 21:42:52 -0000	1.35.2.1
+++ doc/api/doxygen.config.in	19 Mar 2009 17:27:32 -0000
@@ -500,6 +500,7 @@ INPUT                  = @top_srcdir@/in
                          @top_srcdir@/include/avr/sfr_defs.h \
                          @top_srcdir@/doc/api/sfr.dox \
                          @top_srcdir@/include/avr/signal.h \
+                         @top_srcdir@/include/avr/signature.h \
                          @top_srcdir@/include/avr/sleep.h \
                          @top_srcdir@/include/avr/version.h \
                          @top_srcdir@/include/avr/wdt.h \
Index: include/avr/Makefile.am
===================================================================
RCS file: /sources/avr-libc/avr-libc/include/avr/Makefile.am,v
retrieving revision 1.34.2.19
diff -u -p -r1.34.2.19 Makefile.am
--- include/avr/Makefile.am	19 Feb 2009 21:10:54 -0000	1.34.2.19
+++ include/avr/Makefile.am	19 Mar 2009 17:27:32 -0000
@@ -174,6 +174,7 @@ avr_HEADERS = \
     pgmspace.h \
     portpins.h \
     power.h \
+    signature.h \
     sfr_defs.h \
     signal.h \
     sleep.h \
--- /dev/null	2006-11-30 17:00:00.000000000 -0700
+++ include/avr/signature.h	2009-03-19 11:19:00.438664600 -0600
@@ -0,0 +1,84 @@
+/* Copyright (c) 2009, Atmel Corporation
+   All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+
+   * Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+   * Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in
+     the documentation and/or other materials provided with the
+     distribution.
+
+   * Neither the name of the copyright holders nor the names of
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE. */
+
+/* $Id$ */
+
+/* avr/signature.h - Signature API */
+
+#ifndef _AVR_SIGNATURE_H_
+#define _AVR_SIGNATURE_H_ 1
+
+/** \file */
+/** \defgroup avr_signature <avr/signature.h>: Signature Support
+
+    \par Introduction
+
+    The <avr/signature.h> header file allows the user to automatically
+    and easily include the device's signature data in a special section of
+    the final linked ELF file.
+    
+    This value can then be used by programming software to compare the on-device
+    signature with the signature recorded in the ELF file to look for a match
+    before programming the device.
+    
+    \par API Usage Example
+
+    Usage is very simple; just include the header file:
+    
+    \code
+    #include <avr/signature.h>
+    \endcode
+    
+    This will declare a constant unsigned char array and it is initialized with
+    the three signature bytes, MSB first, that are defined in the device I/O
+    header file. This array is then placed in the .signature section in the
+    resulting linked ELF file.
+    
+    The three signature bytes that are used to initialize the array are 
+    these defined macros in the device I/O header file, from MSB to LSB:
+    SIGNATURE_2, SIGNATURE_1, SIGNATURE_0.
+    
+    This header file should only be included once in an application.
+*/
+
+#ifndef __ASSEMBLER__
+
+#include <avr/io.h>
+
+#if defined(SIGNATURE_0) && defined(SIGNATURE_1) && defined(SIGNATURE_2)
+
+const unsigned char __signature[3] __attribute__((section (".signature"))) =
+        { SIGNATURE_2, SIGNATURE_1, SIGNATURE_0 };
+
+#endif  /* defined(SIGNATURE_0) && defined(SIGNATURE_1) && defined(SIGNATURE_2) */
+
+#endif  /* __ASSEMBLER__ */
+
+#endif  /* _AVR_SIGNATURE_H_ */
