Intel EP80579 User Manual

Page of 76
Security Software—Software Overview
Intel
®
 EP80579 Software for Security Applications on Intel
®
 QuickAssist Technology
PG
August 2009
18
Order Number: 320183-004US
3.5
Process View
This section describes the context in which the EP80579 security software code is 
executed, which is important in terms of understanding concurrency, or where locking 
may be required, for example.
Code which implements the Acceleration APIs is library code, and is executed in the 
context of whatever thread or interrupt context from which it is called.  All of the 
EP80579 security software APIs document the context in which they can be called, 
specifically whether they may sleep and therefore are suitable for calling in a context 
which may not sleep, such as ISRs or certain types of "bottom halves" including softirq 
and tasklet. They also document whether they are thread-safe. 
 lists the API documentation supported in this 
release. 
The remainder of EP80579 security software code runs in a well-defined context, 
whether it is process context or some form of interrupt context as described below.
• Interrupt handlers are registered for all interrupts from devices managed by 
EP80579 security software, specifically the GbE MACs, and the ring controller on 
the ASU. This code runs in the ISR (interrupt top half) context.
• Many of the Acceleration APIs support one or both of asynchronous and 
synchronous modes.
— In asynchronous mode: when the request has been carried out on the SSU, a 
“function completion callback” is typically invoked in a non-sleeping bottom half 
context (specifically, a tasklet, on Linux). For more on this topic, see 
— In synchronous mode: when the request has been sent to the SSU, the calling 
thread is blocked, pending on a wait queue. When the response is received 
from the SSU, the calling thread is de-queued, and thereby unbocked.
3.6
Deployment View
 describes the mapping between the software components described in 
and the kernel modules that are created by the 
build system.
Table 4.
Development View
Software Component
Directory
OCF Shim
Acceleration/shims/OCF_Shim
Acceleration System Driver
Acceleration/drivers/icp_asd
Lookaside Crypto Access Layer
Acceleration/library/icp_crypto/look_aside_crypto
QAT Access Layer
Acceleration/library/icp_crypto/QATAL 
Debug Infrastructure
Acceleration/library/icp_debug/DCC
Management Interface Module
Acceleration/library/icp_debug/MIL
Hardware Abstraction Layer 
(part of Hardware Services Layer)
Acceleration/library/icp_services/RuntimeTargetLibrary
Operating System Abstraction Layer
Acceleration/library/icp_utils/OSAL
Firmware Driver for SSU
Acceleration/firmware