enic_pp.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * Copyright 2011 Cisco Systems, Inc. All rights reserved.
  3. *
  4. * This program is free software; you may redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation; version 2 of the License.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  9. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  10. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  11. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
  12. * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
  13. * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  14. * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  15. * SOFTWARE.
  16. *
  17. */
  18. #ifndef _ENIC_PP_H_
  19. #define _ENIC_PP_H_
  20. #define ENIC_PP_BY_INDEX(enic, vf, pp, err) \
  21. do { \
  22. if (enic_is_valid_pp_vf(enic, vf, err)) \
  23. pp = (vf == PORT_SELF_VF) ? enic->pp : enic->pp + vf; \
  24. else \
  25. pp = NULL; \
  26. } while (0)
  27. int enic_process_set_pp_request(struct enic *enic, int vf,
  28. struct enic_port_profile *prev_pp, int *restore_pp);
  29. int enic_process_get_pp_request(struct enic *enic, int vf,
  30. int request, u16 *response);
  31. int enic_is_valid_pp_vf(struct enic *enic, int vf, int *err);
  32. #endif /* _ENIC_PP_H_ */