Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
131
sdk/lib/posix/pthread_attr.c
Normal file
131
sdk/lib/posix/pthread_attr.c
Normal file
@@ -0,0 +1,131 @@
|
||||
#include "sys_config.h"
|
||||
#include "typesdef.h"
|
||||
#include "errno.h"
|
||||
#include "osal/semaphore.h"
|
||||
#include "osal/task.h"
|
||||
#include "osal/string.h"
|
||||
#include "osal/timer.h"
|
||||
#include "osal/mutex.h"
|
||||
#include "lib/common/rbuffer.h"
|
||||
#include "lib/posix/pthread.h"
|
||||
|
||||
#ifdef TXWSDK_POSIX
|
||||
|
||||
int pthread_attr_init(pthread_attr_t *attr)
|
||||
{
|
||||
if (attr) {
|
||||
os_memset(attr, 0, sizeof(pthread_attr_t));
|
||||
attr->stacksize = 1024;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_destroy(pthread_attr_t *attr)
|
||||
{
|
||||
if (attr) {
|
||||
os_memset(attr, 0, sizeof(pthread_attr_t));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_setdetachstate(pthread_attr_t *attr, int state)
|
||||
{
|
||||
if (state != PTHREAD_CREATE_JOINABLE && state != PTHREAD_CREATE_DETACHED) {
|
||||
return -EINVAL;
|
||||
}
|
||||
attr->detachstate = state;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_getdetachstate(pthread_attr_t const *attr, int *state)
|
||||
{
|
||||
*state = (int)attr->detachstate;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
|
||||
{
|
||||
//attr->schedpolicy = policy;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_getschedpolicy(pthread_attr_t const *attr, int *policy)
|
||||
{
|
||||
//*policy = (int)attr->schedpolicy;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_setschedparam(pthread_attr_t *attr, struct sched_param const *param)
|
||||
{
|
||||
attr->schedparam.sched_priority = param->sched_priority;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_getschedparam(pthread_attr_t const *attr, struct sched_param *param)
|
||||
{
|
||||
param->sched_priority = attr->schedparam.sched_priority;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stack_size)
|
||||
{
|
||||
if (attr) {
|
||||
attr->stacksize = stack_size;
|
||||
if (stack_size >= 4096) {
|
||||
pthread_dbg("set stack size %d, maybe too large!\r\n");
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_getstacksize(pthread_attr_t const *attr, size_t *stack_size)
|
||||
{
|
||||
*stack_size = attr->stacksize;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stack_addr)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
int pthread_attr_getstackaddr(pthread_attr_t const *attr, void **stack_addr)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
int pthread_attr_setstack(pthread_attr_t *attr, void *stack_base, size_t stack_size)
|
||||
{
|
||||
//attr->stackaddr = stack_base;
|
||||
attr->stacksize = ALIGN(stack_size, 4);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_getstack(pthread_attr_t const *attr, void **stack_base, size_t *stack_size)
|
||||
{
|
||||
*stack_base = 0;//attr->stackaddr;
|
||||
*stack_size = attr->stacksize;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guard_size)
|
||||
{
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
int pthread_attr_getguardsize(pthread_attr_t const *attr, size_t *guard_size)
|
||||
{
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
int pthread_attr_setscope(pthread_attr_t *attr, int scope)
|
||||
{
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
int pthread_attr_getscope(pthread_attr_t const *attr, int *scope)
|
||||
{
|
||||
return EOPNOTSUPP;
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user