NeKernel dev
Loading...
Searching...
No Matches
ddk_kernel_call.c File Reference
#include <DriverKit/ddk.h>
#include <stdarg.h>

Functions

DDK_EXTERN ATTRIBUTE (naked)
 this is an internal call, do not use it.
DDK_EXTERN void * ke_call_dispatch (const char *name, int32_t cnt, void *data, size_t sz)
 Interrupt Kernel and call it's RPC.
DDK_EXTERN void ke_set_syscall (const int slot, void(*slotFn)(void *a0))
 Add system call.
DDK_EXTERN struct DDK_OBJECT_MANIFEST * ke_get_obj (const int slot, const char *name)
 Get a Kernel object.
DDK_EXTERN void * ke_set_obj (const int slot, const struct DDK_OBJECT_MANIFEST *ddk_pr)
 Set a Kernel object.

Function Documentation

◆ ATTRIBUTE()

DDK_EXTERN ATTRIBUTE ( naked )

this is an internal call, do not use it.

This function hashes the path into a FNV symbol.

Parameters
paththe path to hash.
Return values
0symbol wasn't hashed.
>0 hashed symbol.

◆ ke_call_dispatch()

DDK_EXTERN void * ke_call_dispatch ( const char * name,
int32_t cnt,
void * data,
size_t sz )

Interrupt Kernel and call it's RPC.

Call Kernel procedure.

Parameters
nameRPC name
cntnumber of elements in data pointer.
datadata pointer.
szThe size of the whole data pointer.
Return values
void*Kernel call was successful.
nilKernel call failed, call KernelLastError(void)

◆ ke_get_obj()

DDK_EXTERN struct DDK_OBJECT_MANIFEST * ke_get_obj ( const int slot,
const char * name )

Get a Kernel object.

Gets a Kernel object.

Parameters
slotproperty id (always 0)
namethe object's name.
Returns
Object manifest.

◆ ke_set_obj()

DDK_EXTERN void * ke_set_obj ( const int slot,
const struct DDK_OBJECT_MANIFEST * ddk_pr )

Set a Kernel object.

Parameters
slotproperty id (always 0)
namethe object's name.
ddk_prpointer to a object's DDK_OBJECT_MANIFEST.
Returns
property's object.

◆ ke_set_syscall()

DDK_EXTERN void ke_set_syscall ( const int slot,
void(* slotFn )(void *a0) )

Add system call.

Parameters
slotsystem call slot
slotFn,syscallslot.