Lines Matching refs:ifmr

112 	struct ifmediareq ifmr;
115 (void) memset(&ifmr, 0, sizeof(ifmr));
116 (void) strncpy(ifmr.ifm_name, name, sizeof(ifmr.ifm_name));
118 if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) {
125 if (ifmr.ifm_count == 0) {
130 media_list = (int *)malloc(ifmr.ifm_count * sizeof(int));
133 ifmr.ifm_ulist = media_list;
135 if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0)
139 print_media_word(ifmr.ifm_current, 1);
140 if (ifmr.ifm_active != ifmr.ifm_current) {
143 print_media_word(ifmr.ifm_active, 0);
149 if (ifmr.ifm_status & IFM_AVALID) {
151 switch (IFM_TYPE(ifmr.ifm_active)) {
154 if (ifmr.ifm_status & IFM_ACTIVE)
162 if (ifmr.ifm_status & IFM_ACTIVE)
169 if (ifmr.ifm_status & IFM_ACTIVE) {
171 if (IFM_OPMODE(ifmr.ifm_active) == IFM_IEEE80211_STA)
182 if (ifmr.ifm_count > 0 && supmedia) {
184 for (i = 0; i < ifmr.ifm_count; i++) {
197 static struct ifmediareq *ifmr = NULL;
200 if (ifmr == NULL) {
201 ifmr = (struct ifmediareq *)malloc(sizeof(struct ifmediareq));
202 if (ifmr == NULL)
205 (void) memset(ifmr, 0, sizeof(struct ifmediareq));
206 (void) strncpy(ifmr->ifm_name, name,
207 sizeof(ifmr->ifm_name));
209 ifmr->ifm_count = 0;
210 ifmr->ifm_ulist = NULL;
218 if (ioctl(s, SIOCGIFMEDIA, (caddr_t)ifmr) < 0) {
222 if (ifmr->ifm_count == 0)
225 mwords = (int *)malloc(ifmr->ifm_count * sizeof(int));
229 ifmr->ifm_ulist = mwords;
230 if (ioctl(s, SIOCGIFMEDIA, (caddr_t)ifmr) < 0)
234 return ifmr;
240 struct ifmediareq *ifmr = (struct ifmediareq *)arg;
244 ifr.ifr_media = ifmr->ifm_current;
247 free(ifmr->ifm_ulist);
248 free(ifmr);
256 struct ifmediareq *ifmr;
259 ifmr = ifmedia_getstate(s);
270 subtype = get_media_subtype(IFM_TYPE(ifmr->ifm_ulist[0]), val);
273 ifr.ifr_media = (ifmr->ifm_current & IFM_IMASK) |
274 IFM_TYPE(ifmr->ifm_ulist[0]) | subtype;
276 ifmr->ifm_current = ifr.ifr_media;
277 callback_register(setifmediacallback, (void *)ifmr);
297 struct ifmediareq *ifmr;
300 ifmr = ifmedia_getstate(s);
302 options = get_media_options(IFM_TYPE(ifmr->ifm_ulist[0]), val);
305 ifr.ifr_media = ifmr->ifm_current;
315 ifmr->ifm_current = ifr.ifr_media;
316 callback_register(setifmediacallback, (void *)ifmr);
322 struct ifmediareq *ifmr;
325 ifmr = ifmedia_getstate(s);
332 ifr.ifr_media = (ifmr->ifm_current & ~IFM_IMASK) | inst << IFM_ISHIFT;
334 ifmr->ifm_current = ifr.ifr_media;
335 callback_register(setifmediacallback, (void *)ifmr);
341 struct ifmediareq *ifmr;
344 ifmr = ifmedia_getstate(s);
346 mode = get_media_mode(IFM_TYPE(ifmr->ifm_ulist[0]), val);
349 ifr.ifr_media = (ifmr->ifm_current & ~IFM_MMASK) | mode;
351 ifmr->ifm_current = ifr.ifr_media;
352 callback_register(setifmediacallback, (void *)ifmr);