@@ -9655,18 +9655,26 @@ Window *CreateSelectIdle(unsigned long long id)
9655
9655
return wIdle;
9656
9656
}
9657
9657
9658
- void UpdateEvent (TGrid *grid, DATA_TYPE data)
9658
+ void UpdateEvent_Thm_1 (TGrid *grid, DATA_TYPE data)
9659
9659
{
9660
- const enum THERM_PWR_EVENTS event = data.uint[0];
9661
- const unsigned int thm = data.uint[1];
9660
+ const enum THERM_PWR_EVENTS event = data.ullong;
9662
9661
const ATTRIBUTE attrib = RSC(BOX_EVENT).ATTR()[
9663
- (ProcessorEvents & event) ? thm : 0
9662
+ (ProcessorEvents & event) ? 1 : 0
9663
+ ];
9664
+ memset(grid->cell.attr, attrib.value, grid->cell.length);
9665
+ }
9666
+
9667
+ void UpdateEvent_Thm_2(TGrid *grid, DATA_TYPE data)
9668
+ {
9669
+ const enum THERM_PWR_EVENTS event = data.ullong;
9670
+ const ATTRIBUTE attrib = RSC(BOX_EVENT).ATTR()[
9671
+ (ProcessorEvents & event) ? 2 : 0
9664
9672
];
9665
9673
memset(grid->cell.attr, attrib.value, grid->cell.length);
9666
9674
}
9667
9675
9668
9676
#define EVENT_DOMAINS 4
9669
- #define EVENT_SECTIONS 10
9677
+ #define EVENT_SECTIONS 11
9670
9678
9671
9679
Window *CreateEvents(unsigned long long id)
9672
9680
{
@@ -9678,14 +9686,17 @@ Window *CreateEvents(unsigned long long id)
9678
9686
} evLdr[EVENT_DOMAINS][EVENT_SECTIONS] = {
9679
9687
{
9680
9688
/* Thermal Sensor */
9681
- { {BOXKEY_CLR_THM_SENSOR}, RSC(BOX_EVENT_THERMAL_SENSOR).CODE(),
9682
- EVENT_THERM_SENSOR , 1 },
9689
+ { {SCANKEY_NULL} , RSC(BOX_EVENT_THERMAL_SENSOR).CODE(),
9690
+ EVENT_THERMAL_STS , 1 },
9683
9691
/* PROCHOT# Agent */
9684
9692
{ {SCANKEY_NULL} , RSC(BOX_EVENT_PROCHOT_STS).CODE(),
9685
9693
EVENT_PROCHOT_STS , 1 },
9686
9694
/* PROCHOT# Agent Log */
9687
9695
{ {BOXKEY_CLR_PROCHOT_LOG}, RSC(BOX_EVENT_PROCHOT_LOG).CODE(),
9688
9696
EVENT_PROCHOT_LOG , 1 },
9697
+ /* Thermal Log */
9698
+ { {BOXKEY_CLR_THM_SENSOR} , RSC(BOX_EVENT_THERMAL_LOG).CODE(),
9699
+ EVENT_THERMAL_LOG , 1 },
9689
9700
/* Critical Temperature */
9690
9701
{ {SCANKEY_NULL} , RSC(BOX_EVENT_CRITICAL_TMP).CODE(),
9691
9702
EVENT_CRITIC_TMP , 1 },
@@ -9736,6 +9747,9 @@ Window *CreateEvents(unsigned long long id)
9736
9747
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9737
9748
EVENT_THERM_NONE , 0 },
9738
9749
/* Blank cell */
9750
+ { {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9751
+ EVENT_THERM_NONE , 0 },
9752
+ /* Blank cell */
9739
9753
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9740
9754
EVENT_THERM_NONE , 0 }
9741
9755
}, {
@@ -9767,6 +9781,9 @@ Window *CreateEvents(unsigned long long id)
9767
9781
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9768
9782
EVENT_THERM_NONE , 0 },
9769
9783
/* Blank cell */
9784
+ { {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9785
+ EVENT_THERM_NONE , 0 },
9786
+ /* Blank cell */
9770
9787
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9771
9788
EVENT_THERM_NONE , 0 }
9772
9789
}, {
@@ -9775,7 +9792,7 @@ Window *CreateEvents(unsigned long long id)
9775
9792
EVENT_RING_THM_STS , 1 },
9776
9793
/* PROCHOT# Agent */
9777
9794
{ {SCANKEY_NULL} , RSC(BOX_EVENT_PROCHOT_STS).CODE(),
9778
- EVENT_RING_HOT_STS , 0 },
9795
+ EVENT_RING_HOT_STS , 1 },
9779
9796
/* PROCHOT# Agent Log */
9780
9797
{ {BOXKEY_CLR_RING_HOT} , RSC(BOX_EVENT_PROCHOT_LOG).CODE(),
9781
9798
EVENT_RING_HOT_LOG , 1 },
@@ -9799,6 +9816,9 @@ Window *CreateEvents(unsigned long long id)
9799
9816
EVENT_THERM_NONE , 0 },
9800
9817
/* Blank cell */
9801
9818
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9819
+ EVENT_THERM_NONE , 0 },
9820
+ /* Clear all events */
9821
+ { {BOXKEY_CLR_ALL_EVENTS} , RSC(BOX_EVENT_ALL_OF_THEM).CODE(),
9802
9822
EVENT_THERM_NONE , 0 }
9803
9823
}
9804
9824
};
@@ -9809,7 +9829,6 @@ Window *CreateEvents(unsigned long long id)
9809
9829
6, TOP_HEADER_ROW + 2 );
9810
9830
if (wEvent != NULL)
9811
9831
{
9812
- DATA_TYPE data;
9813
9832
CUINT col, row;
9814
9833
for (row = 0; row < EVENT_SECTIONS; row++) {
9815
9834
for (col = 0; col < EVENT_DOMAINS; col++) {
@@ -9823,8 +9842,14 @@ Window *CreateEvents(unsigned long long id)
9823
9842
9824
9843
if (evLdr[col][row].mask != EVENT_THERM_NONE)
9825
9844
{
9826
- data = (const DATA_TYPE){.uint = {evLdr[col][row].mask, theme}};
9827
- GridCall(grid, UpdateEvent, data);
9845
+ switch (evLdr[col][row].theme) {
9846
+ case 1:
9847
+ GridCall(grid, UpdateEvent_Thm_1, evLdr[col][row].mask);
9848
+ break;
9849
+ case 2:
9850
+ GridCall(grid, UpdateEvent_Thm_2, evLdr[col][row].mask);
9851
+ break;
9852
+ }
9828
9853
}
9829
9854
}
9830
9855
}
@@ -13435,6 +13460,14 @@ int Shortcut(SCANKEY *scan)
13435
13460
}
13436
13461
break;
13437
13462
13463
+ case BOXKEY_CLR_ALL_EVENTS:
13464
+ if (!RING_FULL(RW(Shm)->Ring[0])) {
13465
+ RING_WRITE( RW(Shm)->Ring[0],
13466
+ COREFREQ_IOCTL_CLEAR_EVENTS,
13467
+ EVENT_ALL_OF_THEM );
13468
+ }
13469
+ break;
13470
+
13438
13471
case BOXKEY_CLR_THM_SENSOR:
13439
13472
case BOXKEY_CLR_PROCHOT_LOG:
13440
13473
case BOXKEY_CLR_THM_CRIT:
@@ -13459,8 +13492,8 @@ int Shortcut(SCANKEY *scan)
13459
13492
case BOXKEY_CLR_RING_PL2:
13460
13493
case BOXKEY_CLR_RING_EDP:
13461
13494
{
13462
- const enum EVENT_ENUM lshift = (scan->key & CLEAR_EVENT_MASK) >> 2 ;
13463
- const enum THERM_PWR_EVENTS event = 0x1 << lshift;
13495
+ const enum EVENT_ENUM lshift = (scan->key & CLEAR_EVENT_MASK) >> 1 ;
13496
+ const enum THERM_PWR_EVENTS event = 0x1LLU << lshift;
13464
13497
if (!RING_FULL(RW(Shm)->Ring[0])) {
13465
13498
RING_WRITE(RW(Shm)->Ring[0], COREFREQ_IOCTL_CLEAR_EVENTS, event);
13466
13499
}
0 commit comments