Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
Commits
4ffd8b38
Commit
4ffd8b38
authored
Nov 30, 2006
by
Ralf Baechle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[MIPS] Remove userspace proofing from <asm/bitops.h>.
Signed-off-by:
Ralf Baechle
<
ralf@linux-mips.org
>
parent
e303e088
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
42 deletions
+21
-42
include/asm-mips/bitops.h
include/asm-mips/bitops.h
+21
-42
No files found.
include/asm-mips/bitops.h
View file @
4ffd8b38
...
...
@@ -10,10 +10,13 @@
#define _ASM_BITOPS_H
#include <linux/compiler.h>
#include <linux/irqflags.h>
#include <linux/types.h>
#include <asm/bug.h>
#include <asm/byteorder.h>
/* sigh ... */
#include <asm/cpu-features.h>
#include <asm/sgidefs.h>
#include <asm/war.h>
#if (_MIPS_SZLONG == 32)
#define SZLONG_LOG 5
...
...
@@ -29,32 +32,12 @@
#define cpu_to_lelongp(x) cpu_to_le64p((__u64 *) (x))
#endif
#ifdef __KERNEL__
#include <linux/irqflags.h>
#include <asm/sgidefs.h>
#include <asm/war.h>
/*
* clear_bit() doesn't provide any barrier for the compiler.
*/
#define smp_mb__before_clear_bit() smp_mb()
#define smp_mb__after_clear_bit() smp_mb()
/*
* Only disable interrupt for kernel mode stuff to keep usermode stuff
* that dares to use kernel include files alive.
*/
#define __bi_flags unsigned long flags
#define __bi_local_irq_save(x) local_irq_save(x)
#define __bi_local_irq_restore(x) local_irq_restore(x)
#else
#define __bi_flags
#define __bi_local_irq_save(x)
#define __bi_local_irq_restore(x)
#endif
/* __KERNEL__ */
/*
* set_bit - Atomically set a bit in memory
* @nr: the bit to set
...
...
@@ -93,13 +76,13 @@ static inline void set_bit(unsigned long nr, volatile unsigned long *addr)
}
else
{
volatile
unsigned
long
*
a
=
addr
;
unsigned
long
mask
;
__bi_
flags
;
unsigned
long
flags
;
a
+=
nr
>>
SZLONG_LOG
;
mask
=
1UL
<<
(
nr
&
SZLONG_MASK
);
__bi_
local_irq_save
(
flags
);
local_irq_save
(
flags
);
*
a
|=
mask
;
__bi_
local_irq_restore
(
flags
);
local_irq_restore
(
flags
);
}
}
...
...
@@ -141,13 +124,13 @@ static inline void clear_bit(unsigned long nr, volatile unsigned long *addr)
}
else
{
volatile
unsigned
long
*
a
=
addr
;
unsigned
long
mask
;
__bi_
flags
;
unsigned
long
flags
;
a
+=
nr
>>
SZLONG_LOG
;
mask
=
1UL
<<
(
nr
&
SZLONG_MASK
);
__bi_
local_irq_save
(
flags
);
local_irq_save
(
flags
);
*
a
&=
~
mask
;
__bi_
local_irq_restore
(
flags
);
local_irq_restore
(
flags
);
}
}
...
...
@@ -191,13 +174,13 @@ static inline void change_bit(unsigned long nr, volatile unsigned long *addr)
}
else
{
volatile
unsigned
long
*
a
=
addr
;
unsigned
long
mask
;
__bi_
flags
;
unsigned
long
flags
;
a
+=
nr
>>
SZLONG_LOG
;
mask
=
1UL
<<
(
nr
&
SZLONG_MASK
);
__bi_
local_irq_save
(
flags
);
local_irq_save
(
flags
);
*
a
^=
mask
;
__bi_
local_irq_restore
(
flags
);
local_irq_restore
(
flags
);
}
}
...
...
@@ -258,14 +241,14 @@ static inline int test_and_set_bit(unsigned long nr,
volatile
unsigned
long
*
a
=
addr
;
unsigned
long
mask
;
int
retval
;
__bi_
flags
;
unsigned
long
flags
;
a
+=
nr
>>
SZLONG_LOG
;
mask
=
1UL
<<
(
nr
&
SZLONG_MASK
);
__bi_
local_irq_save
(
flags
);
local_irq_save
(
flags
);
retval
=
(
mask
&
*
a
)
!=
0
;
*
a
|=
mask
;
__bi_
local_irq_restore
(
flags
);
local_irq_restore
(
flags
);
return
retval
;
}
...
...
@@ -330,14 +313,14 @@ static inline int test_and_clear_bit(unsigned long nr,
volatile
unsigned
long
*
a
=
addr
;
unsigned
long
mask
;
int
retval
;
__bi_
flags
;
unsigned
long
flags
;
a
+=
nr
>>
SZLONG_LOG
;
mask
=
1UL
<<
(
nr
&
SZLONG_MASK
);
__bi_
local_irq_save
(
flags
);
local_irq_save
(
flags
);
retval
=
(
mask
&
*
a
)
!=
0
;
*
a
&=
~
mask
;
__bi_
local_irq_restore
(
flags
);
local_irq_restore
(
flags
);
return
retval
;
}
...
...
@@ -399,23 +382,19 @@ static inline int test_and_change_bit(unsigned long nr,
}
else
{
volatile
unsigned
long
*
a
=
addr
;
unsigned
long
mask
,
retval
;
__bi_
flags
;
unsigned
long
flags
;
a
+=
nr
>>
SZLONG_LOG
;
mask
=
1UL
<<
(
nr
&
SZLONG_MASK
);
__bi_
local_irq_save
(
flags
);
local_irq_save
(
flags
);
retval
=
(
mask
&
*
a
)
!=
0
;
*
a
^=
mask
;
__bi_
local_irq_restore
(
flags
);
local_irq_restore
(
flags
);
return
retval
;
}
}
#undef __bi_flags
#undef __bi_local_irq_save
#undef __bi_local_irq_restore
#include <asm-generic/bitops/non-atomic.h>
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment