File: unaligned.h

package info (click to toggle)
kernel-source-2.2.25 2.2.25-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 92,756 kB
  • ctags: 280,018
  • sloc: ansic: 1,711,350; asm: 60,340; makefile: 10,295; sh: 2,396; perl: 907; tcl: 570; lisp: 218; cpp: 186; awk: 133; sed: 72
file content (19 lines) | stat: -rw-r--r-- 500 bytes parent folder | download | duplicates (20)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef _ASM_SPARC_UNALIGNED_H_
#define _ASM_SPARC_UNALIGNED_H_

/* Sparc can't handle unaligned accesses. */

#include <linux/string.h>


/* Use memmove here, so gcc does not insert a __builtin_memcpy. */

#define get_unaligned(ptr) \
  ({ __typeof__(*(ptr)) __tmp; memmove(&__tmp, (ptr), sizeof(*(ptr))); __tmp; })

#define put_unaligned(val, ptr)				\
  ({ __typeof__(*(ptr)) __tmp = (val);			\
     memmove((ptr), &__tmp, sizeof(*(ptr)));		\
     (void)0; })

#endif /* _ASM_SPARC_UNALIGNED_H */