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

📄 sbrk.c

📁 cygwin, 著名的在win32下模拟unix操作系统的东东
💻 C
字号:
/* sbrk support *//* The current plan is to have one sbrk handler for all cpus.   Hence use `asm' for each global variable here to avoid the cpu prefix.   We can't intrude on the user's namespace (another reason to use asm).  */#include <sys/types.h>#include <sys/syscall.h>#include <errno.h>#include <stddef.h>/* These variables are publicly accessible for debugging purposes.   The user is also free to set sbrk_size to something different.   See mem-layout.c.  */extern int sbrk_size asm ("sbrk_size");caddr_t sbrk_start asm ("sbrk_start");caddr_t sbrk_loc asm ("sbrk_loc");/*caddr_t _sbrk_r (struct _reent *, size_t) asm ("__sbrk_r");*//* FIXME: We need a semaphore here.  */caddr_t_sbrk_r (struct _reent *r, size_t nbytes){  caddr_t result;  if (      /* Ensure we don't underflow.  */      sbrk_loc + nbytes < sbrk_start      /* Ensure we don't overflow.  */      || sbrk_loc + nbytes > sbrk_start + sbrk_size)    {      errno = ENOMEM;      return ((caddr_t) -1);    }  result = sbrk_loc;  sbrk_loc += nbytes;  return result;}

⌨️ 快捷键说明

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