Patent ID: 8126860

Claim:
An apparatus for processing data using a plurality of functions of processing the data, the apparatus comprising: at least one hardware-implemented circuit being capable of executing the plurality of functions; one processor; and a plurality of function control units, each function control unit being operated by the one processor, each function control unit being configured as a status-setting control unit to control a corresponding function of the plurality of functions executed by the hardware-implemented circuit, each function control unit including, a driver control unit configured to receive status information from a first driver, the status information indicating a status of data processing of the function controlled by the function control unit, the data processing being performed by the first driver; a storing unit configured to store therein function information indicating the function and next function information indicating a next function to be executed next to the function in an associated manner; a determining unit configured to determine whether to execute the next function based on the function information, the next function information, and the status information; and a requesting unit configured to request, when the determining unit determines to execute the next function, a subsequent function control unit for controlling the next function to be executed via a second driver, in which the function control unit sends a start notification to the second driver, and upon receiving the start notification the second driver performs data processing of the next function and sends status information to the subsequent function control unit, thereby the subsequent function control unit being chained to the function control unit via the second driver, wherein the plurality of functions are controlled by controlling the plurality of function control units which are chained successively as being operated by the one processor, and wherein the storing unit stores therein a plurality of pieces of function information and the next function information in an associated manner, the driver control unit configured to receive a plurality of pieces of status information each indicating a status of data processing by each of the functions indicated by each of the pieces of the function information, and the determining unit determines, when it is determined to start a next function based on a plurality of statuses of data processing indicated by the pieces of status information, to execute a function indicated by the next function information corresponding to the pieces of function information that caused the pieces of statuses of data processing.