Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2022-08-04 17:58:50 +0300
committerCorinna Vinschen <corinna@vinschen.de>2022-08-05 13:02:11 +0300
commit007e23d6390af11582e55453269b7a51c723d2dd (patch)
tree8e8cff3ca23f5e56d9766a5ee6c6abb366611b07 /winsup/cygwin/local_includes/tls_pbuf.h
parent1e428bee1c5ef7c76ba4e46e6693b913edc9bbf3 (diff)
Cygwin: Reorganize cygwin source dir
Create subdirs and move files accordingly: - DevDocs: doc files - fhandler: fhandler sources, split fhandler.cc into base.cc and null.cc - local_includes: local include files - scripts: scripts called during build - sec: security sources Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/local_includes/tls_pbuf.h')
-rw-r--r--winsup/cygwin/local_includes/tls_pbuf.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/winsup/cygwin/local_includes/tls_pbuf.h b/winsup/cygwin/local_includes/tls_pbuf.h
new file mode 100644
index 000000000..f2cc3001c
--- /dev/null
+++ b/winsup/cygwin/local_includes/tls_pbuf.h
@@ -0,0 +1,39 @@
+/* tls_pbuf.h
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#pragma once
+
+class tmp_pathbuf
+{
+ uint32_t c_buf_old;
+ uint32_t w_buf_old;
+public:
+ tmp_pathbuf () __attribute__ ((always_inline))
+ : c_buf_old (_my_tls.locals.pathbufs.c_cnt),
+ w_buf_old (_my_tls.locals.pathbufs.w_cnt)
+ {}
+ ~tmp_pathbuf () __attribute__ ((always_inline))
+ {
+ _my_tls.locals.pathbufs.c_cnt = c_buf_old;
+ _my_tls.locals.pathbufs.w_cnt = w_buf_old;
+ }
+
+ inline bool check_usage (uint32_t c_need, uint32_t w_need)
+ {
+ return c_need + c_buf_old < TP_NUM_C_BUFS
+ && w_need + w_buf_old < TP_NUM_W_BUFS;
+ }
+ char *c_get (); /* Create temporary TLS path buf of size NT_MAX_PATH. */
+ PWCHAR w_get (); /* Create temporary TLS path buf of size 2 * NT_MAX_PATH. */
+ inline char *t_get () { return (char *) w_get (); }
+ inline PUNICODE_STRING u_get (PUNICODE_STRING up)
+ {
+ up->Length = 0;
+ up->MaximumLength = (NT_MAX_PATH - 1) * sizeof (WCHAR);
+ up->Buffer = w_get ();
+ return up;
+ }
+};