From 3d65afc7d5c0e606712ecf90abb08f2edc159dfa Mon Sep 17 00:00:00 2001 From: luo jiao Date: Fri, 22 Dec 2017 13:24:02 +0800 Subject: [PATCH] add some parameter check and function defintion etc. --- components/libc/pthreads/pthread.h | 13 ++++++++++++- components/libc/pthreads/pthread_cond.c | 5 +++++ components/libc/pthreads/sched.h | 5 ----- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/components/libc/pthreads/pthread.h b/components/libc/pthreads/pthread.h index dd1c5b5bd2..35fa817c0f 100644 --- a/components/libc/pthreads/pthread.h +++ b/components/libc/pthreads/pthread.h @@ -27,6 +27,7 @@ #include #include +#include #define PTHREAD_KEY_MAX 8 @@ -139,6 +140,11 @@ struct pthread_barrier }; typedef struct pthread_barrier pthread_barrier_t; +struct sched_param +{ + int sched_priority; +}; + /* pthread thread interface */ int pthread_attr_destroy(pthread_attr_t *attr); int pthread_attr_init(pthread_attr_t *attr); @@ -146,6 +152,8 @@ int pthread_attr_setdetachstate(pthread_attr_t *attr, int state); int pthread_attr_getdetachstate(pthread_attr_t const *attr, int *state); int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy); int pthread_attr_getschedpolicy(pthread_attr_t const *attr, int *policy); +int pthread_attr_setschedparam(pthread_attr_t *attr,struct sched_param const *param); +int pthread_attr_getschedparam(pthread_attr_t const *attr,struct sched_param *param); int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stack_size); int pthread_attr_getstacksize(pthread_attr_t const *attr, size_t *stack_size); int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stack_addr); @@ -156,7 +164,10 @@ int pthread_attr_setstack(pthread_attr_t *attr, int pthread_attr_getstack(pthread_attr_t const *attr, void **stack_base, size_t *stack_size); - +int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guard_size); +int pthread_attr_getguardsize(pthread_attr_t const *attr, size_t *guard_size); +int pthread_attr_setscope(pthread_attr_t *attr, int scope); +int pthread_attr_getscope(pthread_attr_t const *attr); int pthread_system_init(void); int pthread_create (pthread_t *tid, const pthread_attr_t *attr, void *(*start) (void *), void *arg); diff --git a/components/libc/pthreads/pthread_cond.c b/components/libc/pthreads/pthread_cond.c index 25628fc2b3..9349e84050 100644 --- a/components/libc/pthreads/pthread_cond.c +++ b/components/libc/pthreads/pthread_cond.c @@ -137,6 +137,9 @@ RTM_EXPORT(pthread_cond_destroy); int pthread_cond_broadcast(pthread_cond_t *cond) { rt_err_t result; + + if (cond == RT_NULL) + return EINVAL; if (cond->attr == -1) pthread_cond_init(cond, RT_NULL); @@ -173,6 +176,8 @@ int pthread_cond_signal(pthread_cond_t *cond) { rt_err_t result; + if (cond == RT_NULL) + return EINVAL; if (cond->attr == -1) pthread_cond_init(cond, RT_NULL); diff --git a/components/libc/pthreads/sched.h b/components/libc/pthreads/sched.h index 173f3eb2de..f0fa17bfa1 100644 --- a/components/libc/pthreads/sched.h +++ b/components/libc/pthreads/sched.h @@ -37,11 +37,6 @@ enum SCHED_MAX = SCHED_RR }; -struct sched_param -{ - int sched_priority; -}; - #ifdef __cplusplus extern "C" {