static void pipe_save( Pipe* pipe, QEMUFile* file ) { if (pipe->service == NULL) { qemu_put_byte(file, 0); } else { qemu_put_byte(file, 1); qemu_put_string(file, pipe->service->name); } qemu_put_be32(file, (unsigned int)pipe->channel); qemu_put_byte(file, (int)pipe->wanted); qemu_put_byte(file, (int)pipe->closed); if (pipe->args != NULL) { qemu_put_byte(file, 1); qemu_put_string(file, pipe->args); } else { qemu_put_byte(file, 0); } if (pipe->funcs->save) { pipe->funcs->save(pipe->opaque, file); } }
static void pipe_save( Pipe* pipe, QEMUFile* file ) { if (pipe->service == NULL) { /* pipe->service == NULL means we're still using a PipeConnector */ /* Write a zero to indicate this condition */ qemu_put_byte(file, 0); } else { /* Otherwise, write a '1' then the service name */ qemu_put_byte(file, 1); qemu_put_string(file, pipe->service->name); } /* Now save other common data */ qemu_put_be64(file, pipe->channel); qemu_put_byte(file, (int)pipe->wanted); qemu_put_byte(file, (int)pipe->closed); /* Write 1 + args, if any, or simply 0 otherwise */ if (pipe->args != NULL) { qemu_put_byte(file, 1); qemu_put_string(file, pipe->args); } else { qemu_put_byte(file, 0); } if (pipe->funcs->save) { pipe->funcs->save(pipe->opaque, file); } }