[CRIU] [PATCH 1/2] image: Move image definitions to own file
Pavel Emelyanov
xemul at parallels.com
Tue May 7 15:13:30 EDT 2013
On 05/07/2013 11:08 PM, Cyrill Gorcunov wrote:
> On Tue, May 07, 2013 at 10:48:33PM +0400, Pavel Emelyanov wrote:
>>
>> OK, let's discuss this thing. First -- image-defs.c. It contains the fdset template
>> array _only_. Thus I'd name it fdset.c, but I don't understand why the rest of fdset
>> management code sits outside of this file. Don't you need it?
>
> Well, I have own compact fdset code in cpt2, which doesn't need all the stuff
> we've in crtools, in particular I don't need shows and such.
And what? Plz use crtools' fdset in your converter, can you?
> Thus my fdset code is trivial
>
> #include <stdlib.h>
> #include <stdio.h>
> #include <unistd.h>
> #include <sys/types.h>
>
> #include "xmalloc.h"
> #include "fdset.h"
> #include "io.h"
>
> struct fdset *fdset_alloc(unsigned int offset, unsigned int number)
> {
> unsigned long len = sizeof(int) * number;
> struct fdset *p = xmalloc(sizeof(*p) + len);
>
> if (p) {
> p->offset = offset;
> p->number = number;
>
> memset(p->__fd, 0xff, len);
> }
>
> return p;
> }
>
> void fdset_close(struct fdset *fdset, unsigned int from, unsigned int to)
> {
> unsigned int i;
>
> for (i = from; i < to; i++) {
> int *fd = fdset_fd_ptr(fdset, i);
> if (!fd)
> break;
> close_safe(fd);
> }
> }
>
> static inline void __fdset_free(struct fdset *fdset)
> {
> fdset_close(fdset, fdset->offset, fdset->number);
> xfree(fdset);
> }
>
> void fdset_free(struct fdset **fdset)
> {
> if (fdset) {
> __fdset_free(*fdset);
> *fdset = NULL;
> }
> }
>
> and that's all ;) So ideally I planned to make this fdset code to be used
> in both crtools and cpt2 as shared object file, but this require more changes
> to crtools, so I moved out only snippets needed (and btw, lets reserve
> fdset.c for abstract file-set management not bound to crtools specifics,
> iow maybe we can live with name I proposed?)
>
>>
>> The changes with cr-show.h are OK, I can merge them.
>>
>> The image-defs.h is the same as the .c one -- it contains parts of fdset API, thus
>> it's better to name one fdset.h, but yet again -- why only parts?
>
> Same reason, I moved only the code which really need to be shared to me. I tried
> to make as minimum changes as possible.
> .
>
More information about the CRIU
mailing list