![Jeff Dike](/assets/img/avatar_default.png)
UML had two wrapper procedures for kmalloc, um_kmalloc and um_kmalloc_atomic because the flag constants weren't available in userspace code. kern_constants.h had made kernel constants available for a long time, so there is no need for these wrappers any more. Rather, userspace code calls kmalloc directly with the userspace versions of the gfp flags. kmalloc isn't a real procedure, so I had to essentially copy the inline wrapper around __kmalloc. vmalloc also had its own wrapper for no good reason. This is now gone. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
42 lines
688 B
C
42 lines
688 B
C
#ifndef __COW_SYS_H__
|
|
#define __COW_SYS_H__
|
|
|
|
#include "kern_util.h"
|
|
#include "os.h"
|
|
#include "user.h"
|
|
#include "um_malloc.h"
|
|
|
|
static inline void *cow_malloc(int size)
|
|
{
|
|
return kmalloc(size, UM_GFP_KERNEL);
|
|
}
|
|
|
|
static inline void cow_free(void *ptr)
|
|
{
|
|
kfree(ptr);
|
|
}
|
|
|
|
#define cow_printf printk
|
|
|
|
static inline char *cow_strdup(char *str)
|
|
{
|
|
return uml_strdup(str);
|
|
}
|
|
|
|
static inline int cow_seek_file(int fd, __u64 offset)
|
|
{
|
|
return os_seek_file(fd, offset);
|
|
}
|
|
|
|
static inline int cow_file_size(char *file, unsigned long long *size_out)
|
|
{
|
|
return os_file_size(file, size_out);
|
|
}
|
|
|
|
static inline int cow_write_file(int fd, void *buf, int size)
|
|
{
|
|
return os_write_file(fd, buf, size);
|
|
}
|
|
|
|
#endif
|