Lines Matching defs:buffer
33 * The `child_stdio_buffer` buffer has the following layout:
43 #define CHILD_STDIO_COUNT(buffer) \
44 *((unsigned int*) (buffer))
46 #define CHILD_STDIO_CRT_FLAGS(buffer, fd) \
47 *((unsigned char*) (buffer) + sizeof(int) + fd)
49 #define CHILD_STDIO_HANDLE(buffer, fd) \
50 *((HANDLE*) ((unsigned char*) (buffer) + \
53 CHILD_STDIO_COUNT((buffer)) + \
172 BYTE* buffer;
186 /* Allocate the child stdio buffer */
187 buffer = (BYTE*) uv__malloc(CHILD_STDIO_SIZE(count));
188 if (buffer == NULL) {
192 /* Prepopulate the buffer with INVALID_HANDLE_VALUE handles so we can clean
194 CHILD_STDIO_COUNT(buffer) = count;
196 CHILD_STDIO_CRT_FLAGS(buffer, i) = 0;
197 CHILD_STDIO_HANDLE(buffer, i) = INVALID_HANDLE_VALUE;
215 * handles in the stdio buffer are initialized with.
221 err = uv__create_nul_handle(&CHILD_STDIO_HANDLE(buffer, i),
226 CHILD_STDIO_CRT_FLAGS(buffer, i) = FOPEN | FDEV;
250 CHILD_STDIO_HANDLE(buffer, i) = child_pipe;
251 CHILD_STDIO_CRT_FLAGS(buffer, i) = FOPEN | FPIPE;
265 CHILD_STDIO_CRT_FLAGS(buffer, i) = 0;
266 CHILD_STDIO_HANDLE(buffer, i) = INVALID_HANDLE_VALUE;
275 CHILD_STDIO_CRT_FLAGS(buffer, i) = FOPEN;
279 CHILD_STDIO_CRT_FLAGS(buffer, i) = FOPEN | FPIPE;
284 CHILD_STDIO_CRT_FLAGS(buffer, i) = FOPEN | FDEV;
293 CHILD_STDIO_CRT_FLAGS(buffer, i) = FOPEN | FDEV;
301 CHILD_STDIO_HANDLE(buffer, i) = child_handle;
337 CHILD_STDIO_HANDLE(buffer, i) = child_handle;
338 CHILD_STDIO_CRT_FLAGS(buffer, i) = crt_flags;
348 *buffer_ptr = buffer;
352 uv__stdio_destroy(buffer);
357 void uv__stdio_destroy(BYTE* buffer) {
360 count = CHILD_STDIO_COUNT(buffer);
362 HANDLE handle = CHILD_STDIO_HANDLE(buffer, i);
368 uv__free(buffer);
372 void uv__stdio_noinherit(BYTE* buffer) {
375 count = CHILD_STDIO_COUNT(buffer);
377 HANDLE handle = CHILD_STDIO_HANDLE(buffer, i);
385 int uv__stdio_verify(BYTE* buffer, WORD size) {
388 /* Check the buffer pointer. */
389 if (buffer == NULL)
392 /* Verify that the buffer is at least big enough to hold the count. */
397 count = CHILD_STDIO_COUNT(buffer);
401 /* Verify that the buffer size is big enough to hold info for N FDs. */
409 WORD uv__stdio_size(BYTE* buffer) {
410 return (WORD) CHILD_STDIO_SIZE(CHILD_STDIO_COUNT((buffer)));
414 HANDLE uv__stdio_handle(BYTE* buffer, int fd) {
415 return CHILD_STDIO_HANDLE(buffer, fd);