1 /* $NetBSD: compat_linux.h,v 1.1.20.1 2007/10/03 19:26:22 garbled Exp $ */
2 /* $OpenBSD: compat_linux.h,v 1.5 2006/01/15 17:58:27 deraadt Exp $ */
5 * Copyright (c) 2005 Uwe Stuehler <uwe@bsdx.de>
7 * Permission to use, copy, modify, and distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 * Declare the things that we need from the Linux headers.
24 #define IS_ERR(ptr) ((unsigned long)(ptr) > (unsigned long)-1000L)
26 #define MKDEV(ma,mi) ((ma)<<8 | (mi))
28 #define S_IFBLK 0060000
29 #define S_IFCHR 0020000
35 #include <sys/exec_elf.h>
36 #include <sys/types.h>
37 #include <sys/errno.h>
41 struct file_operations
{
43 void (*llseek
) (void);
44 ssize_t (*read
) (struct file
*, char *, size_t, loff_t
*);
45 ssize_t (*write
) (struct file
*, const char *, size_t, loff_t
*);
46 void (*readdir
) (void);
50 int (*open
) (struct inode
*, struct file
*);
52 int (*release
) (struct inode
*, struct file
*);
54 void (*fasync
) (void);
57 void (*writev
) (void);
58 void (*sendpage
) (void);
59 void (*get_unmapped_area
)(void);
61 void (*romptr
) (void);
62 #endif /* MAGIC_ROM_PTR */
65 extern struct file
*open_exec(const char *);
66 extern int kernel_read(struct file
*, unsigned long, char *, unsigned long);
67 extern int memcmp(const void *, const void *, size_t);
68 extern int register_chrdev(unsigned int, const char *, struct file_operations
*);
69 extern int unregister_chrdev(unsigned int, const char *);
70 extern void printk(const char *, ...);
71 extern void *memcpy(void *, const void *, size_t);
73 /* Linux LKM support */
74 static const char __module_kernel_version
[] __attribute__((section(".modinfo"))) =
75 "kernel_version=" UTS_RELEASE
;
76 static const char __module_using_checksums
[] __attribute__((section(".modinfo"))) =
80 struct proc_dir_entry
{
81 unsigned short low_ino
;
82 unsigned short namelen
;
89 void *proc_iops
; /* inode operations */
90 struct file_operations
* proc_fops
;
93 struct proc_dir_entry
*next
, *parent
, *subdir
;
101 extern struct proc_dir_entry proc_root
;
102 extern struct proc_dir_entry
*proc_mknod(const char*, unsigned short,
103 struct proc_dir_entry
*, unsigned short);
104 extern void remove_proc_entry(const char *, struct proc_dir_entry
*);