963
964
965}
966
967#ifdef CONFIG_PROC_FS
968
969static const char *ias_value_types[] = {
970 "IAS_MISSING",
971 "IAS_INTEGER",
972 "IAS_OCT_SEQ",
973 "IAS_STRING"
974};
975
976static inline struct ias_object *irias_seq_idx(loff_t pos)
977{
978 struct ias_object *obj;
979
980 for (obj = (struct ias_object *) hashbin_get_first(irias_objects);
981 obj; obj = (struct ias_object *) hashbin_get_next(irias_objects)) {
982 if (pos-- == 0)
983 break;
984 }
985
986 return obj;
987}
988
989static void *irias_seq_start(struct seq_file *seq, loff_t *pos)
990{
991 spin_lock_irq(&irias_objects->hb_spinlock);
992
993 return *pos ? irias_seq_idx(*pos - 1) : SEQ_START_TOKEN;
994}
995
996static void *irias_seq_next(struct seq_file *seq, void *v, loff_t *pos)
997{
998 ++*pos;
999
1000 return (v == SEQ_START_TOKEN)
1001 ? (void *) hashbin_get_first(irias_objects)
1002 : (void *) hashbin_get_next(irias_objects);
1003}