Lines Matching refs:Interrupt

106          Interrupt   : Interrupt_ID;
113 Interrupt : Interrupt_ID;
117 (Interrupt : Interrupt_ID;
123 Interrupt : Interrupt_ID);
125 entry Block_Interrupt (Interrupt : Interrupt_ID);
127 entry Unblock_Interrupt (Interrupt : Interrupt_ID);
129 entry Ignore_Interrupt (Interrupt : Interrupt_ID);
131 entry Unignore_Interrupt (Interrupt : Interrupt_ID);
136 task type Server_Task (Interrupt : Interrupt_ID) is
236 Interrupt : Interrupt_ID;
240 if Is_Reserved (Interrupt) then
242 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
245 Interrupt_Manager.Attach_Handler (New_Handler, Interrupt, Static);
261 Interrupt : constant Interrupt_ID := constant
265 if Is_Reserved (Interrupt) then
267 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
270 Interrupt_Manager.Bind_Interrupt_To_Entry (T, E, Interrupt);
277 procedure Block_Interrupt (Interrupt : Interrupt_ID) is
279 if Is_Reserved (Interrupt) then
281 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
284 Interrupt_Manager.Block_Interrupt (Interrupt);
292 (Interrupt : Interrupt_ID) return Parameterless_Handler
295 if Is_Reserved (Interrupt) then
297 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
304 return User_Handler (Interrupt).H;
319 (Interrupt : Interrupt_ID;
323 if Is_Reserved (Interrupt) then
325 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
328 Interrupt_Manager.Detach_Handler (Interrupt, Static);
355 Interrupt : Interrupt_ID;
359 if Is_Reserved (Interrupt) then
361 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
365 (Old_Handler, New_Handler, Interrupt, Static);
397 Interrupt => Object.Previous_Handlers (N).Interrupt,
433 procedure Ignore_Interrupt (Interrupt : Interrupt_ID) is
435 if Is_Reserved (Interrupt) then
437 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
440 Interrupt_Manager.Ignore_Interrupt (Interrupt);
456 Object.Previous_Handlers (N).Interrupt := New_Handlers (N).Interrupt;
458 (New_Handlers (N).Interrupt).Static;
466 Interrupt => New_Handlers (N).Interrupt,
482 Attach_Handler (Handlers (N).Handler, Handlers (N).Interrupt, True);
490 function Is_Blocked (Interrupt : Interrupt_ID) return Boolean is
492 if Is_Reserved (Interrupt) then
494 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
497 return Blocked (Interrupt);
504 function Is_Entry_Attached (Interrupt : Interrupt_ID) return Boolean is
506 if Is_Reserved (Interrupt) then
508 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
511 return User_Entry (Interrupt).T /= Null_Task;
518 function Is_Handler_Attached (Interrupt : Interrupt_ID) return Boolean is
520 if Is_Reserved (Interrupt) then
522 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
525 return User_Handler (Interrupt).H /= null;
532 function Is_Ignored (Interrupt : Interrupt_ID) return Boolean is
534 if Is_Reserved (Interrupt) then
536 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
539 return Ignored (Interrupt);
584 function Is_Reserved (Interrupt : Interrupt_ID) return Boolean is
586 return IMNG.Reserve (IMNG.Interrupt_ID (Interrupt));
593 function Reference (Interrupt : Interrupt_ID) return System.Address is
595 if Is_Reserved (Interrupt) then
597 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
601 (Storage_Elements.Integer_Address (Interrupt));
641 procedure Unblock_Interrupt (Interrupt : Interrupt_ID) is
643 if Is_Reserved (Interrupt) then
645 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
648 Interrupt_Manager.Unblock_Interrupt (Interrupt);
656 (Interrupt : Interrupt_ID) return System.Tasking.Task_Id
659 if Is_Reserved (Interrupt) then
661 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
664 return Last_Unblocker (Interrupt);
671 procedure Unignore_Interrupt (Interrupt : Interrupt_ID) is
673 if Is_Reserved (Interrupt) then
675 "interrupt" & Interrupt_ID'Image (Interrupt) & " is reserved";
678 Interrupt_Manager.Unignore_Interrupt (Interrupt);
704 procedure Bind_Handler (Interrupt : Interrupt_ID);
709 procedure Unbind_Handler (Interrupt : Interrupt_ID);
717 Interrupt : Interrupt_ID;
722 (Interrupt : Interrupt_ID;
729 procedure Bind_Handler (Interrupt : Interrupt_ID) is
731 if not Blocked (Interrupt) then
738 IMOP.Thread_Block_Interrupt (IMNG.Interrupt_ID (Interrupt));
744 POP.Wakeup (Server_ID (Interrupt), Interrupt_Server_Idle_Sleep);
752 procedure Unbind_Handler (Interrupt : Interrupt_ID) is
756 if not Blocked (Interrupt) then
763 Server := Server_ID (Interrupt);
790 IMOP.Install_Default_Action (IMNG.Interrupt_ID (Interrupt));
795 IMOP.Thread_Unblock_Interrupt (IMNG.Interrupt_ID (Interrupt));
798 IMOP.Install_Default_Action (IMNG.Interrupt_ID (Interrupt));
807 (Interrupt : Interrupt_ID;
813 if User_Entry (Interrupt).T /= Null_Task then
826 if not Static and then User_Handler (Interrupt).Static then
838 Ignored (Interrupt) := False;
840 Old_Handler := User_Handler (Interrupt).H;
844 User_Handler (Interrupt).H := null;
845 User_Handler (Interrupt).Static := False;
848 Unbind_Handler (Interrupt);
859 Interrupt : Interrupt_ID;
864 if User_Entry (Interrupt).T /= Null_Task then
885 and then (User_Handler (Interrupt).Static
900 Ignored (Interrupt) := False;
904 Old_Handler := User_Handler (Interrupt).H;
908 User_Handler (Interrupt).H := New_Handler;
914 User_Handler (Interrupt).Static := False;
917 User_Handler (Interrupt).Static := Static;
923 if Server_ID (Interrupt) = Null_Task then
930 Access_Hold := new Server_Task (Interrupt);
933 Server_ID (Interrupt) := To_System (Access_Hold.all'Identity);
938 Unbind_Handler (Interrupt);
945 Bind_Handler (Interrupt);
1010 Interrupt : Interrupt_ID;
1015 (Old_Handler, New_Handler, Interrupt, Static, Restoration);
1022 Interrupt : Interrupt_ID;
1026 (Old_Handler, New_Handler, Interrupt, Static);
1031 (Interrupt : Interrupt_ID;
1034 Unprotected_Detach_Handler (Interrupt, Static);
1041 Interrupt : Interrupt_ID)
1046 if User_Handler (Interrupt).H /= null
1047 or else User_Entry (Interrupt).T /= Null_Task
1056 Ignored (Interrupt) := False;
1057 User_Entry (Interrupt) := Entry_Assoc'(T => T, E => E);
1069 if Server_ID (Interrupt) = Null_Task then
1076 Access_Hold := new Server_Task (Interrupt);
1078 Server_ID (Interrupt) :=
1082 Bind_Handler (Interrupt);
1108 accept Block_Interrupt (Interrupt : Interrupt_ID) do
1109 if Blocked (Interrupt) then
1113 Blocked (Interrupt) := True;
1114 Last_Unblocker (Interrupt) := Null_Task;
1119 IMOP.Thread_Block_Interrupt (IMNG.Interrupt_ID (Interrupt));
1121 if User_Handler (Interrupt).H /= null
1122 or else User_Entry (Interrupt).T /= Null_Task
1129 POP.Abort_Task (Server_ID (Interrupt));
1143 accept Unblock_Interrupt (Interrupt : Interrupt_ID) do
1144 if not Blocked (Interrupt) then
1148 Blocked (Interrupt) := False;
1149 Last_Unblocker (Interrupt) :=
1152 if User_Handler (Interrupt).H = null
1153 and then User_Entry (Interrupt).T = Null_Task
1159 (IMNG.Interrupt_ID (Interrupt));
1167 POP.Wakeup (Server_ID (Interrupt),
1173 accept Ignore_Interrupt (Interrupt : Interrupt_ID) do
1174 if Ignored (Interrupt) then
1178 Ignored (Interrupt) := True;
1185 if User_Handler (Interrupt).H /= null then
1187 (Interrupt => Interrupt, Static => True);
1189 elsif User_Entry (Interrupt).T /= Null_Task then
1190 User_Entry (Interrupt) := Entry_Assoc'
1192 Unbind_Handler (Interrupt);
1195 IMOP.Install_Ignore_Action (IMNG.Interrupt_ID (Interrupt));
1199 accept Unignore_Interrupt (Interrupt : Interrupt_ID) do
1200 Ignored (Interrupt) := False;
1207 if User_Handler (Interrupt).H /= null then
1209 (Interrupt => Interrupt, Static => True);
1211 elsif User_Entry (Interrupt).T /= Null_Task then
1212 User_Entry (Interrupt) := Entry_Assoc'
1214 Unbind_Handler (Interrupt);
1217 IMOP.Install_Default_Action (IMNG.Interrupt_ID (Interrupt));
1256 IMOP.Install_Default_Action (IMNG.Interrupt_ID (Interrupt));
1279 (Intwait_Mask'Access, IMNG.Interrupt_ID (Interrupt));
1287 PIO.Set_Interrupt_ID (IMNG.Interrupt_ID (Interrupt), Self_ID);
1293 if User_Handler (Interrupt).H = null
1294 and then User_Entry (Interrupt).T = Null_Task
1303 elsif Blocked (Interrupt) then
1346 if Ret_Interrupt /= Interrupt then
1362 if User_Handler (Interrupt).H /= null then
1363 Tmp_Handler := User_Handler (Interrupt).H;
1371 elsif User_Entry (Interrupt).T /= Null_Task then
1372 Tmp_ID := User_Entry (Interrupt).T;
1373 Tmp_Entry_Index := User_Entry (Interrupt).E;
1392 (IMNG.Interrupt_ID (Interrupt));