亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tls.h

?? glibc 庫, 不僅可以學習使用庫函數,還可以學習函數的具體實現,是提高功力的好資料
?? H
字號:
/* Definition for thread-local data handling.  NPTL/PowerPC version.   Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc.   This file is part of the GNU C Library.   The GNU C 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.   The GNU C 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 the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  */#ifndef _TLS_H#define _TLS_H	1# include <dl-sysdep.h>#ifndef __ASSEMBLER__# include <stdbool.h># include <stddef.h># include <stdint.h>/* Type for the dtv.  */typedef union dtv{  size_t counter;  struct  {    void *val;    bool is_static;  } pointer;} dtv_t;#else /* __ASSEMBLER__ */# include <tcb-offsets.h>#endif /* __ASSEMBLER__ *//* We require TLS support in the tools.  */#ifndef HAVE_TLS_SUPPORT# error "TLS support is required."#endif#ifndef __ASSEMBLER__/* Get system call information.  */# include <sysdep.h>/* The TP points to the start of the thread blocks.  */# define TLS_DTV_AT_TP	1/* We use the multiple_threads field in the pthread struct */#define TLS_MULTIPLE_THREADS_IN_TCB	1/* Get the thread descriptor definition.  */# include <nptl/descr.h>/* The stack_guard is accessed directly by GCC -fstack-protector code,   so it is a part of public ABI.  The dtv and pointer_guard fields   are private.  */typedef struct{  uintptr_t pointer_guard;  uintptr_t stack_guard;  dtv_t *dtv;} tcbhead_t;/* This is the size of the initial TCB.  */# define TLS_INIT_TCB_SIZE	0/* Alignment requirements for the initial TCB.  */# define TLS_INIT_TCB_ALIGN	__alignof__ (struct pthread)/* This is the size of the TCB.  */# define TLS_TCB_SIZE		0/* Alignment requirements for the TCB.  */# define TLS_TCB_ALIGN		__alignof__ (struct pthread)/* This is the size we need before TCB.  */# define TLS_PRE_TCB_SIZE \  (sizeof (struct pthread)						      \   + ((sizeof (tcbhead_t) + TLS_TCB_ALIGN - 1) & ~(TLS_TCB_ALIGN - 1)))# ifndef __powerpc64__/* Register r2 (tp) is reserved by the ABI as "thread pointer". */register void *__thread_register __asm__ ("r2");#  define PT_THREAD_POINTER PT_R2# else/* Register r13 (tp) is reserved by the ABI as "thread pointer". */register void *__thread_register __asm__ ("r13");#  define PT_THREAD_POINTER PT_R13# endif/* The following assumes that TP (R2 or R13) points to the end of the   TCB + 0x7000 (per the ABI).  This implies that TCB address is   TP - 0x7000.  As we define TLS_DTV_AT_TP we can   assume that the pthread struct is allocated immediately ahead of the   TCB.  This implies that the pthread_descr address is   TP - (TLS_PRE_TCB_SIZE + 0x7000).  */# define TLS_TCB_OFFSET	0x7000/* Install the dtv pointer.  The pointer passed is to the element with   index -1 which contain the length.  */# define INSTALL_DTV(tcbp, dtvp) \  ((tcbhead_t *) (tcbp))[-1].dtv = dtvp + 1/* Install new dtv for current thread.  */# define INSTALL_NEW_DTV(dtv) (THREAD_DTV() = (dtv))/* Return dtv of given thread descriptor.  */# define GET_DTV(tcbp)	(((tcbhead_t *) (tcbp))[-1].dtv)/* Code to initially initialize the thread pointer.  This might need   special attention since 'errno' is not yet available and if the   operation can cause a failure 'errno' must not be touched.  */# define TLS_INIT_TP(tcbp, secondcall) \    (__thread_register = (void *) (tcbp) + TLS_TCB_OFFSET, NULL)/* Return the address of the dtv for the current thread.  */# define THREAD_DTV() \    (((tcbhead_t *) (__thread_register - TLS_TCB_OFFSET))[-1].dtv)/* Return the thread descriptor for the current thread.  */# define THREAD_SELF \    ((struct pthread *) (__thread_register \			 - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE))/* Magic for libthread_db to know how to do THREAD_SELF.  */# define DB_THREAD_SELF							      \  REGISTER (32, 32, PT_THREAD_POINTER * 4,				      \	    - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)			      \  REGISTER (64, 64, PT_THREAD_POINTER * 8,				      \	    - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)/* Read member of the thread descriptor directly.  */# define THREAD_GETMEM(descr, member) ((void)(descr), (THREAD_SELF)->member)/* Same as THREAD_GETMEM, but the member offset can be non-constant.  */# define THREAD_GETMEM_NC(descr, member, idx) \    ((void)(descr), (THREAD_SELF)->member[idx])/* Set member of the thread descriptor directly.  */# define THREAD_SETMEM(descr, member, value) \    ((void)(descr), (THREAD_SELF)->member = (value))/* Same as THREAD_SETMEM, but the member offset can be non-constant.  */# define THREAD_SETMEM_NC(descr, member, idx, value) \    ((void)(descr), (THREAD_SELF)->member[idx] = (value))/* Set the stack guard field in TCB head.  */# define THREAD_SET_STACK_GUARD(value) \    (((tcbhead_t *) ((char *) __thread_register				      \		     - TLS_TCB_OFFSET))[-1].stack_guard = (value))# define THREAD_COPY_STACK_GUARD(descr) \    (((tcbhead_t *) ((char *) (descr)					      \		     + TLS_PRE_TCB_SIZE))[-1].stack_guard		      \     = ((tcbhead_t *) ((char *) __thread_register			      \		       - TLS_TCB_OFFSET))[-1].stack_guard)/* Set the stack guard field in TCB head.  */# define THREAD_GET_POINTER_GUARD() \    (((tcbhead_t *) ((char *) __thread_register				      \		     - TLS_TCB_OFFSET))[-1].pointer_guard)# define THREAD_SET_POINTER_GUARD(value) \    (THREAD_GET_POINTER_GUARD () = (value))# define THREAD_COPY_POINTER_GUARD(descr) \    (((tcbhead_t *) ((char *) (descr)					      \		     + TLS_PRE_TCB_SIZE))[-1].pointer_guard		      \     = THREAD_GET_POINTER_GUARD())/* l_tls_offset == 0 is perfectly valid on PPC, so we have to use some   different value to mean unset l_tls_offset.  */# define NO_TLS_OFFSET		-1#endif /* __ASSEMBLER__ */#endif	/* tls.h */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91高清视频免费看| 成人丝袜高跟foot| 欧美一区二区福利在线| 日本aⅴ精品一区二区三区| 日韩欧美成人午夜| 激情综合五月天| 中文字幕不卡三区| 99久久国产综合色|国产精品| 亚洲三级在线看| 欧美视频一区二| 青青国产91久久久久久| 久久香蕉国产线看观看99| 国产一区二区美女| 亚洲女厕所小便bbb| 欧美亚洲高清一区| 国内精品写真在线观看 | 欧美一级黄色录像| 国产美女在线精品| 亚洲免费视频中文字幕| 欧美一区中文字幕| 国产suv精品一区二区883| 亚洲免费观看高清完整版在线观看| 欧洲一区在线电影| 国产一区二区在线电影| 亚洲丝袜美腿综合| 日韩欧美三级在线| 一本大道久久精品懂色aⅴ| 日韩精品乱码免费| 国产日产欧美一区二区视频| 91成人在线观看喷潮| 韩国成人精品a∨在线观看| 亚洲免费毛片网站| 欧美v国产在线一区二区三区| av在线免费不卡| 麻豆精品视频在线| 亚洲精品日产精品乱码不卡| 精品国产区一区| 色av成人天堂桃色av| 国产在线一区二区| 丝袜国产日韩另类美女| 中文字幕综合网| 久久综合中文字幕| 欧美日本在线看| 99国产精品久久久久| 九九视频精品免费| 婷婷丁香久久五月婷婷| 亚洲天堂免费看| 国产色一区二区| 日韩欧美一二三四区| 欧美性大战xxxxx久久久| 成人性生交大片免费看视频在线 | 亚洲国产高清在线| 日韩美女在线视频| 91精彩视频在线| a级精品国产片在线观看| 精品亚洲免费视频| 日本欧美大码aⅴ在线播放| 亚洲激情自拍视频| 日韩一区欧美一区| 亚洲国产精品av| 国产亚洲精品超碰| 精品国精品国产尤物美女| 欧美日韩精品一区二区| 26uuuu精品一区二区| 欧美高清精品3d| 欧美天堂亚洲电影院在线播放| 9i看片成人免费高清| 国产+成+人+亚洲欧洲自线| 国产一区不卡视频| 国产一区二区三区日韩| 国产综合成人久久大片91| 久久成人综合网| 久久99九九99精品| 久久国产精品99久久人人澡| 麻豆免费精品视频| 久久国产精品99久久久久久老狼| 免费久久99精品国产| 日韩av电影一区| 奇米亚洲午夜久久精品| 青青草91视频| 国产自产高清不卡| 国产一区高清在线| 成人性生交大片免费看中文| av在线综合网| 欧美系列一区二区| 日韩免费在线观看| 久久精品一区二区三区四区| 久久午夜羞羞影院免费观看| 久久久久久影视| 中文字幕一区二区三区不卡| 亚洲免费在线观看| a亚洲天堂av| 欧美日韩综合在线| 欧美mv和日韩mv的网站| 久久久久久亚洲综合| 国产精品免费丝袜| 伊人婷婷欧美激情| 免费人成在线不卡| 成人v精品蜜桃久久一区| 91影院在线观看| 欧美精品少妇一区二区三区| 精品国产制服丝袜高跟| 中文字幕免费不卡在线| 亚洲激情成人在线| 美女www一区二区| 成人黄色av电影| 欧美日韩三级在线| 久久精品亚洲乱码伦伦中文 | 精品99一区二区三区| 欧美激情一区二区三区不卡| 一区二区在线观看视频在线观看| 香蕉成人啪国产精品视频综合网| 另类人妖一区二区av| 丁香激情综合国产| 欧美日韩亚洲综合在线| 久久精品亚洲精品国产欧美kt∨ | 欧美人xxxx| 久久久九九九九| 亚洲综合视频网| 国产在线视频一区二区三区| 在线精品观看国产| 久久久精品免费免费| 午夜视频一区在线观看| 成人综合婷婷国产精品久久蜜臀| 欧美午夜理伦三级在线观看| 国产午夜精品一区二区三区嫩草| 亚洲一区二区美女| 国产91清纯白嫩初高中在线观看 | 日韩欧美一级在线播放| 亚洲欧美日韩精品久久久久| 精品亚洲国产成人av制服丝袜| 日本高清不卡一区| 国产三级三级三级精品8ⅰ区| 亚洲18女电影在线观看| 99久久精品国产导航| 久久久久99精品一区| 日本午夜一本久久久综合| 91免费精品国自产拍在线不卡 | 久久综合99re88久久爱| 亚洲福利视频一区| 91婷婷韩国欧美一区二区| 久久蜜桃香蕉精品一区二区三区| 婷婷六月综合网| 91成人在线精品| 国产精品久久久久久久久久免费看| 蜜臀va亚洲va欧美va天堂| 欧美性色欧美a在线播放| 国产精品理论片在线观看| 国内外成人在线视频| 91麻豆精品国产91久久久使用方法 | 成人中文字幕合集| 精品久久久久久久久久久久久久久| 亚洲一区在线观看免费观看电影高清| 99热99精品| 国产精品日产欧美久久久久| 国内精品国产成人国产三级粉色 | 26uuu久久综合| 蜜桃视频免费观看一区| 欧美人xxxx| 日韩av成人高清| 欧美久久免费观看| 五月激情六月综合| 欧美日韩国产欧美日美国产精品| 一区二区三区国产精华| 色狠狠一区二区三区香蕉| 中文字幕在线播放不卡一区| 久久九九99视频| 极品少妇xxxx精品少妇偷拍| 日韩亚洲欧美成人一区| 老司机免费视频一区二区三区| 欧美一个色资源| 久久国产尿小便嘘嘘尿| 日韩欧美精品在线视频| 久久精品免费观看| 欧美精品一区二区蜜臀亚洲| 国产精品一区二区三区四区| 久久久久国产成人精品亚洲午夜| 国产成人亚洲综合a∨猫咪| 欧美激情在线看| 91在线观看视频| 亚洲一二三四区| 欧美美女bb生活片| 久久国产精品无码网站| 久久先锋资源网| 一本色道**综合亚洲精品蜜桃冫| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品久久久久久久久久免费看 | 亚洲国产精品人人做人人爽| 欧美精品久久一区| 黄色日韩网站视频| 国产精品视频一二| 欧美色大人视频| 美美哒免费高清在线观看视频一区二区| 精品国产91乱码一区二区三区| 国产成a人无v码亚洲福利| 亚洲黄色在线视频| 欧美一区二区三区播放老司机| 国产精品77777竹菊影视小说| 亚洲精品你懂的| 日韩手机在线导航|