NeKernel dev
Loading...
Searching...
No Matches
ddk.h
Go to the documentation of this file.
1/* -------------------------------------------
2
3 Copyright Amlal El Mahrouss.
4
5 FILE: ddk.h
6 PURPOSE: DDK Driver model base header.
7
8------------------------------------------- */
9
10#pragma once
11
12#include <DDKKit/macros.h>
13
14struct DDK_STATUS_STRUCT;
15struct DDK_OBJECT_MANIFEST;
16
18struct DDK_OBJECT_MANIFEST DDK_FINAL {
19 char* p_name;
20 int32_t p_kind;
21 void* p_object;
22};
23
25struct DDK_STATUS_STRUCT DDK_FINAL {
26 int32_t s_action_id;
27 int32_t s_issuer_id;
28 int32_t s_group_id;
29 struct DDK_OBJECT_MANIFEST* s_object;
30};
31
38DDK_EXTERN void* ke_call(const char* name, int32_t cnt, void* dat, size_t sz);
39
43DDK_EXTERN void ke_add_syscall(const int32_t slot, void (*slotFn)(void* a0));
44
48DDK_EXTERN void* kalloc(size_t sz);
49
52DDK_EXTERN void kfree(void* the_ptr);
53
58DDK_EXTERN struct DDK_OBJECT_MANIFEST* ke_get_obj(const int slot, const char* name);
59
65DDK_EXTERN void* ke_set_obj(const int32_t slot, const struct DDK_OBJECT_MANIFEST* ddk_pr);
66
69
72
#define DDK_EXTERN
Definition macros.h:28
#define DDK_FINAL
Definition macros.h:32
DDK_EXTERN int32_t kApiVersion
API version in BCD.
Definition ddk.h:74
DDK_EXTERN void ke_add_syscall(const int32_t slot, void(*slotFn)(void *a0))
add a system call.
DDK_EXTERN void kfree(void *the_ptr)
Frees an heap ptr.
Definition ddk_alloc.c:28
DDK_EXTERN void * kalloc(size_t sz)
Allocates an heap ptr.
Definition ddk_alloc.c:16
DDK_EXTERN void * ke_set_obj(const int32_t slot, const struct DDK_OBJECT_MANIFEST *ddk_pr)
Set a Kernel object.
DDK_EXTERN struct DDK_OBJECT_MANIFEST * ke_get_obj(const int slot, const char *name)
Gets a Kernel object.
Definition ddk_kernel_call.c:40
DDK_EXTERN int32_t kApiVersionHighest
The highest API version of the DDK.
Definition ddk.h:68
DDK_EXTERN void * ke_call(const char *name, int32_t cnt, void *dat, size_t sz)
Call Kernel procedure.
DDK_EXTERN int32_t kApiVersionLowest
The lowest API version of the DDK.
Definition ddk.h:71
Object handle manifest.
Definition ddk.h:18
int32_t s_group_id
Definition ddk.h:28
char * p_name
Definition ddk.h:19
int32_t s_action_id
Definition ddk.h:26
int32_t p_kind
Definition ddk.h:20
void * p_object
Definition ddk.h:21
struct DDK_OBJECT_MANIFEST * s_object
Definition ddk.h:29
int32_t s_issuer_id
Definition ddk.h:27