Lines Matching refs:rd
512 static int check_random_device(struct random_device * rd) in check_random_device() argument
516 return rd->fd != -1 in check_random_device()
517 && fstat(rd->fd, &st) != -1 in check_random_device()
518 && rd->dev == st.st_dev in check_random_device()
519 && rd->ino == st.st_ino in check_random_device()
520 && ((rd->mode ^ st.st_mode) & ~(S_IRWXU | S_IRWXG | S_IRWXO)) == 0 in check_random_device()
521 && rd->rdev == st.st_rdev; in check_random_device()
530 struct random_device * rd = &random_devices[n]; in get_random_device() local
533 if (check_random_device(rd)) in get_random_device()
534 return rd->fd; in get_random_device()
537 if ((rd->fd = open(random_device_paths[n], O_RDONLY)) == -1) in get_random_device()
538 return rd->fd; in get_random_device()
541 if (fstat(rd->fd, &st) != -1) { in get_random_device()
542 rd->dev = st.st_dev; in get_random_device()
543 rd->ino = st.st_ino; in get_random_device()
544 rd->mode = st.st_mode; in get_random_device()
545 rd->rdev = st.st_rdev; in get_random_device()
547 close(rd->fd); in get_random_device()
548 rd->fd = -1; in get_random_device()
551 return rd->fd; in get_random_device()
559 struct random_device * rd = &random_devices[n]; in close_random_device() local
561 if (check_random_device(rd)) in close_random_device()
562 close(rd->fd); in close_random_device()
563 rd->fd = -1; in close_random_device()