Lines Matching refs:ifmr

111 	struct ifmediareq ifmr;
116 (void) memset(&ifmr, 0, sizeof(ifmr));
117 (void) strlcpy(ifmr.ifm_name, name, sizeof(ifmr.ifm_name));
123 if (ioctl(s, SIOCGIFXMEDIA, (caddr_t)&ifmr) < 0)
125 if (!xmedia && ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) {
132 if (ifmr.ifm_count == 0) {
137 media_list = (int *)malloc(ifmr.ifm_count * sizeof(int));
140 ifmr.ifm_ulist = media_list;
143 if (ioctl(s, SIOCGIFXMEDIA, (caddr_t)&ifmr) < 0)
146 if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0)
151 print_media_word(ifmr.ifm_current, 1);
152 if (ifmr.ifm_active != ifmr.ifm_current) {
155 print_media_word(ifmr.ifm_active, 0);
161 if (ifmr.ifm_status & IFM_AVALID) {
164 switch (IFM_TYPE(ifmr.ifm_active)) {
167 if (ifmr.ifm_status & IFM_ACTIVE)
175 if (ifmr.ifm_status & IFM_ACTIVE)
182 if (ifmr.ifm_status & IFM_ACTIVE) {
184 if (IFM_OPMODE(ifmr.ifm_active) == IFM_IEEE80211_STA)
213 if (ifmr.ifm_count > 0 && supmedia) {
215 for (i = 0; i < ifmr.ifm_count; i++) {
228 static struct ifmediareq *ifmr = NULL;
232 if (ifmr == NULL) {
233 ifmr = (struct ifmediareq *)malloc(sizeof(struct ifmediareq));
234 if (ifmr == NULL)
237 (void) memset(ifmr, 0, sizeof(struct ifmediareq));
238 (void) strlcpy(ifmr->ifm_name, name,
239 sizeof(ifmr->ifm_name));
241 ifmr->ifm_count = 0;
242 ifmr->ifm_ulist = NULL;
250 if (ioctl(s, SIOCGIFXMEDIA, (caddr_t)ifmr) < 0) {
253 if (xmedia == 0 && ioctl(s, SIOCGIFMEDIA, (caddr_t)ifmr) < 0) {
257 if (ifmr->ifm_count == 0)
260 mwords = (int *)malloc(ifmr->ifm_count * sizeof(int));
264 ifmr->ifm_ulist = mwords;
266 if (ioctl(s, SIOCGIFXMEDIA, (caddr_t)ifmr) < 0)
269 if (ioctl(s, SIOCGIFMEDIA, (caddr_t)ifmr) < 0)
274 return ifmr;
280 struct ifmediareq *ifmr = (struct ifmediareq *)arg;
284 ifr.ifr_media = ifmr->ifm_current;
287 free(ifmr->ifm_ulist);
288 free(ifmr);
296 struct ifmediareq *ifmr;
299 ifmr = ifmedia_getstate(s);
310 subtype = get_media_subtype(IFM_TYPE(ifmr->ifm_ulist[0]), val);
313 ifr.ifr_media = (ifmr->ifm_current & IFM_IMASK) |
314 IFM_TYPE(ifmr->ifm_ulist[0]) | subtype;
316 ifmr->ifm_current = ifr.ifr_media;
317 callback_register(setifmediacallback, (void *)ifmr);
337 struct ifmediareq *ifmr;
340 ifmr = ifmedia_getstate(s);
342 options = get_media_options(IFM_TYPE(ifmr->ifm_ulist[0]), val);
345 ifr.ifr_media = ifmr->ifm_current;
355 ifmr->ifm_current = ifr.ifr_media;
356 callback_register(setifmediacallback, (void *)ifmr);
362 struct ifmediareq *ifmr;
365 ifmr = ifmedia_getstate(s);
372 ifr.ifr_media = (ifmr->ifm_current & ~IFM_IMASK) | inst << IFM_ISHIFT;
374 ifmr->ifm_current = ifr.ifr_media;
375 callback_register(setifmediacallback, (void *)ifmr);
381 struct ifmediareq *ifmr;
384 ifmr = ifmedia_getstate(s);
386 mode = get_media_mode(IFM_TYPE(ifmr->ifm_ulist[0]), val);
389 ifr.ifr_media = (ifmr->ifm_current & ~IFM_MMASK) | mode;
391 ifmr->ifm_current = ifr.ifr_media;
392 callback_register(setifmediacallback, (void *)ifmr);