Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
halo
external_libhevc
Commits
d609f81b
Commit
d609f81b
authored
9 years ago
by
Marco Nelissen
Committed by
Android Git Automerger
9 years ago
Browse files
Options
Download
Plain Diff
am
a4d27e07
: Merge "Removed unused thread abstractions"
* commit '
a4d27e07
': Removed unused thread abstractions
parents
9636d76f
a4d27e07
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
268 deletions
+0
-268
common/ithread.c
common/ithread.c
+0
-268
No files found.
common/ithread.c
View file @
d609f81b
...
...
@@ -38,7 +38,6 @@
#include "ithread.h"
#include <sys/types.h>
#ifndef X86_MSVC
//#define PTHREAD_AFFINITY
//#define SYSCALL_AFFINITY
...
...
@@ -52,266 +51,6 @@
#include <semaphore.h>
#include <unistd.h>
#endif
#ifdef X86_MSVC
#include <windows.h>
#define SEM_MAX_COUNT 100
#define SEM_INCREMENT_COUNT 1
UWORD32
ithread_get_handle_size
(
void
)
{
return
(
sizeof
(
HANDLE
));
}
UWORD32
ithread_get_mutex_lock_size
(
void
)
{
return
(
sizeof
(
HANDLE
));
}
WORD32
ithread_create
(
void
*
thread_handle
,
void
*
attribute
,
void
*
strt
,
void
*
argument
)
{
HANDLE
*
ppv_thread_handle
;
HANDLE
thread_handle_value
;
if
(
0
==
thread_handle
)
return
-
1
;
ppv_thread_handle
=
(
HANDLE
*
)
thread_handle
;
thread_handle_value
=
(
void
*
)
CreateThread
(
NULL
,
/* Attributes */
1024
*
128
,
/* Stack size */
(
LPTHREAD_START_ROUTINE
)
strt
,
/* Thread function */
argument
,
/* Parameters */
0
,
/* Creation flags */
NULL
);
/* Thread ID */
*
ppv_thread_handle
=
(
HANDLE
)
thread_handle_value
;
return
0
;
}
WORD32
ithread_join
(
void
*
thread_handle
,
void
**
val_ptr
)
{
HANDLE
*
ppv_thread_handle
;
HANDLE
thread_handle_value
;
if
(
0
==
thread_handle
)
return
-
1
;
ppv_thread_handle
=
(
HANDLE
*
)
thread_handle
;
thread_handle_value
=
*
ppv_thread_handle
;
if
(
WAIT_OBJECT_0
==
WaitForSingleObject
(
thread_handle_value
,
INFINITE
))
{
CloseHandle
(
thread_handle_value
);
}
return
0
;
}
void
ithread_exit
(
void
*
thread_handle
)
{
HANDLE
*
ppv_thread_handle
;
HANDLE
thread_handle_value
;
DWORD
thread_exit_code
;
if
(
0
==
thread_handle
)
return
;
ppv_thread_handle
=
(
HANDLE
*
)
thread_handle
;
thread_handle_value
=
*
ppv_thread_handle
;
/* Get exit code for thread. If the return value is 0, means thread is busy */
if
(
0
!=
GetExitCodeThread
(
thread_handle_value
,
&
thread_exit_code
))
{
TerminateThread
(
thread_handle_value
,
thread_exit_code
);
}
return
;
}
WORD32
ithread_get_mutex_struct_size
(
void
)
{
return
(
sizeof
(
HANDLE
));
}
WORD32
ithread_mutex_init
(
void
*
mutex
)
{
HANDLE
*
ppv_mutex_handle
;
HANDLE
mutex_handle_value
;
if
(
0
==
mutex
)
return
-
1
;
ppv_mutex_handle
=
(
HANDLE
*
)
mutex
;
mutex_handle_value
=
CreateSemaphore
(
NULL
,
1
,
1
,
NULL
);
*
ppv_mutex_handle
=
mutex_handle_value
;
return
0
;
}
WORD32
ithread_mutex_destroy
(
void
*
mutex
)
{
HANDLE
*
ppv_mutex_handle
;
HANDLE
mutex_handle_value
;
if
(
0
==
mutex
)
return
-
1
;
ppv_mutex_handle
=
(
HANDLE
*
)
mutex
;
mutex_handle_value
=
*
ppv_mutex_handle
;
CloseHandle
(
mutex_handle_value
);
return
0
;
}
WORD32
ithread_mutex_lock
(
void
*
mutex
)
{
HANDLE
*
ppv_mutex_handle
;
HANDLE
mutex_handle_value
;
DWORD
result
=
0
;
if
(
0
==
mutex
)
return
-
1
;
ppv_mutex_handle
=
(
HANDLE
*
)
mutex
;
mutex_handle_value
=
*
ppv_mutex_handle
;
result
=
WaitForSingleObject
(
mutex_handle_value
,
INFINITE
);
if
(
WAIT_OBJECT_0
==
result
)
return
0
;
return
1
;
}
WORD32
ithread_mutex_unlock
(
void
*
mutex
)
{
HANDLE
*
ppv_mutex_handle
;
HANDLE
mutex_handle_value
;
DWORD
result
=
0
;
if
(
0
==
mutex
)
return
-
1
;
ppv_mutex_handle
=
(
HANDLE
*
)
mutex
;
mutex_handle_value
=
*
ppv_mutex_handle
;
result
=
ReleaseSemaphore
(
mutex_handle_value
,
1
,
NULL
);
if
(
0
==
result
)
return
-
1
;
return
0
;
}
void
ithread_yield
(
void
)
{
}
void
ithread_usleep
(
UWORD32
u4_time_us
)
{
UWORD32
u4_time_ms
=
u4_time_us
/
1000
;
Sleep
(
u4_time_ms
);
}
void
ithread_msleep
(
UWORD32
u4_time_ms
)
{
Sleep
(
u4_time_ms
);
}
void
ithread_sleep
(
UWORD32
u4_time
)
{
UWORD32
u4_time_ms
=
u4_time
*
1000
;
Sleep
(
u4_time_ms
);
}
UWORD32
ithread_get_sem_struct_size
(
void
)
{
return
(
sizeof
(
HANDLE
));
}
WORD32
ithread_sem_init
(
void
*
sem
,
WORD32
pshared
,
UWORD32
value
)
{
HANDLE
*
sem_handle
=
(
HANDLE
*
)
sem
;
HANDLE
sem_handle_value
;
if
(
0
==
sem
)
return
-
1
;
sem_handle_value
=
CreateSemaphore
(
NULL
,
/* Security Attribute*/
value
,
/* Initial count */
SEM_MAX_COUNT
,
/* Max value */
NULL
);
/* Name, not used */
*
sem_handle
=
sem_handle_value
;
return
0
;
}
WORD32
ithread_sem_post
(
void
*
sem
)
{
HANDLE
*
sem_handle
=
(
HANDLE
*
)
sem
;
HANDLE
sem_handle_value
;
if
(
0
==
sem
)
return
-
1
;
sem_handle_value
=
*
sem_handle
;
/* Post on Semaphore by releasing the lock on mutex */
if
(
ReleaseSemaphore
(
sem_handle_value
,
SEM_INCREMENT_COUNT
,
NULL
))
return
0
;
return
-
1
;
}
WORD32
ithread_sem_wait
(
void
*
sem
)
{
DWORD
result
=
0
;
HANDLE
*
sem_handle
=
(
HANDLE
*
)
sem
;
HANDLE
sem_handle_value
;
if
(
0
==
sem
)
return
-
1
;
sem_handle_value
=
*
sem_handle
;
/* Wait on Semaphore object infinitly */
result
=
WaitForSingleObject
(
sem_handle_value
,
INFINITE
);
/* If lock on semaphore is acquired, return SUCCESS */
if
(
WAIT_OBJECT_0
==
result
)
return
0
;
/* If call timeouts, return FAILURE */
if
(
WAIT_TIMEOUT
==
result
)
return
-
1
;
return
0
;
}
WORD32
ithread_sem_destroy
(
void
*
sem
)
{
HANDLE
*
sem_handle
=
(
HANDLE
*
)
sem
;
HANDLE
sem_handle_value
;
if
(
0
==
sem
)
return
-
1
;
sem_handle_value
=
*
sem_handle
;
if
(
FALSE
==
CloseHandle
(
sem_handle_value
))
{
return
-
1
;
}
return
0
;
}
WORD32
ithread_set_affinity
(
WORD32
core_id
)
{
return
1
;
}
#else
UWORD32
ithread_get_handle_size
(
void
)
{
return
sizeof
(
pthread_t
);
...
...
@@ -322,7 +61,6 @@ UWORD32 ithread_get_mutex_lock_size(void)
return
sizeof
(
pthread_mutex_t
);
}
WORD32
ithread_create
(
void
*
thread_handle
,
void
*
attribute
,
void
*
strt
,
void
*
argument
)
{
return
pthread_create
((
pthread_t
*
)
thread_handle
,
attribute
,
(
void
*
(
*
)(
void
*
))
strt
,
argument
);
...
...
@@ -388,7 +126,6 @@ UWORD32 ithread_get_sem_struct_size(void)
return
(
sizeof
(
sem_t
));
}
WORD32
ithread_sem_init
(
void
*
sem
,
WORD32
pshared
,
UWORD32
value
)
{
return
sem_init
((
sem_t
*
)
sem
,
pshared
,
value
);
...
...
@@ -399,19 +136,16 @@ WORD32 ithread_sem_post(void *sem)
return
sem_post
((
sem_t
*
)
sem
);
}
WORD32
ithread_sem_wait
(
void
*
sem
)
{
return
sem_wait
((
sem_t
*
)
sem
);
}
WORD32
ithread_sem_destroy
(
void
*
sem
)
{
return
sem_destroy
((
sem_t
*
)
sem
);
}
WORD32
ithread_set_affinity
(
WORD32
core_id
)
{
...
...
@@ -446,6 +180,4 @@ WORD32 ithread_set_affinity(WORD32 core_id)
#endif
return
core_id
;
}
#endif
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment