mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-11-28 19:53:12 +03:00
f3db1a486f
git-svn-id: svn://kolibrios.org@4559 a494cfbc-eb01-0410-851d-a64ba20cac60
81 lines
1.5 KiB
C
81 lines
1.5 KiB
C
|
|
|
|
#ifndef __DDK_H__
|
|
#define __DDK_H__
|
|
|
|
#include <kernel.h>
|
|
#include <linux/errno.h>
|
|
#include <linux/spinlock.h>
|
|
#include <mutex.h>
|
|
#include <linux/pci.h>
|
|
|
|
|
|
#define OS_BASE 0x80000000
|
|
|
|
#define PG_SW 0x003
|
|
#define PG_UW 0x007
|
|
#define PG_NOCACHE 0x018
|
|
#define PG_SHARED 0x200
|
|
|
|
#define _PAGE_PRESENT (1<<0)
|
|
#define _PAGE_RW (1<<1)
|
|
#define _PAGE_PWT (1<<3)
|
|
#define _PAGE_PCD (1<<4)
|
|
#define _PAGE_PAT (1<<7)
|
|
|
|
#define MANUAL_DESTROY 0x80000000
|
|
|
|
#define ENTER() dbgprintf("enter %s\n",__FUNCTION__)
|
|
#define LEAVE() dbgprintf("leave %s\n",__FUNCTION__)
|
|
#define FAIL() dbgprintf("fail %s\n",__FUNCTION__)
|
|
|
|
typedef struct
|
|
{
|
|
u32_t code;
|
|
u32_t data[5];
|
|
}kevent_t;
|
|
|
|
typedef union
|
|
{
|
|
struct
|
|
{
|
|
u32_t handle;
|
|
u32_t euid;
|
|
};
|
|
u64_t raw;
|
|
}evhandle_t;
|
|
|
|
typedef struct
|
|
{
|
|
u32_t handle;
|
|
u32_t io_code;
|
|
void *input;
|
|
int inp_size;
|
|
void *output;
|
|
int out_size;
|
|
}ioctl_t;
|
|
|
|
typedef int ( __stdcall *srv_proc_t)(ioctl_t *);
|
|
|
|
#define ERR_OK 0
|
|
#define ERR_PARAM -1
|
|
|
|
|
|
struct ddk_params;
|
|
|
|
int ddk_init(struct ddk_params *params);
|
|
|
|
u32_t drvEntry(int, char *)__asm__("_drvEntry");
|
|
|
|
|
|
|
|
static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
|
|
{
|
|
// if (size != 0 && n > SIZE_MAX / size)
|
|
// return NULL;
|
|
return kmalloc(n * size, flags);
|
|
}
|
|
|
|
|
|
#endif /* DDK_H */
|