int FloppyStartDevice(int DeviceObject , int Irp ) { int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int Irp__IoStatus__Status ; int disketteExtension__TargetObject = __VERIFIER_nondet_int() ; int disketteExtension__MaxTransferSize ; int disketteExtension__DriveType = __VERIFIER_nondet_int() ; int disketteExtension__PerpendicularMode ; int disketteExtension__DeviceUnit ; int disketteExtension__DriveOnValue ; int disketteExtension__UnderlyingPDO = __VERIFIER_nondet_int() ; int disketteExtension__InterfaceString = __VERIFIER_nondet_int() ; int disketteExtension__IsStarted ; int disketteExtension__HoldNewRequests ; int ntStatus ; int pnpStatus ; int doneEvent = __VERIFIER_nondet_int() ; int fdcInfo = __VERIFIER_nondet_int() ; int fdcInfo__BufferCount ; int fdcInfo__BufferSize ; int fdcInfo__MaxTransferSize = __VERIFIER_nondet_int() ; int fdcInfo__AcpiBios = __VERIFIER_nondet_int() ; int fdcInfo__AcpiFdiSupported = __VERIFIER_nondet_int() ; int fdcInfo__PeripheralNumber = __VERIFIER_nondet_int() ; int fdcInfo__BusType ; int fdcInfo__ControllerNumber = __VERIFIER_nondet_int() ; int fdcInfo__UnitNumber = __VERIFIER_nondet_int() ; int fdcInfo__BusNumber = __VERIFIER_nondet_int() ; int Dc ; int Fp ; int disketteExtension ; int irpSp ; int irpSp___0 ; int nextIrpSp ; int nextIrpSp__Control ; int irpSp___1 ; int irpSp__Control ; int irpSp__Context ; int InterfaceType ; int KUSER_SHARED_DATA__AlternativeArchitecture_NEC98x86 = __VERIFIER_nondet_int() ; long __cil_tmp42 ; int __cil_tmp43 ; int __cil_tmp44 ; int __cil_tmp45 ; int __cil_tmp46 ; int __cil_tmp47 ; int __cil_tmp48 ; int __cil_tmp49 ; { Dc = DiskController; Fp = FloppyDiskPeripheral; disketteExtension = DeviceObject__DeviceExtension; irpSp = Irp__Tail__Overlay__CurrentStackLocation; irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation; nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; nextIrpSp__Control = 0; if (s != NP) { { errorFn(); } } else { if (compRegistered != 0) { { errorFn(); } } else { compRegistered = 1; } } { irpSp___1 = Irp__Tail__Overlay__CurrentStackLocation - 1; irpSp__Context = doneEvent; irpSp__Control = 224; ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } { __cil_tmp42 = (long )ntStatus; if (__cil_tmp42 == 259L) { { ntStatus = KeWaitForSingleObject(doneEvent, Executive, KernelMode, 0, 0); ntStatus = myStatus; } } } { fdcInfo__BufferCount = 0; fdcInfo__BufferSize = 0; __cil_tmp43 = 3080; __cil_tmp44 = 458752; __cil_tmp45 = 461832; __cil_tmp46 = 461835; ntStatus = FlFdcDeviceIo(disketteExtension__TargetObject, __cil_tmp46, fdcInfo); } if (ntStatus >= 0) { disketteExtension__MaxTransferSize = fdcInfo__MaxTransferSize; if (fdcInfo__AcpiBios) { if (fdcInfo__AcpiFdiSupported) { { ntStatus = FlAcpiConfigureFloppy(disketteExtension, fdcInfo); } if (disketteExtension__DriveType == 4) { //__cil_tmp47 = uninf1(); //disketteExtension__PerpendicularMode |= __cil_tmp47; } } else { goto _L; } } else { _L: if (disketteExtension__DriveType == 4) { //__cil_tmp48 = uninf1(); //disketteExtension__PerpendicularMode |= __cil_tmp48; } InterfaceType = 0; { while (1) { while_0_continue: /* CIL Label */ ; if (InterfaceType >= MaximumInterfaceType) { goto while_1_break; } { fdcInfo__BusType = InterfaceType; ntStatus = IoQueryDeviceDescription(fdcInfo__BusType, fdcInfo__BusNumber, Dc, fdcInfo__ControllerNumber, Fp, fdcInfo__PeripheralNumber, FlConfigCallBack, disketteExtension); } if (ntStatus >= 0) { goto while_1_break; } InterfaceType ++; } while_0_break: /* CIL Label */ ; } while_1_break: ; } if (ntStatus >= 0) { if (KUSER_SHARED_DATA__AlternativeArchitecture_NEC98x86 != 0) { disketteExtension__DeviceUnit = fdcInfo__UnitNumber; //disketteExtension__DriveOnValue = fdcInfo__UnitNumber; } else { disketteExtension__DeviceUnit = fdcInfo__PeripheralNumber; //__cil_tmp49 = 16 << fdcInfo__PeripheralNumber; //disketteExtension__DriveOnValue = fdcInfo__PeripheralNumber | __cil_tmp49; } { pnpStatus = IoRegisterDeviceInterface(disketteExtension__UnderlyingPDO, MOUNTDEV_MOUNTED_DEVICE_GUID, 0, disketteExtension__InterfaceString); } if (pnpStatus >= 0) { { pnpStatus = IoSetDeviceInterfaceState(disketteExtension__InterfaceString, 1); } } disketteExtension__IsStarted = 1; disketteExtension__HoldNewRequests = 0; } } { Irp__IoStatus__Status = ntStatus; myStatus = ntStatus; IofCompleteRequest(Irp, 0); } return (ntStatus); } }
int FloppyStartDevice(int DeviceObject , int Irp ) { int DeviceObject__DeviceExtension = __VERIFIER_nondet_int() ; int Irp__Tail__Overlay__CurrentStackLocation = __VERIFIER_nondet_int() ; int Irp__IoStatus__Status ; int disketteExtension__TargetObject = __VERIFIER_nondet_int() ; int disketteExtension__MaxTransferSize ; int disketteExtension__DriveType = __VERIFIER_nondet_int() ; int disketteExtension__PerpendicularMode ; int disketteExtension__DeviceUnit ; int disketteExtension__DriveOnValue ; int disketteExtension__UnderlyingPDO = __VERIFIER_nondet_int() ; int disketteExtension__InterfaceString = __VERIFIER_nondet_int() ; int disketteExtension__IsStarted ; int disketteExtension__HoldNewRequests ; int ntStatus ; int pnpStatus ; int doneEvent = __VERIFIER_nondet_int() ; int fdcInfo = __VERIFIER_nondet_int() ; int fdcInfo__BufferCount ; int fdcInfo__BufferSize ; int fdcInfo__MaxTransferSize = __VERIFIER_nondet_int() ; int fdcInfo__AcpiBios = __VERIFIER_nondet_int() ; int fdcInfo__AcpiFdiSupported = __VERIFIER_nondet_int() ; int fdcInfo__PeripheralNumber = __VERIFIER_nondet_int() ; int fdcInfo__BusType ; int fdcInfo__ControllerNumber = __VERIFIER_nondet_int() ; int fdcInfo__UnitNumber = __VERIFIER_nondet_int() ; int fdcInfo__BusNumber = __VERIFIER_nondet_int() ; int Dc ; int Fp ; int disketteExtension ; int irpSp ; int irpSp___0 ; int nextIrpSp ; int nextIrpSp__Control ; int irpSp___1 ; int irpSp__Control ; int irpSp__Context ; int InterfaceType ; int KUSER_SHARED_DATA__AlternativeArchitecture_NEC98x86 = __VERIFIER_nondet_int() ; long __cil_tmp42 ; int __cil_tmp43 ; int __cil_tmp44 ; int __cil_tmp45 ; int __cil_tmp46 ; int __cil_tmp47 ; int __cil_tmp48 ; int __cil_tmp49 ; { #line 503 Dc = DiskController; #line 504 Fp = FloppyDiskPeripheral; #line 505 disketteExtension = DeviceObject__DeviceExtension; #line 506 irpSp = Irp__Tail__Overlay__CurrentStackLocation; #line 507 irpSp___0 = Irp__Tail__Overlay__CurrentStackLocation; #line 508 nextIrpSp = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 509 nextIrpSp__Control = 0; #line 510 if (s != NP) { { #line 512 errorFn(); } } else { #line 515 if (compRegistered != 0) { { #line 517 errorFn(); } } else { #line 520 compRegistered = 1; } } { #line 524 irpSp___1 = Irp__Tail__Overlay__CurrentStackLocation - 1; #line 525 irpSp__Context = doneEvent; #line 526 irpSp__Control = 224; #line 530 ntStatus = IofCallDriver(disketteExtension__TargetObject, Irp); } { #line 532 __cil_tmp42 = (long )ntStatus; #line 532 if (__cil_tmp42 == 259L) { { #line 534 ntStatus = KeWaitForSingleObject(doneEvent, Executive, KernelMode, 0, 0); #line 535 ntStatus = myStatus; } } } { #line 541 fdcInfo__BufferCount = 0; #line 542 fdcInfo__BufferSize = 0; #line 543 __cil_tmp43 = 3080; #line 543 __cil_tmp44 = 458752; #line 543 __cil_tmp45 = 461832; #line 543 __cil_tmp46 = 461835; #line 543 ntStatus = FlFdcDeviceIo(disketteExtension__TargetObject, __cil_tmp46, fdcInfo); } #line 546 if (ntStatus >= 0) { #line 547 disketteExtension__MaxTransferSize = fdcInfo__MaxTransferSize; #line 548 if (fdcInfo__AcpiBios) { #line 549 if (fdcInfo__AcpiFdiSupported) { { #line 551 ntStatus = FlAcpiConfigureFloppy(disketteExtension, fdcInfo); } #line 553 if (disketteExtension__DriveType == 4) { #line 554 //__cil_tmp47 = uninf1(); #line 554 //disketteExtension__PerpendicularMode |= __cil_tmp47; } } else { goto _L; } } else { _L: #line 563 if (disketteExtension__DriveType == 4) { #line 564 //__cil_tmp48 = uninf1(); #line 564 //disketteExtension__PerpendicularMode |= __cil_tmp48; } #line 568 InterfaceType = 0; { #line 570 while (1) { while_0_continue: /* CIL Label */ ; #line 572 if (InterfaceType >= MaximumInterfaceType) { goto while_1_break; } { #line 578 fdcInfo__BusType = InterfaceType; #line 579 ntStatus = IoQueryDeviceDescription(fdcInfo__BusType, fdcInfo__BusNumber, Dc, fdcInfo__ControllerNumber, Fp, fdcInfo__PeripheralNumber, FlConfigCallBack, disketteExtension); } #line 583 if (ntStatus >= 0) { goto while_1_break; } #line 588 InterfaceType ++; } while_0_break: /* CIL Label */ ; } while_1_break: ; } #line 593 if (ntStatus >= 0) { #line 594 if (KUSER_SHARED_DATA__AlternativeArchitecture_NEC98x86 != 0) { #line 595 disketteExtension__DeviceUnit = fdcInfo__UnitNumber; #line 596 //disketteExtension__DriveOnValue = fdcInfo__UnitNumber; } else { #line 598 disketteExtension__DeviceUnit = fdcInfo__PeripheralNumber; #line 599 //__cil_tmp49 = 16 << fdcInfo__PeripheralNumber; #line 599 //disketteExtension__DriveOnValue = fdcInfo__PeripheralNumber | __cil_tmp49; } { #line 602 pnpStatus = IoRegisterDeviceInterface(disketteExtension__UnderlyingPDO, MOUNTDEV_MOUNTED_DEVICE_GUID, 0, disketteExtension__InterfaceString); } #line 605 if (pnpStatus >= 0) { { #line 607 pnpStatus = IoSetDeviceInterfaceState(disketteExtension__InterfaceString, 1); } } #line 613 disketteExtension__IsStarted = 1; #line 614 disketteExtension__HoldNewRequests = 0; } } { #line 622 Irp__IoStatus__Status = ntStatus; #line 623 myStatus = ntStatus; #line 624 IofCompleteRequest(Irp, 0); } #line 626 return (ntStatus); } }