[NTOSKRNL] Move the ICIF related code and stuff into a separate header file

For easier accessibility for the APITESTs and whatnot.
This commit is contained in:
George Bișoc 2021-05-02 20:49:06 +02:00
parent ae8ebe45d2
commit 39b266b728
No known key found for this signature in database
GPG key ID: 688C4FBE25D7DEF6
2 changed files with 42 additions and 34 deletions

View file

@ -0,0 +1,41 @@
/*
* PROJECT: ReactOS Kernel
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: Internal header for information classes info interface
* COPYRIGHT: Copyright ???
* Copyright 2020 George Bișoc <george.bisoc@reactos.org>
*/
#pragma once
/*
* Implement generic information class probing code in a
* separate header within the NT kernel header internals.
* This makes it accessible to other sources by including
* the header.
*/
#define ICIF_NONE 0x0
#define ICIF_QUERY 0x1
#define ICIF_SET 0x2
#define ICIF_QUERY_SIZE_VARIABLE 0x4
#define ICIF_SET_SIZE_VARIABLE 0x8
#define ICIF_SIZE_VARIABLE (ICIF_QUERY_SIZE_VARIABLE | ICIF_SET_SIZE_VARIABLE)
typedef struct _INFORMATION_CLASS_INFO
{
USHORT RequiredSizeQUERY;
UCHAR AlignmentQUERY;
USHORT RequiredSizeSET;
UCHAR AlignmentSET;
USHORT Flags;
} INFORMATION_CLASS_INFO, *PINFORMATION_CLASS_INFO;
#define IQS_SAME(Type, Alignment, Flags) \
{ sizeof(Type), sizeof(Alignment), sizeof(Type), sizeof(Alignment), Flags }
#define IQS(TypeQuery, AlignmentQuery, TypeSet, AlignmentSet, Flags) \
{ sizeof(TypeQuery), sizeof(AlignmentQuery), sizeof(TypeSet), sizeof(AlignmentSet), Flags }
#define IQS_NONE \
{ 0, 0, 0, 0, ICIF_NONE }

View file

@ -78,43 +78,10 @@
#include "vdm.h"
#include "hal.h"
#include "hdl.h"
#include "icif.h"
#include "arch/intrin_i.h"
#include <arbiter.h>
/*
* generic information class probing code
*/
#define ICIF_QUERY 0x1
#define ICIF_SET 0x2
#define ICIF_QUERY_SIZE_VARIABLE 0x4
#define ICIF_SET_SIZE_VARIABLE 0x8
#define ICIF_SIZE_VARIABLE (ICIF_QUERY_SIZE_VARIABLE | ICIF_SET_SIZE_VARIABLE)
typedef struct _INFORMATION_CLASS_INFO
{
ULONG RequiredSizeQUERY;
ULONG RequiredSizeSET;
ULONG AlignmentSET;
ULONG AlignmentQUERY;
ULONG Flags;
} INFORMATION_CLASS_INFO, *PINFORMATION_CLASS_INFO;
#define ICI_SQ_SAME(Type, Alignment, Flags) \
{ Type, Type, Alignment, Alignment, Flags }
#define ICI_SQ(TypeQuery, TypeSet, AlignmentQuery, AlignmentSet, Flags) \
{ TypeQuery, TypeSet, AlignmentQuery, AlignmentSet, Flags }
//
// TEMPORARY
//
#define IQS_SAME(Type, Alignment, Flags) \
{ sizeof(Type), sizeof(Type), sizeof(Alignment), sizeof(Alignment), Flags }
#define IQS(TypeQuery, TypeSet, AlignmentQuery, AlignmentSet, Flags) \
{ sizeof(TypeQuery), sizeof(TypeSet), sizeof(AlignmentQuery), sizeof(AlignmentSet), Flags }
/*
* Use IsPointerOffset to test whether a pointer should be interpreted as an offset
* or as a pointer