21.01.2015 Views

INtime® 3.1 Software - tenAsys

INtime® 3.1 Software - tenAsys

INtime® 3.1 Software - tenAsys

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Appendix B: The iwin32 subsystem<br />

Using RtAttachInterruptVector: A thread is created that is woken up when an interrupt<br />

occurs. The thread may use all INtime functions, which makes this a simple- tounderstand<br />

approach. There is a penalty in processing time, as each interrupt requires<br />

two thread switches for switching to and from the interrupt thread.<br />

Using RtAttachInterruptVectorEx: As with the previous function, a thread is created.<br />

But in addition a function may be specified that gets called from the hardware<br />

interrupt handler, which then determines the need to wake up the thread. In this way<br />

many thread switches can be avoided, such as in the case of a terminal: the interrupt<br />

function can cause thread wake up for a carriage return character and do internal<br />

buffering (and maybe editing) for all other characters. Such an interrupt function can<br />

only use the I/O functions RtReadPortXxx and RtWritePortXxx.<br />

When an interrupt comes from a PCI source, the actual interrupt line can be<br />

determined using RtGetBusDataByOffset. Access to I/O ports on the device for<br />

determining interrupt details is provided by the RtReadPortXxx and RtWritePortXxx<br />

functions.<br />

The thread created for interrupt handling is a special one: it can not be suspended or<br />

resumed and its priority can not be changed. It should not call ExitThread and cannot<br />

be terminated by TerminateThread.<br />

Interrupt handling functions include:<br />

iwin32 calls<br />

iwin32x calls<br />

RtAttachInterruptVector –<br />

RtAttachInterruptVectorEx –<br />

RtDisableInterrupts –<br />

RtEnableInterrupts –<br />

RtReleaseInterruptVector –<br />

Registry handling<br />

This lists common operations on registry keys and the registry system calls that do the<br />

operations.<br />

To... iwin32 call iwin32x call<br />

Create a key RegCreateKeyEx Part of Win32<br />

Create a subkey and store registration information into RegLoadKey Part of Win32<br />

that subkey<br />

Delete a subkey from the registry RegDeleteKey Part of Win32<br />

Delete a value from a registry key RegDeleteValue Part of Win32<br />

Enumerate subkeys of an open registry key RegEnumKeyEx Part of Win32<br />

Enumerate a value for an open registry key RegEnumValue Part of Win32<br />

149

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!