4.4.8. CDP

This function is called when a CDP instruction is recognized for a coprocessor. If the requested coprocessor operation is not supported, the function must return ARMul_CP_CANT.

Syntax


unsigned CDP(void *handleint type, ARMword instr, ARMword *data)

where:

handle

is the handle from ARMulif_InstallCoprocessorV5.

type

is the type of the coprocessor access. This canbe one of:

ARMul_CP_FIRST

indicates that this is the first time the coprocessor model has been called for this instruction.

ARMul_CP_BUSY

indicates that this is a subsequent call, after the first call was busy-waited.

ARMul_CP_INTERRUPT

warns the coprocessor that the ARM is about to service an interrupt, so the coprocessor must discard the current instruction. Usually, the instruction will be retried later, in which case the type will be reset to ARMul_CP_FIRST.

instr

is the current opcode.

data

is not used.

Return

The function must return one of:

  • ARMul_CP_DONE, to indicate that the coprocessor operation is complete

  • ARMul_CP_BUSY, to indicate that the coprocessor is busy

  • ARMul_CP_CANT, to indicate that the instruction is not supported.

Copyright © 1999-2001 ARM Limited. All rights reserved.ARM DUI0058D
Non-Confidential