URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Subversion Repositories or1k_old
Compare Revisions
- This comparison shows the changes necessary to convert path
/or1k_old/trunk/rc203soc/sw/uClinux/include/asm-generic
- from Rev 1765 to Rev 1782
- ↔ Reverse comparison
Rev 1765 → Rev 1782
/bitops.h
0,0 → 1,53
#ifndef _ASM_GENERIC_BITOPS_H_ |
#define _ASM_GENERIC_BITOPS_H_ |
|
/* |
* For the benefit of those who are trying to port Linux to another |
* architecture, here are some C-language equivalents. You should |
* recode these in the native assembly language, if at all possible. |
* To guarantee atomicity, these routines call cli() and sti() to |
* disable interrupts while they operate. (You have to provide inline |
* routines to cli() and sti().) |
* |
* Also note, these routines assume that you have 32 bit integers. |
* You will have to change this if you are trying to port Linux to the |
* Alpha architecture or to a Cray. :-) |
* |
* C language equivalents written by Theodore Ts'o, 9/26/92 |
*/ |
|
extern __inline__ int set_bit(int nr,int * addr) |
{ |
int mask, retval; |
|
addr += nr >> 5; |
mask = 1 << (nr & 0x1f); |
cli(); |
retval = (mask & *addr) != 0; |
*addr |= mask; |
sti(); |
return retval; |
} |
|
extern __inline__ int clear_bit(int nr, int * addr) |
{ |
int mask, retval; |
|
addr += nr >> 5; |
mask = 1 << (nr & 0x1f); |
cli(); |
retval = (mask & *addr) != 0; |
*addr &= ~mask; |
sti(); |
return retval; |
} |
|
extern __inline__ int test_bit(int nr, int * addr) |
{ |
int mask; |
|
addr += nr >> 5; |
mask = 1 << (nr & 0x1f); |
return ((mask & *addr) != 0); |
} |
#endif /* _ASM_GENERIC_BITOPS_H */ |
/unaligned.h
0,0 → 1,20
#ifndef _ASM_GENERIC_UNALIGNED_H_ |
#define _ASM_GENERIC_UNALIGNED_H_ |
|
/* |
* For the benefit of those who are trying to port Linux to another |
* architecture, here are some C-language equivalents. |
*/ |
|
#include <asm/string.h> |
|
|
#define get_unaligned(ptr) \ |
({ __typeof__(*(ptr)) __tmp; memcpy(&__tmp, (ptr), sizeof(*(ptr))); __tmp; }) |
|
#define put_unaligned(val, ptr) \ |
({ __typeof__(*(ptr)) __tmp = (val); \ |
memcpy((ptr), &__tmp, sizeof(*(ptr))); \ |
(void)0; }) |
|
#endif /* _ASM_GENERIC_UNALIGNED_H */ |