Mistake on this page?
Report an issue in GitHub or email us
sch_api.h
Go to the documentation of this file.
1 /*************************************************************************************************/
2 /*!
3  * \file
4  *
5  * \brief Multi-protocol scheduler interface file.
6  *
7  * Copyright (c) 2013-2019 ARM Ltd. All Rights Reserved.
8  *
9  * Copyright (c) 2019 Packetcraft, Inc.
10  *
11  * Licensed under the Apache License, Version 2.0 (the "License");
12  * you may not use this file except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  * http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  */
23 /*************************************************************************************************/
24 
25 #ifndef SCH_API_H
26 #define SCH_API_H
27 
28 #include "wsf_types.h"
29 #include "wsf_os.h"
30 #include "bb_api.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 /**************************************************************************************************
37  Data Types
38 **************************************************************************************************/
39 
40 /*! \brief Conflict action call signature. */
41 typedef BbOpDesc_t*(*BbConflictAct_t)(BbOpDesc_t *pNewBod, BbOpDesc_t *pExistBod);
42 
43 /**************************************************************************************************
44  Function Declarations
45 **************************************************************************************************/
46 
47 /* Initialization */
48 void SchInit(void);
49 void SchHandlerInit(wsfHandlerId_t handlerId);
50 void SchReset(void);
51 uint16_t SchStatsGetHandlerWatermarkUsec(void);
52 uint16_t SchStatsGetDelayLoadWatermarkCount(void);
53 uint32_t SchStatsGetDelayLoadTotalCount(void);
54 
55 /* Control */
56 void SchHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg);
57 void SchLoadHandler(void);
58 
59 /* List maintenance */
60 void SchInsertNextAvailable(BbOpDesc_t *pBod);
61 bool_t SchInsertAtDueTime(BbOpDesc_t *pBod, BbConflictAct_t conflictCback);
62 bool_t SchInsertEarlyAsPossible(BbOpDesc_t *pBod, uint32_t min, uint32_t max);
63 bool_t SchInsertLateAsPossible(BbOpDesc_t *pBod, uint32_t min, uint32_t max);
64 bool_t SchRemove(BbOpDesc_t *pBod);
65 void SchReload(BbOpDesc_t *pBod);
66 bool_t SchIsBodCancellable(BbOpDesc_t *pBod);
67 
68 #ifdef __cplusplus
69 };
70 #endif
71 
72 #endif /* SCH_API_H */
uint16_t wsfEventMask_t
Event handler event mask data type.
Definition: wsf_os.h:83
BbOpDesc_t *(* BbConflictAct_t)(BbOpDesc_t *pNewBod, BbOpDesc_t *pExistBod)
Conflict action call signature.
Definition: sch_api.h:41
Platform-independent data types.
uint8_t wsfHandlerId_t
Event handler ID data type.
Definition: wsf_os.h:80
Baseband interface file.
Baseband operation descriptor (BOD).
Definition: bb_api.h:149
Software foundation OS API.
Common message structure passed to event handler.
Definition: wsf_os.h:106
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.