Lines Matching refs:un
71 reg Union_t* un; local
74 un = (Union_t*)disc;
76 f = un->f[un->c].f;
78 { if((r = sfread(f,buf,m)) < 0 || (r == 0 && un->c == un->n-1) )
82 un->here += r;
88 if(sfeof(f) && un->c < un->n-1)
89 f = un->f[un->c += 1].f;
104 reg Union_t* un; local
108 un = (Union_t*)disc;
109 if(un->type&UNSEEKABLE)
114 for(i = 0; i < un->n; ++i)
115 extent += (sfsize(un->f[i].f) - un->f[i].lower);
119 addr += un->here;
126 for(i = 0; i < un->n-1; ++i)
127 { s = sfsize(un->f[i].f) - un->f[i].lower;
133 s = (addr-extent) + un->f[i].lower;
134 if(sfseek(un->f[i].f,s,0) != s)
137 un->c = i;
138 un->here = addr;
140 for(i += 1; i < un->n; ++i)
141 sfseek(un->f[i].f,un->f[i].lower,0);
172 reg Union_t* un; local
178 if(!(un = (Union_t*)malloc(sizeof(Union_t)+(n-1)*sizeof(File_t))) )
180 memset(un, 0, sizeof(*un));
182 un->disc.readf = unread;
183 un->disc.writef = unwrite;
184 un->disc.seekf = unseek;
185 un->disc.exceptf = unexcept;
186 un->n = n;
189 { un->f[i].f = array[i];
190 if(!(un->type&UNSEEKABLE))
191 { un->f[i].lower = sfseek(array[i],(Sfoff_t)0,1);
192 if(un->f[i].lower < 0)
193 un->type |= UNSEEKABLE;
197 if(sfdisc(f,(Sfdisc_t*)un) != (Sfdisc_t*)un)
198 { free(un);