func poll(f *os.File) error {
	var (
		fds = []unix.PollFd{{
			Fd:     int32(f.Fd()),
			Events: 0x1,  
		}}
		timeout = -1  
	)
	if _, err := unix.Poll(fds, timeout); err != nil {
		return err
	}
	if fds[0].Revents != fds[0].Events {
		return fmt.Errorf("unexpected poll Revents 0x%x", fds[0].Revents)
	}
	return nil
}
poll blocks until the file descriptor is ready for reading or an error occurs.
package tpmutil
import (
	"fmt"
	"os"
	"golang.org/x/sys/unix"
)