/** Maximum ordered requests to process in every invocation of *lio_process_ordered_list().Thefunctionwillcontinuetoprocessrequests *aslongasitcanfindonethathasfinishedprocessing.Ifitkeeps *findingrequeststhathavecompleted,thefunctioncanrunforever.The *valuedefinedheresetsanupperlimitonthenumberofrequestsitcan *processbeforeitreturnscontroltothepollthread.
*/ #define MAX_ORD_REQS_TO_PROCESS 4096
/** Head of a response list. There are several response lists in the *system.Oneforeachresponseorder-Unordered,ordered *and1fornoresponseentriesoneachinstructionqueue.
*/ struct octeon_response_list { /** List structure to add delete pending entries to */ struct list_head head;
/** A lock for this response list */
spinlock_t lock;
atomic_t pending_req_count;
};
/** The type of response list.
*/ enum {
OCTEON_ORDERED_LIST = 0,
OCTEON_UNORDERED_NONBLOCKING_LIST = 1,
OCTEON_UNORDERED_BLOCKING_LIST = 2,
OCTEON_ORDERED_SC_LIST = 3,
OCTEON_DONE_SC_LIST = 4,
OCTEON_ZOMBIE_SC_LIST = 5
};
/** Response Order values for a Octeon Request. */ enum {
OCTEON_RESP_ORDERED = 0,
OCTEON_RESP_UNORDERED = 1,
OCTEON_RESP_NORESPONSE = 2
};
/** Error codes used in Octeon Host-Core communication. * *3116150 *--------------------------------- *||| *--------------------------------- *Errorcodesare32-bitwide.Theupper16-bits,calledMajorErrorNumber, *arereservedtoidentifythegrouptowhichtheerrorcodebelongs.The *lower16-bits,calledMinorErrorNumber,carrytheactualcode. * *Soerrorcodesare(MAJORNUMBER<<16)|MINOR_NUMBER.
*/
/*------------ Error codes used by host driver -----------------*/ #define DRIVER_MAJOR_ERROR_CODE 0x0000 /*------ Error codes used by firmware (bits 15..0 set by firmware */ #define FIRMWARE_MAJOR_ERROR_CODE 0x0001
/** A value of 0x00000000 indicates no error i.e. success */ #define DRIVER_ERROR_NONE 0x00000000
/** Initialize the response lists. The number of response lists to create is *givenbycount. *@paramocteon_dev-theocteondevicestructure.
*/ int octeon_setup_response_list(struct octeon_device *octeon_dev);
/** Check the status of first entry in the ordered list. If the instruction at *thatentryfinishedprocessingorhastimed-out,theentryiscleaned. *@paramocteon_dev-theocteondevicestructure. *@paramforce_quit-therequestisforcedtotimeoutifthisis1 *@return1iftheorderedlistisempty,0otherwise.
*/ int lio_process_ordered_list(struct octeon_device *octeon_dev,
u32 force_quit);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.