kern_mbuf.c (4c7070db251a6f2153f9e4783717151b07449ae3) | kern_mbuf.c (e8fd18f306915c411b08ab4664ec0aa3bc03d4d4) |
---|---|
1/*- 2 * Copyright (c) 2004, 2005, 3 * Bosko Milekic <bmilekic@FreeBSD.org>. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 490 unchanged lines hidden (view full) --- 499{ 500 struct mbuf *m; 501 502#ifdef INVARIANTS 503 trash_ctor(mem, size, arg, how); 504#endif 505 m = (struct mbuf *)arg; 506 if (m != NULL) { | 1/*- 2 * Copyright (c) 2004, 2005, 3 * Bosko Milekic <bmilekic@FreeBSD.org>. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 490 unchanged lines hidden (view full) --- 499{ 500 struct mbuf *m; 501 502#ifdef INVARIANTS 503 trash_ctor(mem, size, arg, how); 504#endif 505 m = (struct mbuf *)arg; 506 if (m != NULL) { |
507 m->m_ext.ext_buf = (caddr_t)mem; | 507 m->m_ext.ext_buf = (char *)mem; |
508 m->m_data = m->m_ext.ext_buf; 509 m->m_flags |= M_EXT; 510 m->m_ext.ext_free = NULL; 511 m->m_ext.ext_arg1 = NULL; 512 m->m_ext.ext_arg2 = NULL; 513 m->m_ext.ext_size = size; 514 m->m_ext.ext_type = m_gettype(size); 515 m->m_ext.ext_flags = EXT_FLAG_EMBREF; --- 167 unchanged lines hidden (view full) --- 683 m->m_ext.ext_arg2); 684 uma_zfree(zone_mbuf, mref); 685 break; 686 case EXT_NET_DRV: 687 case EXT_MOD_TYPE: 688 case EXT_DISPOSABLE: 689 KASSERT(m->m_ext.ext_free != NULL, 690 ("%s: ext_free not set", __func__)); | 508 m->m_data = m->m_ext.ext_buf; 509 m->m_flags |= M_EXT; 510 m->m_ext.ext_free = NULL; 511 m->m_ext.ext_arg1 = NULL; 512 m->m_ext.ext_arg2 = NULL; 513 m->m_ext.ext_size = size; 514 m->m_ext.ext_type = m_gettype(size); 515 m->m_ext.ext_flags = EXT_FLAG_EMBREF; --- 167 unchanged lines hidden (view full) --- 683 m->m_ext.ext_arg2); 684 uma_zfree(zone_mbuf, mref); 685 break; 686 case EXT_NET_DRV: 687 case EXT_MOD_TYPE: 688 case EXT_DISPOSABLE: 689 KASSERT(m->m_ext.ext_free != NULL, 690 ("%s: ext_free not set", __func__)); |
691 (*(m->m_ext.ext_free))(m, m->m_ext.ext_arg1, 692 m->m_ext.ext_arg2); | 691 m->m_ext.ext_free(m); |
693 uma_zfree(zone_mbuf, mref); 694 break; 695 case EXT_EXTREF: 696 KASSERT(m->m_ext.ext_free != NULL, 697 ("%s: ext_free not set", __func__)); | 692 uma_zfree(zone_mbuf, mref); 693 break; 694 case EXT_EXTREF: 695 KASSERT(m->m_ext.ext_free != NULL, 696 ("%s: ext_free not set", __func__)); |
698 (*(m->m_ext.ext_free))(m, m->m_ext.ext_arg1, 699 m->m_ext.ext_arg2); | 697 m->m_ext.ext_free(m); |
700 break; 701 default: 702 KASSERT(m->m_ext.ext_type == 0, 703 ("%s: unknown ext_type", __func__)); 704 } 705 } 706 707 if (freembuf && m != mref) --- 205 unchanged lines hidden (view full) --- 913 * flags Any other flags to be passed to the provided mbuf. 914 * type The type that the external storage buffer should be 915 * labeled with. 916 * 917 * Returns: 918 * Nothing. 919 */ 920void | 698 break; 699 default: 700 KASSERT(m->m_ext.ext_type == 0, 701 ("%s: unknown ext_type", __func__)); 702 } 703 } 704 705 if (freembuf && m != mref) --- 205 unchanged lines hidden (view full) --- 911 * flags Any other flags to be passed to the provided mbuf. 912 * type The type that the external storage buffer should be 913 * labeled with. 914 * 915 * Returns: 916 * Nothing. 917 */ 918void |
921m_extadd(struct mbuf *mb, caddr_t buf, u_int size, 922 void (*freef)(struct mbuf *, void *, void *), void *arg1, void *arg2, 923 int flags, int type) | 919m_extadd(struct mbuf *mb, char *buf, u_int size, m_ext_free_t freef, 920 void *arg1, void *arg2, int flags, int type) |
924{ 925 926 KASSERT(type != EXT_CLUSTER, ("%s: EXT_CLUSTER not allowed", __func__)); 927 928 mb->m_flags |= (M_EXT | flags); 929 mb->m_ext.ext_buf = buf; 930 mb->m_data = mb->m_ext.ext_buf; 931 mb->m_ext.ext_size = size; --- 24 unchanged lines hidden --- | 921{ 922 923 KASSERT(type != EXT_CLUSTER, ("%s: EXT_CLUSTER not allowed", __func__)); 924 925 mb->m_flags |= (M_EXT | flags); 926 mb->m_ext.ext_buf = buf; 927 mb->m_data = mb->m_ext.ext_buf; 928 mb->m_ext.ext_size = size; --- 24 unchanged lines hidden --- |