test: largeic.c File Reference

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# largeic.c File Reference

`#include "ntrtlp.h"`

Go to the source code of this file.

## Functions

LARGE_INTEGER | RtlExtendedLargeIntegerDivide (IN LARGE_INTEGER Dividend, IN ULONG Divisor, IN OUT PULONG Remainder OPTIONAL)
LARGE_INTEGER | RtlLargeIntegerDivide (IN LARGE_INTEGER Dividend, IN LARGE_INTEGER Divisor, IN PLARGE_INTEGER Remainder OPTIONAL)
LARGE_INTEGER | RtlExtendedIntegerMultiply (IN LARGE_INTEGER Multiplicand, IN LONG Multiplier)

## Function Documentation

LARGE_INTEGER RtlExtendedIntegerMultiply | ( | IN LARGE_INTEGER | Multiplicand,
|  | IN LONG | Multiplier
| ) |

Definition at line 117 of file largeic.c.

References Multiplier.

Referenced by MiAttemptPageFileExtension().

    00124                    :
    00125
    00126     This function multiplies a signed large integer by a signed integer and
    00127     returns the signed large integer result.
    00128
    00129     N.B. An overflow is possible, but no exception is generated.
    00130
    00131 Arguments:
    00132
    00133     Multiplicand - Supplies the multiplicand value.
    00134
    00135     Multiplier - Supplies the multiplier value.
    00136
    00137 Return Value:
    00138
    00139     The large integer result is returned
    00140
    00141 --*/
    00142 {
    00143     LARGE_INTEGER Result;
    00144
    00145     Result.QuadPart = Multiplicand.QuadPart * (LONGLONG)Multiplier;
    00146     return (Result);
    00147 }
    }

LARGE_INTEGER RtlExtendedLargeIntegerDivide | ( | IN LARGE_INTEGER | Dividend,
|  | IN ULONG | Divisor,
|  | IN OUT PULONG Remainder | OPTIONAL
| ) |

Copyright (C) 1996-97 Intel Corporation. All rights reserved.

The information and source code contained herein is the exclusive property of Intel Corporation and may not be disclosed, examined or reproduced in whole or in part without explicit written authorization from the company.

Definition at line 40 of file largeic.c.

Referenced by FsRecGetDeviceSectors(), KiCalibrateTimeAdjustment(), RtlLargeIntegerToChar(), and RtlLargeIntegerToUnicode().

    00048                    :
    00049
    00050     This function divides an unsigned large integer by an unsigned long
    00051     and returns the resultant quotient and optionally the remainder.
    00052
    00053 Arguments:
    00054
    00055     Dividend - Supplies the dividend value.
    00056
    00057     Divisor - Supplies the divisor value.
    00058
    00059     Remainder - Supplies an optional pointer to a variable
    00060         that receives the remainder.
    00061
    00062 Return Value:
    00063
    00064     The large integer result is stored at the address supplied by a0.
    00065
    00066 --*/
    00067
    00068 {
    00069     LARGE_INTEGER Quotient;
    00070
    00071     Quotient.QuadPart = Dividend.QuadPart / Divisor;
    00072     if (Remainder) {
    00073         *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
    00074     }
    00075     return Quotient;
    00076 }

LARGE_INTEGER RtlLargeIntegerDivide | ( | IN LARGE_INTEGER | Dividend,
|  | IN LARGE_INTEGER | Divisor,
|  | IN PLARGE_INTEGER Remainder | OPTIONAL
| ) |

Definition at line 79 of file largeic.c.

    00087                    :
    00088
    00089     This function divides an unsigned large integer by an unsigned
    00090     large and returns the resultant quotient and optionally the remainder.
    00091
    00092 Arguments:
    00093
    00094     Dividend - Supplies the dividend value.
    00095
    00096     Divisor - Supplies the divisor value.
    00097
    00098     Remainder - Supplies an optional pointer to a variable
    00099         that receives the remainder.
    00100
    00101 Return Value:
    00102
    00103     The large integer result is stored at the address supplied by a0.
    00104
    00105 --*/
    00106 {
    00107     LARGE_INTEGER Quotient;
    00108
    00109     Quotient.QuadPart = (ULONGLONG)Dividend.QuadPart / (ULONGLONG)Divisor.QuadPart;
    00110     if (Remainder) {
    00111         Remainder->QuadPart = ((ULONGLONG)Dividend.QuadPart % (ULONGLONG)Divisor.QuadPart);
    00112     }
    00113     return Quotient;
    00114 }