• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/uwb/

Lines Matching defs:rsv

84 	struct uwb_rsv *rsv;
91 list_for_each_entry(rsv, &rc->reservations, rc_node) {
92 if (rsv->drp_ie != NULL) {
93 num_bytes += rsv->drp_ie->hdr.length + 2;
94 if (uwb_rsv_has_two_drp_ies(rsv) &&
95 (rsv->mv.companion_drp_ie != NULL)) {
96 mv = &rsv->mv;
115 list_for_each_entry(rsv, &rc->reservations, rc_node) {
116 if (rsv->drp_ie != NULL) {
117 memcpy(IEDataptr, rsv->drp_ie,
118 rsv->drp_ie->hdr.length + 2);
119 IEDataptr += rsv->drp_ie->hdr.length + 2;
121 if (uwb_rsv_has_two_drp_ies(rsv) &&
122 (rsv->mv.companion_drp_ie != NULL)) {
123 mv = &rsv->mv;
148 struct uwb_rsv *rsv, int our_status)
150 int our_tie_breaker = rsv->tiebreaker;
151 int our_type = rsv->type;
152 int our_beacon_slot = rsv->rc->uwb_dev.beacon_slot;
227 struct uwb_rsv *rsv,
230 struct uwb_rc *rc = rsv->rc;
231 struct uwb_rsv_move *mv = &rsv->mv;
235 action = evaluate_conflict_action(drp_ie, ext_beacon_slot, rsv, uwb_rsv_status(rsv));
237 if (uwb_rsv_is_owner(rsv)) {
241 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_TO_BE_MOVED);
250 bitmap_and(mv->companion_mas.bm, rsv->mas.bm, conflicting_mas->bm, UWB_NUM_MAS);
251 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_MODIFIED);
259 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_CONFLICT);
269 struct uwb_rsv *rsv, bool companion_only,
272 struct uwb_rc *rc = rsv->rc;
274 struct uwb_rsv_move *mv = &rsv->mv;
279 action = evaluate_conflict_action(drp_ie, ext_beacon_slot, rsv, 0);
280 if (uwb_rsv_is_owner(rsv)) {
284 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_ESTABLISHED);
285 rsv->needs_release_companion_mas = false;
288 uwb_drp_avail_release(rsv->rc, &rsv->mv.companion_mas);
290 } else { /* rsv is target */
294 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_EXPANDING_CONFLICT);
299 if (uwb_rsv_is_owner(rsv)) {
302 uwb_drp_avail_release(rsv->rc, &rsv->mv.companion_mas);
307 bitmap_andnot(mv->companion_mas.bm, rsv->mas.bm, conflicting_mas->bm, UWB_NUM_MAS);
308 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_MODIFIED);
309 } else { /* it is a target rsv */
310 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_CONFLICT);
316 static void uwb_drp_handle_conflict_rsv(struct uwb_rc *rc, struct uwb_rsv *rsv,
324 if (uwb_rsv_has_two_drp_ies(rsv)) {
325 mv = &rsv->mv;
326 if (bitmap_intersects(rsv->mas.bm, conflicting_mas->bm, UWB_NUM_MAS)) {
328 rsv, false, conflicting_mas);
332 rsv, true, conflicting_mas);
335 } else if (bitmap_intersects(rsv->mas.bm, conflicting_mas->bm, UWB_NUM_MAS)) {
336 handle_conflict_normal(drp_ie, drp_evt->beacon_slot_number, rsv, conflicting_mas);
345 struct uwb_rsv *rsv;
347 list_for_each_entry(rsv, &rc->reservations, rc_node) {
348 uwb_drp_handle_conflict_rsv(rc, rsv, drp_evt, drp_ie, conflicting_mas);
356 static void uwb_drp_process_target(struct uwb_rc *rc, struct uwb_rsv *rsv,
360 struct uwb_rsv_move *mv = &rsv->mv;
372 if (rsv->state == UWB_RSV_STATE_T_CONFLICT) {
373 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_CONFLICT);
377 if (rsv->state == UWB_RSV_STATE_T_EXPANDING_ACCEPTED) {
379 if (!bitmap_equal(rsv->mas.bm, mas.bm, UWB_NUM_MAS))
381 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_EXPANDING_ACCEPTED);
383 if (!bitmap_equal(rsv->mas.bm, mas.bm, UWB_NUM_MAS)) {
389 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_EXPANDING_ACCEPTED);
393 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_ACCEPTED);
402 if (bitmap_equal(rsv->mas.bm, mas.bm, UWB_NUM_MAS)) {
403 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_ACCEPTED);
408 if (bitmap_subset(mas.bm, rsv->mas.bm, UWB_NUM_MAS)) {
410 bitmap_andnot(mv->companion_mas.bm, rsv->mas.bm, mas.bm, UWB_NUM_MAS);
411 uwb_drp_avail_release(rsv->rc, &mv->companion_mas);
414 bitmap_copy(rsv->mas.bm, mas.bm, UWB_NUM_MAS);
415 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_RESIZED);
427 static void uwb_drp_process_owner(struct uwb_rc *rc, struct uwb_rsv *rsv,
432 struct uwb_rsv_move *mv = &rsv->mv;
444 switch (rsv->state) {
448 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_ESTABLISHED);
451 if (bitmap_equal(mas.bm, rsv->mas.bm, UWB_NUM_MAS)) {
452 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_ESTABLISHED);
454 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_MODIFIED);
459 if (bitmap_equal(mas.bm, rsv->mas.bm, UWB_NUM_MAS)) {
460 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_ESTABLISHED);
462 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_MOVE_REDUCING);
468 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_MOVE_COMBINING);
470 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_MOVE_EXPANDING);
474 if (bitmap_equal(mas.bm, rsv->mas.bm, UWB_NUM_MAS))
475 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_MOVE_REDUCING);
477 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_MOVE_COMBINING);
490 uwb_rsv_set_state(rsv, UWB_RSV_STATE_O_PENDING);
493 uwb_rsv_set_state(rsv, UWB_RSV_STATE_NONE);
499 uwb_drp_handle_conflict_rsv(rc, rsv, drp_evt, drp_ie, &mas);
613 struct uwb_rsv *rsv;
615 rsv = uwb_rsv_find(rc, src, drp_ie);
616 if (!rsv) {
629 if (rsv->state == UWB_RSV_STATE_NONE) {
630 uwb_rsv_set_state(rsv, UWB_RSV_STATE_NONE);
635 uwb_drp_process_target(rc, rsv, drp_ie, drp_evt);
637 uwb_drp_process_owner(rc, rsv, src, drp_ie, drp_evt);