1 /* 2 * Copyright (c) 2018 The Linux Foundation. All rights reserved. 3 * 4 * 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 19 /** 20 * DOC: qdf_idr(ID Allocation) 21 * QCA driver framework (QDF) ID allocation APIs 22 */ 23 24 #if !defined(__QDF_IDR_H) 25 #define __QDF_IDR_H 26 27 /* Include Files */ 28 #include <qdf_types.h> 29 #include <qdf_status.h> 30 #include <i_qdf_idr.h> 31 32 /** 33 * qdf_idr - platform idr object 34 */ 35 typedef __qdf_idr qdf_idr; 36 37 /** 38 * qdf_idr_create() - idr initialization function 39 * @idp: pointer to qdf idr 40 * 41 * Return: QDF status 42 */ 43 QDF_STATUS qdf_idr_create(qdf_idr *idp); 44 45 /** 46 * qdf_idr_destroy() - idr deinitialization function 47 * @idp: pointer to qdf idr 48 * 49 * Return: QDF status 50 */ 51 QDF_STATUS qdf_idr_destroy(qdf_idr *idp); 52 53 /** 54 * qdf_idr_alloc() - Allocates an unused ID 55 * @idp: pointer to qdf idr 56 * @ptr: pointer to be associated with the new ID 57 * @id: pointer to return new ID 58 * 59 * Return: QDF status 60 */ 61 QDF_STATUS qdf_idr_alloc(qdf_idr *idp, void *ptr, int32_t *id); 62 63 /** 64 * qdf_idr_remove() - Removes this ID from the IDR. 65 * @idp: pointer to qdf idr 66 * @id: ID to be remove 67 * 68 * Return: QDF status 69 */ 70 QDF_STATUS qdf_idr_remove(qdf_idr *idp, int32_t id); 71 72 /** 73 * qdf_idr_find() - find the user pointer from the IDR by id. 74 * @idp: pointer to qdf idr 75 * @id: ID to be remove 76 * @ptr: pointer to return user pointer for given ID 77 * 78 * Return: QDF status 79 */ 80 QDF_STATUS qdf_idr_find(qdf_idr *idp, int32_t id, void **ptr); 81 82 #endif /* __QDF_IDR_H */ 83