PATH 
ADC Home > Documentation > Hardware > Device Managers and Drivers > PCI Card Services > Designing PCI Cards and Drivers for Power Macintosh Computers


  

Code Execution in General

The environments in which code execution can occur are described in Noninterrupt and Interrupt-Level Execution and may be summarized as follows:

IMPORTANT

Hardware interrupt handlers can nest on current versions of the Mac OS, but may not be able to in future products.

Different execution levels have different restrictions. Task-level execution may make use of nearly any operating-system or Toolbox service, but secondary interrupt tasks and hardware interrupt handlers are allowed only a subset of those services. Eventhough a service may be described as callable from task level, you can't call it from any task-level code. For example, drivers are not allowed to call the Toolbox.

Note

Some confusion in System 7 programming results from ad hoc rules governing execution contexts. In System 7, applications have one set of rules while their VBL tasks, Time Manager tasks, and I/O completion routines all have their own rules. Rules that establish when certain system services can and cannot be used are difficult to understand and are not fully established. For further discussion of this topic, see the discussion in Technote 1104, "Interrupt Safe Routines."


© 1999 Apple Computer, Inc. – (Last Updated 26 March 99)