@ -125,77 +125,65 @@ int k_obj_type_walk_unlocked(struct k_obj_type *type,
@@ -125,77 +125,65 @@ int k_obj_type_walk_unlocked(struct k_obj_type *type,
int k_obj_core_stats_register ( struct k_obj_core * obj_core , void * stats ,
size_t stats_len )
{
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
int rv ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
if ( obj_core - > type - > stats_desc = = NULL ) {
/* Object type not configured for statistics. */
k_spin_unlock ( & lock , key ) ;
return - ENOTSUP ;
}
if ( obj_core - > type - > stats_desc - > raw_size ! = stats_len ) {
rv = - ENOTSUP ;
} else if ( obj_core - > type - > stats_desc - > raw_size ! = stats_len ) {
/* Buffer size mismatch */
k_spin_unlock ( & lock , key ) ;
return - EINVAL ;
rv = - EINVAL ;
} else {
obj_core - > stats = stats ;
rv = 0 ;
}
obj_core - > stats = stats ;
k_spin_unlock ( & lock , key ) ;
return 0 ;
return rv ;
}
int k_obj_core_stats_deregister ( struct k_obj_core * obj_core )
{
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
int rv ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
if ( obj_core - > type - > stats_desc = = NULL ) {
/* Object type not configured for statistics. */
k_spin_unlock ( & lock , key ) ;
return - ENOTSUP ;
rv = - ENOTSUP ;
} else {
obj_core - > stats = NULL ;
rv = 0 ;
}
obj_core - > stats = NULL ;
k_spin_unlock ( & lock , key ) ;
return 0 ;
return rv ;
}
int k_obj_core_stats_raw ( struct k_obj_core * obj_core , void * stats ,
size_t stats_len )
{
int rv ;
int rv ;
struct k_obj_core_stats_desc * desc ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
desc = obj_core - > type - > stats_desc ;
if ( ( desc = = NULL ) | | ( desc - > raw = = NULL ) ) {
/* The object type is not configured for this operation */
k_spin_unlock ( & lock , key ) ;
return - ENOTSUP ;
}
if ( ( desc - > raw_size ! = stats_len ) | | ( obj_core - > stats = = NULL ) ) {
rv = - ENOTSUP ;
} else if ( ( desc - > raw_size ! = stats_len ) | | ( obj_core - > stats = = NULL ) ) {
/*
* Either the size of the stats buffer is wrong or
* the kernel object was not registered for statistics .
*/
k_spin_unlock ( & lock , key ) ;
return - EINVAL ;
rv = - EINVAL ;
} else {
rv = desc - > raw ( obj_core , stats ) ;
}
rv = desc - > raw ( obj_core , stats ) ;
k_spin_unlock ( & lock , key ) ;
return rv ;
@ -204,32 +192,25 @@ int k_obj_core_stats_raw(struct k_obj_core *obj_core, void *stats,
@@ -204,32 +192,25 @@ int k_obj_core_stats_raw(struct k_obj_core *obj_core, void *stats,
int k_obj_core_stats_query ( struct k_obj_core * obj_core , void * stats ,
size_t stats_len )
{
int rv ;
int rv ;
struct k_obj_core_stats_desc * desc ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
desc = obj_core - > type - > stats_desc ;
if ( ( desc = = NULL ) | | ( desc - > query = = NULL ) ) {
/* The object type is not configured for this operation */
k_spin_unlock ( & lock , key ) ;
return - ENOTSUP ;
}
if ( ( desc - > query_size ! = stats_len ) | | ( obj_core - > stats = = NULL ) ) {
rv = - ENOTSUP ;
} else if ( ( desc - > query_size ! = stats_len ) | | ( obj_core - > stats = = NULL ) ) {
/*
* Either the size of the stats buffer is wrong or
* the kernel object was not registered for statistics .
*/
k_spin_unlock ( & lock , key ) ;
return - EINVAL ;
rv = - EINVAL ;
} else {
rv = desc - > query ( obj_core , stats ) ;
}
rv = desc - > query ( obj_core , stats ) ;
k_spin_unlock ( & lock , key ) ;
return rv ;
@ -237,29 +218,22 @@ int k_obj_core_stats_query(struct k_obj_core *obj_core, void *stats,
@@ -237,29 +218,22 @@ int k_obj_core_stats_query(struct k_obj_core *obj_core, void *stats,
int k_obj_core_stats_reset ( struct k_obj_core * obj_core )
{
int rv ;
int rv ;
struct k_obj_core_stats_desc * desc ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
desc = obj_core - > type - > stats_desc ;
if ( ( desc = = NULL ) | | ( desc - > reset = = NULL ) ) {
/* The object type is not configured for this operation */
k_spin_unlock ( & lock , key ) ;
return - ENOTSUP ;
}
if ( obj_core - > stats = = NULL ) {
rv = - ENOTSUP ;
} else if ( obj_core - > stats = = NULL ) {
/* This kernel object is not configured for statistics */
k_spin_unlock ( & lock , key ) ;
return - EINVAL ;
rv = - EINVAL ;
} else {
rv = desc - > reset ( obj_core ) ;
}
rv = desc - > reset ( obj_core ) ;
k_spin_unlock ( & lock , key ) ;
return rv ;
@ -267,29 +241,22 @@ int k_obj_core_stats_reset(struct k_obj_core *obj_core)
@@ -267,29 +241,22 @@ int k_obj_core_stats_reset(struct k_obj_core *obj_core)
int k_obj_core_stats_disable ( struct k_obj_core * obj_core )
{
int rv ;
int rv ;
struct k_obj_core_stats_desc * desc ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
desc = obj_core - > type - > stats_desc ;
if ( ( desc = = NULL ) | | ( desc - > disable = = NULL ) ) {
/* The object type is not configured for this operation */
k_spin_unlock ( & lock , key ) ;
return - ENOTSUP ;
}
if ( obj_core - > stats = = NULL ) {
rv = - ENOTSUP ;
} else if ( obj_core - > stats = = NULL ) {
/* This kernel object is not configured for statistics */
k_spin_unlock ( & lock , key ) ;
return - EINVAL ;
rv = - EINVAL ;
} else {
rv = desc - > disable ( obj_core ) ;
}
rv = desc - > disable ( obj_core ) ;
k_spin_unlock ( & lock , key ) ;
return rv ;
@ -297,29 +264,22 @@ int k_obj_core_stats_disable(struct k_obj_core *obj_core)
@@ -297,29 +264,22 @@ int k_obj_core_stats_disable(struct k_obj_core *obj_core)
int k_obj_core_stats_enable ( struct k_obj_core * obj_core )
{
int rv ;
int rv ;
struct k_obj_core_stats_desc * desc ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
k_spinlock_key_t key = k_spin_lock ( & lock ) ;
desc = obj_core - > type - > stats_desc ;
if ( ( desc = = NULL ) | | ( desc - > enable = = NULL ) ) {
/* The object type is not configured for this operation */
k_spin_unlock ( & lock , key ) ;
return - ENOTSUP ;
}
if ( obj_core - > stats = = NULL ) {
rv = - ENOTSUP ;
} else if ( obj_core - > stats = = NULL ) {
/* This kernel object is not configured for statistics */
k_spin_unlock ( & lock , key ) ;
return - EINVAL ;
rv = - EINVAL ;
} else {
rv = desc - > enable ( obj_core ) ;
}
rv = desc - > enable ( obj_core ) ;
k_spin_unlock ( & lock , key ) ;
return rv ;