+ /* get maximal number of bytes that can be written */
+ ret = ioctl(powd->fd, SNDCTL_DSP_GETOSPACE, &abi);
+ if (ret >= 0) {
+ size_t max_frames = abi.bytes / powd->bytes_per_frame;
+ if (max_frames == 0)
+ goto out;
+ /* cap number of frames to avoid sound artefacts */
+ frames = PARA_MIN(frames, max_frames);
+ }