1050 }
1051 return (diff);
1052 }
1053
1054 static uint64_t
1055 trunc3931(uint64_t value)
1056 {
1057 if ((value & BITS_39_31) == BITS_39_31)
1058 return (MASK40 & value);
1059 return (MASK31 & value);
1060 }
1061
1062 static struct modlpcbe modlpcbe = {
1063 &mod_pcbeops,
1064 "Pentium Performance Counters",
1065 &ptm_pcbe_ops
1066 };
1067
1068 static struct modlinkage modl = {
1069 MODREV_1,
1070 &modlpcbe,
1071 };
1072
1073 int
1074 _init(void)
1075 {
1076 if (ptm_pcbe_init() != 0)
1077 return (ENOTSUP);
1078 return (mod_install(&modl));
1079 }
1080
1081 int
1082 _fini(void)
1083 {
1084 return (mod_remove(&modl));
1085 }
1086
1087 int
1088 _info(struct modinfo *mi)
1089 {
1090 return (mod_info(&modl, mi));
|
1050 }
1051 return (diff);
1052 }
1053
1054 static uint64_t
1055 trunc3931(uint64_t value)
1056 {
1057 if ((value & BITS_39_31) == BITS_39_31)
1058 return (MASK40 & value);
1059 return (MASK31 & value);
1060 }
1061
1062 static struct modlpcbe modlpcbe = {
1063 &mod_pcbeops,
1064 "Pentium Performance Counters",
1065 &ptm_pcbe_ops
1066 };
1067
1068 static struct modlinkage modl = {
1069 MODREV_1,
1070 { &modlpcbe, NULL }
1071 };
1072
1073 int
1074 _init(void)
1075 {
1076 if (ptm_pcbe_init() != 0)
1077 return (ENOTSUP);
1078 return (mod_install(&modl));
1079 }
1080
1081 int
1082 _fini(void)
1083 {
1084 return (mod_remove(&modl));
1085 }
1086
1087 int
1088 _info(struct modinfo *mi)
1089 {
1090 return (mod_info(&modl, mi));
|