📄 winbase.h
字号:
#include_next "winbase.h"#ifdef EXPCGF#define DECLARE_TLS_STORAGE char **tls[4096] __attribute__ ((unused))#else#define DECLARE_TLS_STORAGE do {} while (0)#define _WINBASE2_H#endif#ifndef _WINBASE2_H#define _WINBASE2_Hextern __inline__ long ilockincr (long *m){ register int __res; __asm__ __volatile__ ("\n\ movl $1,%0\n\ lock xadd %0,(%1)\n\ inc %0\n\ ": "=a" (__res), "=r" (m): "1" (m)); return __res;}extern __inline__ long ilockdecr (long *m){ register int __res; __asm__ __volatile__ ("\n\ movl $0xffffffff,%0\n\ lock xadd %0,(%1)\n\ dec %0\n\ ": "=a" (__res), "=r" (m): "1" (m)); return __res;}extern __inline__ long ilockexch (long *t, long v){ register int __res; __asm__ __volatile__ ("\n\ movl (%2),%0\n\1: lock cmpxchgl %3,(%1)\n\ jne 1b\n\ ": "=a" (__res), "=c" (t): "1" (t), "d" (v)); return __res;}#undef InterlockedIncrement#define InterlockedIncrement ilockincr#undef InterlockedDecrement#define InterlockedDecrement ilockdecr#undef InterlockedExchange#define InterlockedExchange ilockexchextern long tls_ix;extern char * volatile *__stackbase __asm__ ("%fs:4");extern __inline__ DWORDmy_tlsalloc (){ DWORD n = ilockdecr (&tls_ix); __stackbase[tls_ix] = NULL; return n;}extern __inline__ BOOLmy_tlssetvalue (DWORD ix, void *val){ __stackbase[ix] = (char *) val; return 1;}extern __inline__ void *my_tlsgetvalue (DWORD ix){ return __stackbase[ix];}extern __inline__ BOOLmy_tlsfree (DWORD ix){ /* nothing for now */ return 1;}#undef TlsAlloc#define TlsAlloc my_tlsalloc#undef TlsGetValue#define TlsGetValue my_tlsgetvalue#undef TlsSetValue#define TlsSetValue my_tlssetvalue#undef TlsFree#define TlsFree my_tlsfree#endif /*_WINBASE2_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -