* set_cp0_status (mipsregs.h)
@ 2001-04-06 18:32 Scott A McConnell
2001-04-07 2:59 ` Ralf Baechle
0 siblings, 1 reply; 2+ messages in thread
From: Scott A McConnell @ 2001-04-06 18:32 UTC (permalink / raw)
To: linux-mips
Which is correct?
1 or 2 parameters ?
The first comes from a 2.4.0 kernel and the second from a 2.4.2
extracted from cvs a few days ago.
Thanks,
Scott
--------------------------------------------
/*
* Manipulate the status register.
* Mostly used to access the interrupt bits.
*/
#define __BUILD_SET_CP0(name,register) \
extern __inline__ unsigned int \
set_cp0_##name(unsigned int change, unsigned int new) \
{ \
unsigned int res; \
\
res = read_32bit_cp0_register(register); \
res &= ~change; \
res |= (new & change); \
if(change) \
write_32bit_cp0_register(register, res); \
\
return res; \
}
__BUILD_SET_CP0(status,CP0_STATUS)
__BUILD_SET_CP0(cause,CP0_CAUSE)
__BUILD_SET_CP0(config,CP0_CONFIG)
------------------------- or --------------------------------
#define __BUILD_SET_CP0(name,register) \
extern __inline__ unsigned int \
set_cp0_##name(unsigned int set) \
{ \
unsigned int res; \
\
res = read_32bit_cp0_register(register); \
res |= set; \
write_32bit_cp0_register(register, res); \
\
return res; \
}
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: set_cp0_status (mipsregs.h)
2001-04-06 18:32 set_cp0_status (mipsregs.h) Scott A McConnell
@ 2001-04-07 2:59 ` Ralf Baechle
0 siblings, 0 replies; 2+ messages in thread
From: Ralf Baechle @ 2001-04-07 2:59 UTC (permalink / raw)
To: Scott A McConnell; +Cc: linux-mips
On Fri, Apr 06, 2001 at 11:32:03AM -0700, Scott A McConnell wrote:
> Which is correct?
> 1 or 2 parameters ?
> The first comes from a 2.4.0 kernel and the second from a 2.4.2
> extracted from cvs a few days ago.
1 Parameter; I changed the functions since about half the calls in the
kernel code did show that whoever wrote the code didn't understand
what the function is supposed to do.
- set_cp0_status(bits)
Set all the bits described by the bitmask bits in the status register.
- clear_cp0_status(bits)
Clear all the bits set in the bitmask argument bits in the status register.
- change_cp0_status(change, set)
Set all bits which are set in the bitmask change to the value given by
the bitmask set; all other bits stay unchanged. This is the same as
the old set_cp0_status function.
Most people want to use {set,clear}_cp0_status().
Ralf
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2001-04-07 2:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-04-06 18:32 set_cp0_status (mipsregs.h) Scott A McConnell
2001-04-07 2:59 ` Ralf Baechle
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.