blob: e2bb13e2c61959e7be83b4ed259ea04417095fdf [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
Jeff Johnson5f32b682018-12-06 12:56:31 -08002 * Copyright (c) 2014-2016, 2018 The Linux Foundation. All rights reserved.
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003 *
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
Anurag Chouhance0dc992016-02-16 18:18:03 +053019#if !defined(__CDS_PKT_H)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080020#define __CDS_PKT_H
21
22/**=========================================================================
23
24 \file cds_packet.h
25
26 \brief Connectivity driver services (CDS) network Packet APIs
27
28 Network Protocol packet/buffer support interfaces
29
30 ========================================================================*/
31
32/*--------------------------------------------------------------------------
33 Include Files
34 ------------------------------------------------------------------------*/
Anurag Chouhan6d760662016-02-20 16:05:43 +053035#include <qdf_types.h>
Anurag Chouhance0dc992016-02-16 18:18:03 +053036#include <qdf_status.h>
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080037
38/*--------------------------------------------------------------------------
39 Preprocessor definitions and constants
40 ------------------------------------------------------------------------*/
41
42/*--------------------------------------------------------------------------
43 Type declarations
44 ------------------------------------------------------------------------*/
45struct cds_pkt_t;
46typedef struct cds_pkt_t cds_pkt_t;
47
Nirav Shahcbc6d722016-03-01 16:24:53 +053048#include "qdf_nbuf.h"
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080049
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080050/**
51 * cds_pkt_return_packet Free the cds Packet
52 * @ cds Packet
53 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +053054QDF_STATUS cds_pkt_return_packet(cds_pkt_t *packet);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080055
56/**
57 * cds_pkt_get_packet_length Returns the packet length
58 * @ cds Packet
59 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +053060QDF_STATUS cds_pkt_get_packet_length(cds_pkt_t *pPacket,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080061 uint16_t *pPacketSize);
62
63/*
64 * TODO: Remove later
65 * All the below difinitions are not
66 * required for Host Driver 2.0
67 * once corresponding references are removed
68 * from HDD and other layers
69 * below code will be removed
70 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080071#ifdef MEMORY_DEBUG
72#define cds_packet_alloc(s, d, p) \
73 cds_packet_alloc_debug(s, d, p, __FILE__, __LINE__)
74
Anurag Chouhanfb54ab02016-02-18 18:00:46 +053075QDF_STATUS cds_packet_alloc_debug(uint16_t size, void **data, void **ppPacket,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080076 uint8_t *file_name, uint32_t line_num);
77#else
Anurag Chouhanfb54ab02016-02-18 18:00:46 +053078QDF_STATUS cds_packet_alloc(uint16_t size, void **data, void **ppPacket);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080079#endif
80
81void cds_packet_free(void *pPacket);
82
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080083#endif /* !defined( __CDS_PKT_H ) */