⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rdoshelp.c

📁 Newlib 嵌入式 C库 标准实现代码
💻 C
字号:
/*######################################################################## RDOS operating system# Copyright (C) 1988-2006, Leif Ekblad## This library is free software; you can redistribute it and/or modify# it under the terms of the GNU Lesser General Public License as published# by the Free Software Foundation; either version 2.1 of the License, or# (at your option) any later version.## This library is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU Lesser General Public License for more details.## You should have received a copy of the GNU Lesser General Public# License along with this library; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## The author of this program may be contacted at leif@rdos.net## rdoshelp.c                                                                # implementation of various structures and helpers###########################################################################*/#include <reent.h>#include <rdos.h>#include <stdio.h>char *__env[1] = { 0 }; char **environ = __env; static int once_section;static int key_section;/*############################################################################   Name       : _get_impure_data_size##   Purpose....: Get size of _reent structure##   In params..: *#   Out params.: *#   Returns....: size###########################################################################*/int get_impure_data_size(){	return sizeof(struct _reent);}/*############################################################################   Name       : __rdos_thread_once##   Purpose....: Emulate GCC pthread_once##   In params..: Handle initially 0#              : function to initially call#   Out params.: *#   Returns....: result###########################################################################*/int __rdos_thread_once (int *handle, void (*func) (void)){    if (handle == 0 || func == 0)        return 0;             RdosEnterSection(once_section);    if (*handle == 0)        (*func)();    else        *handle = 1;    RdosLeaveSection(once_section);    return 0;}/*############################################################################   Name       : __rdos_thread_mutex_init##   Purpose....: Emulate GCC pthread_thread_mutex_init##   In params..: *#   Out params.: *#   Returns....: handle###########################################################################*/int __rdos_thread_mutex_init (void){    return RdosCreateSection();}/*############################################################################   Name       : __rdos_thread_mutex_lock##   Purpose....: Emulate GCC pthread_thread_mutex_lock##   In params..: handle#   Out params.: *#   Returns....: *###########################################################################*/int __rdos_thread_mutex_lock (int handle){    RdosEnterSection(handle);    return 0;}/*############################################################################   Name       : __rdos_thread_mutex_trylock##   Purpose....: Emulate GCC pthread_thread_mutex_trylock#                Try is not yet implemented, and lock is used.##   In params..: handle#   Out params.: *#   Returns....: *###########################################################################*/int __rdos_thread_mutex_trylock (int handle){    RdosEnterSection(handle);    return 0;}/*############################################################################   Name       : __rdos_thread_mutex_unlock##   Purpose....: Emulate GCC pthread_thread_mutex_unlock##   In params..: handle#   Out params.: *#   Returns....: *###########################################################################*/int __rdos_thread_mutex_unlock (int handle){    RdosLeaveSection(handle);    return 0;}/*############################################################################   Name       : __init_rdos##   Purpose....: Init RDOS specific data##   In params..: reent structure#   Out params.: *#   Returns....: *###########################################################################*/void __init_rdos(struct _reent *reent){	once_section = RdosCreateSection();	_REENT_INIT_PTR(reent);	__sinit(reent);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -