// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library sample.acpi.multiply;

using zx;

// Protocol for interacting with AcpiMultiply.
protocol Device {
    /// Given two numbers to multiply, returns
    /// the value and whether or not multiplication overflowed.
    Multiply(struct {
        a uint32;
        b uint32;
    }) -> (struct {
        result uint32;
        overflowed bool;
    }) error zx.status;
};
