mirror of
https://github.com/preble/libpinproc
synced 2026-02-24 18:25:23 +01:00
Added support for a reload timer for each switch rule.
This commit is contained in:
@@ -268,7 +268,8 @@ int32_t CreateSwitchUpdateRulesBurst ( uint32_t * burst, PRSwitchRuleInternal *r
|
|||||||
(rule_record->driver.driverNum << P_ROC_SWITCH_RULE_DRIVER_NUM_SHIFT) |
|
(rule_record->driver.driverNum << P_ROC_SWITCH_RULE_DRIVER_NUM_SHIFT) |
|
||||||
(rule_record->linkActive << P_ROC_SWITCH_RULE_LINK_ACTIVE_SHIFT) |
|
(rule_record->linkActive << P_ROC_SWITCH_RULE_LINK_ACTIVE_SHIFT) |
|
||||||
(rule_record->linkIndex << P_ROC_SWITCH_RULE_LINK_ADDRESS_SHIFT) |
|
(rule_record->linkIndex << P_ROC_SWITCH_RULE_LINK_ADDRESS_SHIFT) |
|
||||||
(rule_record->notifyHost << P_ROC_SWITCH_RULE_NOTIFY_HOST_SHIFT);
|
(rule_record->notifyHost << P_ROC_SWITCH_RULE_NOTIFY_HOST_SHIFT) |
|
||||||
|
(rule_record->reloadActive << P_ROC_SWITCH_RULE_RELOAD_ACTIVE_SHIFT);
|
||||||
return kPRSuccess;
|
return kPRSuccess;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -206,11 +206,12 @@ const uint32_t P_ROC_SWITCH_RULE_NUM_STATE_SHIFT = 8;
|
|||||||
const uint32_t P_ROC_SWITCH_RULE_NUM_SWITCH_NUM_SHIFT = 0;
|
const uint32_t P_ROC_SWITCH_RULE_NUM_SWITCH_NUM_SHIFT = 0;
|
||||||
const uint32_t P_ROC_SWITCH_RULE_NUM_TO_ADDR_SHIFT = 2;
|
const uint32_t P_ROC_SWITCH_RULE_NUM_TO_ADDR_SHIFT = 2;
|
||||||
|
|
||||||
const uint32_t P_ROC_SWITCH_RULE_NOTIFY_HOST_SHIFT = 23;
|
const uint32_t P_ROC_SWITCH_RULE_RELOAD_ACTIVE_SHIFT = 31;
|
||||||
const uint32_t P_ROC_SWITCH_RULE_LINK_ACTIVE_SHIFT = 10;
|
const uint32_t P_ROC_SWITCH_RULE_NOTIFY_HOST_SHIFT = 23;
|
||||||
const uint32_t P_ROC_SWITCH_RULE_LINK_ADDRESS_SHIFT = 11;
|
const uint32_t P_ROC_SWITCH_RULE_LINK_ACTIVE_SHIFT = 10;
|
||||||
const uint32_t P_ROC_SWITCH_RULE_CHANGE_OUTPUT_SHIFT = 9;
|
const uint32_t P_ROC_SWITCH_RULE_LINK_ADDRESS_SHIFT = 11;
|
||||||
const uint32_t P_ROC_SWITCH_RULE_DRIVER_NUM_SHIFT = 0;
|
const uint32_t P_ROC_SWITCH_RULE_CHANGE_OUTPUT_SHIFT = 9;
|
||||||
|
const uint32_t P_ROC_SWITCH_RULE_DRIVER_NUM_SHIFT = 0;
|
||||||
|
|
||||||
const uint32_t P_ROC_STATE_CHANGE_CONFIG_ADDR = 0x1000;
|
const uint32_t P_ROC_STATE_CHANGE_CONFIG_ADDR = 0x1000;
|
||||||
|
|
||||||
@@ -231,7 +232,8 @@ const uint32_t P_ROC_DMD_DOT_TABLE_BASE_ADDR = 0x1000;
|
|||||||
|
|
||||||
typedef struct PRSwitchRuleInternal {
|
typedef struct PRSwitchRuleInternal {
|
||||||
uint8_t switchNum; /**< Number of the physical switch, or for linked driver changes the virtual switch number (224 and up). */
|
uint8_t switchNum; /**< Number of the physical switch, or for linked driver changes the virtual switch number (224 and up). */
|
||||||
PREventType eventType; /**< The event type that this rule generates. Determines closed/open, debounced/non-debounced. */
|
PREventType eventType; /**< The event type that this rule generates. Determines closed/open, debounced/non-debounced. */
|
||||||
|
bool_t reloadActive;
|
||||||
bool_t notifyHost;
|
bool_t notifyHost;
|
||||||
bool_t changeOutput; /**< True if this switch rule should affect a driver output change. */
|
bool_t changeOutput; /**< True if this switch rule should affect a driver output change. */
|
||||||
bool_t linkActive; /**< True if this switch rule has additional linked driver updates. */
|
bool_t linkActive; /**< True if this switch rule has additional linked driver updates. */
|
||||||
|
|||||||
Reference in New Issue
Block a user