Lines Matching defs:fa

48 posix_spawn_file_actions_init(posix_spawn_file_actions_t *fa)
50 if (fa == NULL)
53 fa->fae = malloc(MIN_SIZE * sizeof(struct posix_spawn_file_actions_entry));
54 if (fa->fae == NULL)
56 fa->size = MIN_SIZE;
57 fa->len = 0;
63 posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *fa)
67 if (fa == NULL)
70 for (i = 0; i < fa->len; i++) {
71 if (fa->fae[i].fae_action == FAE_OPEN)
72 free(fa->fae[i].fae_path);
75 free(fa->fae);
80 posix_spawn_file_actions_getentry(posix_spawn_file_actions_t *fa,
85 if (fa == NULL)
88 if (fa->len < fa->size)
91 fae = realloc(fa->fae, (fa->size + MIN_SIZE) * sizeof(*fa->fae));
95 fa->fae = fae;
96 fa->size += MIN_SIZE;
99 *i = fa->len;
104 posix_spawn_file_actions_addopen(posix_spawn_file_actions_t * __restrict fa,
114 error = posix_spawn_file_actions_getentry(fa, &i);
122 fa->fae[i].fae_action = FAE_OPEN;
123 fa->fae[i].fae_path = faepath;
124 fa->fae[i].fae_fildes = fildes;
125 fa->fae[i].fae_oflag = oflag;
126 fa->fae[i].fae_mode = mode;
127 fa->len++;
133 posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *fa,
142 error = posix_spawn_file_actions_getentry(fa, &i);
146 fa->fae[i].fae_action = FAE_DUP2;
147 fa->fae[i].fae_fildes = fildes;
148 fa->fae[i].fae_newfildes = newfildes;
149 fa->len++;
155 posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *fa,
164 error = posix_spawn_file_actions_getentry(fa, &i);
168 fa->fae[i].fae_action = FAE_CLOSE;
169 fa->fae[i].fae_fildes = fildes;
170 fa->len++;
176 posix_spawn_file_actions_addchdir(posix_spawn_file_actions_t * __restrict fa,
183 error = posix_spawn_file_actions_getentry(fa, &i);
191 fa->fae[i].fae_action = FAE_CHDIR;
192 fa->fae[i].fae_chdir_path = dirpath;
193 fa->fae[i].fae_fildes = -1;
194 fa->len++;
200 posix_spawn_file_actions_addfchdir(posix_spawn_file_actions_t *fa, int fildes)
208 error = posix_spawn_file_actions_getentry(fa, &i);
212 fa->fae[i].fae_action = FAE_FCHDIR;
213 fa->fae[i].fae_fildes = fildes;
214 fa->len++;