/*
- * Copyright (c) 2004-2009 Apple Inc. All rights reserved.
+ * Copyright (c) 2004-2010 Apple Inc. All rights reserved.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
addr64_t mbuf_data_to_physical(void* ptr)
{
- return (addr64_t)(intptr_t)mcl_to_paddr(ptr);
+ return (addr64_t)(uintptr_t)mcl_to_paddr(ptr);
}
errno_t mbuf_get(mbuf_how_t how, mbuf_type_t type, mbuf_t *mbuf)
return (prio);
#endif /* PKT_PRIORITY */
}
+
+mbuf_traffic_class_t
+mbuf_get_traffic_class(mbuf_t m)
+{
+#if !PKT_PRIORITY
+#pragma unused(m)
+ return (MBUF_TC_BE);
+#else /* PKT_PRIORITY */
+ mbuf_priority_t prio = MBUF_TC_BE;
+
+ if (m == NULL || !(m->m_flags & M_PKTHDR))
+ return (prio);
+
+ if (m->m_pkthdr.prio <= MBUF_TC_VO)
+ prio = m->m_pkthdr.prio;
+
+ return (prio);
+#endif /* PKT_PRIORITY */
+}
+
+errno_t
+mbuf_set_traffic_class(mbuf_t m, mbuf_traffic_class_t tc)
+{
+#if !PKT_PRIORITY
+#pragma unused(m)
+#pragma unused(tc)
+ return 0;
+#else /* PKT_PRIORITY */
+ errno_t error = 0;
+
+ if (m == NULL || !(m->m_flags & M_PKTHDR))
+ return EINVAL;
+
+ switch (tc) {
+ case MBUF_TC_BE:
+ case MBUF_TC_BK:
+ case MBUF_TC_VI:
+ case MBUF_TC_VO:
+ m->m_pkthdr.prio = tc;
+ break;
+ default:
+ error = EINVAL;
+ break;
+ }
+ return error;
+#endif /* PKT_PRIORITY */
+}