| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * This file is subject to the terms and conditions of the GNU General Public | 
					
						
							|  |  |  |  * License.  See the file "COPYING" in the main directory of this archive | 
					
						
							|  |  |  |  * for more details. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2007-02-14 21:16:14 +00:00
										 |  |  |  * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2007-02-14 21:16:14 +00:00
										 |  |  | #ifndef __ASM_GENERIC_UNALIGNED_H
 | 
					
						
							|  |  |  | #define __ASM_GENERIC_UNALIGNED_H
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-14 21:16:14 +00:00
										 |  |  | #include <linux/compiler.h>
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-14 21:16:14 +00:00
										 |  |  | #define get_unaligned(ptr)					\
 | 
					
						
							|  |  |  | ({								\ | 
					
						
							|  |  |  | 	struct __packed {					\ | 
					
						
							|  |  |  | 		typeof(*(ptr)) __v;				\ | 
					
						
							|  |  |  | 	} *__p = (void *) (ptr);				\ | 
					
						
							|  |  |  | 	__p->__v;						\ | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define put_unaligned(val, ptr)					\
 | 
					
						
							|  |  |  | do {								\ | 
					
						
							|  |  |  | 	struct __packed {					\ | 
					
						
							|  |  |  | 		typeof(*(ptr)) __v;				\ | 
					
						
							|  |  |  | 	} *__p = (void *) (ptr);				\ | 
					
						
							|  |  |  | 	__p->__v = (val);					\ | 
					
						
							|  |  |  | } while(0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* __ASM_GENERIC_UNALIGNED_H */
 |