summaryrefslogtreecommitdiffhomepage
path: root/dev/libDDK/DriverKit/dki/contract.h
blob: 99acbf8cc8cd5d9231827bc6d9181e169251d664 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* -------------------------------------------

   Copyright Amlal El Mahrouss 2025, licensed under the Apache 2.0 license.

   FILE: ddk.h
   PURPOSE: Driver Kernel Interface Model base header.

   ------------------------------------------- */

#pragma once

#include <CompilerKit/CompilerKit.h>
#include <libDDK/DriverKit/macros.h>

#define DKI_CONTRACT_IMPL : public ::Kernel::DKIContract

/// @author Amlal El Mahrouss

namespace Kernel::DKI {
class DKIContract {
 public:
  explicit DKIContract() = default;
  virtual ~DKIContract() = default;

  NE_COPY_DEFAULT(DKIContract);

  virtual BOOL    IsCastable() { return false; }
  virtual BOOL    IsActive() { return false; }
  virtual VoidPtr Leak() { return nullptr; }
  virtual Int32   Type() { return 0; }
};
}  // namespace Kernel::DKI