Get or set a characteristic associated with an interrupt
#include <sys/neutrino.h> int InterruptCharacteristic( int type, int id, unsigned *new, unsigned *old ); int InterruptCharacteristic_r( int type, int id, unsigned *new, unsigned *old );
Use the -l c option to qcc to link against this library. This library is usually included automatically.
- The type of characteristic; the only type that's currently defined is:
- _NTO_IC_LATENCY — set or get the interrupt's latency.
- The identifier for the interrupt function, as returned by InterruptAttach() or InterruptAttachEvent().
- NULL, or a pointer to the new value.
- NULL, or a pointer to a location where the function can store the old value.
The InterruptCharacteristic() and InterruptCharacteristic_r() kernel calls set or get a characteristic of an interrupt.
These functions are identical except in the way they indicate errors. See the Returns section for details.
ThreadCtl( _NTO_TCTL_IO, 0 );
The id argument can be -1. In this case, you're setting the global latency value for the system. If an interrupt attachment doesn't specify a latency value, the global latency number is used when calculating how deep a sleep state the kernel may use. You need to have I/O privileges to set the global latency value.
The only difference between these functions is the way they indicate errors:
- 0 on success. If an error occurs, -1 is returned and errno is set.
- 0 on success. This function does NOT set errno. If an error occurs, a value from the Errors section is returned.
- The function couldn't read from the new pointer, or it couldn't write to the old.
- The type isn't _NTO_IC_LATENCY.
- You're trying to set a new latency, but the calling thread isn't the attaching process or doesn't have I/O privileges.
- The id isn't either a valid interrupt attachment identifier or -1.
Last modified: 2014-06-24