Intel EP80579 Security Camera User Manual


 
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. Table 1, “Related
Documents and Sample Code” on page 8 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
Section 10.0, “Programming Model” on page 43.
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
Table 5 describes the mapping between the software components described in
Section 3.3, “Logical View” on page 15, 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