blob: ce06b077b1ea138fd5dd9f45b9d0263d9894df33 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
/*
$License:
Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
$
*/
#ifndef _MLOS_H
#define _MLOS_H
#ifndef __KERNEL__
#include <stdio.h>
#endif
#include "mltypes.h"
#ifdef __cplusplus
extern "C" {
#endif
#if defined(LINUX) || defined(__KERNEL__)
typedef unsigned int HANDLE;
#endif
/* ------------ */
/* - Defines. - */
/* ------------ */
/* - MLOSCreateFile defines. - */
#define MLOS_GENERIC_READ ((unsigned int)0x80000000)
#define MLOS_GENERIC_WRITE ((unsigned int)0x40000000)
#define MLOS_FILE_SHARE_READ ((unsigned int)0x00000001)
#define MLOS_FILE_SHARE_WRITE ((unsigned int)0x00000002)
#define MLOS_OPEN_EXISTING ((unsigned int)0x00000003)
/* ---------- */
/* - Enums. - */
/* ---------- */
/* --------------- */
/* - Structures. - */
/* --------------- */
/* --------------------- */
/* - Function p-types. - */
/* --------------------- */
#ifndef __KERNEL__
#include <string.h>
void *inv_malloc(unsigned int numBytes);
inv_error_t inv_free(void *ptr);
inv_error_t inv_create_mutex(HANDLE *mutex);
inv_error_t inv_lock_mutex(HANDLE mutex);
inv_error_t inv_unlock_mutex(HANDLE mutex);
FILE *inv_fopen(char *filename);
void inv_fclose(FILE *fp);
// Binary Semaphore
inv_error_t inv_create_binary_semaphore(HANDLE *semaphore);
inv_error_t inv_destroy_binary_semaphore(HANDLE handle);
inv_error_t inv_increment_binary_semaphore(HANDLE handle);
inv_error_t inv_decrement_binary_semaphore(HANDLE handle, long timeout_ms);
inv_error_t inv_destroy_mutex(HANDLE handle);
void inv_sleep(int mSecs);
inv_time_t inv_get_tick_count(void);
/* Kernel implmentations */
#define GFP_KERNEL (0x70)
static inline void *kmalloc(size_t size,
unsigned int gfp_flags)
{
(void)gfp_flags;
return inv_malloc((unsigned int)size);
}
static inline void *kzalloc(size_t size, unsigned int gfp_flags)
{
void *tmp = inv_malloc((unsigned int)size);
(void)gfp_flags;
if (tmp)
memset(tmp, 0, size);
return tmp;
}
static inline void kfree(void *ptr)
{
inv_free(ptr);
}
static inline void msleep(long msecs)
{
inv_sleep(msecs);
}
static inline void udelay(unsigned long usecs)
{
inv_sleep((usecs + 999) / 1000);
}
#else
#include <linux/delay.h>
#endif
#ifdef __cplusplus
}
#endif
#endif /* _MLOS_H */
|