~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/powerpc/include/asm/rheap.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * include/asm-ppc/rheap.h
  3  *
  4  * Header file for the implementation of a remote heap.
  5  *
  6  * Author: Pantelis Antoniou <panto@intracom.gr>
  7  *
  8  * 2004 (c) INTRACOM S.A. Greece. This file is licensed under
  9  * the terms of the GNU General Public License version 2. This program
 10  * is licensed "as is" without any warranty of any kind, whether express
 11  * or implied.
 12  */
 13 
 14 #ifndef __ASM_PPC_RHEAP_H__
 15 #define __ASM_PPC_RHEAP_H__
 16 
 17 #include <linux/list.h>
 18 
 19 typedef struct _rh_block {
 20         struct list_head list;
 21         unsigned long start;
 22         int size;
 23         const char *owner;
 24 } rh_block_t;
 25 
 26 typedef struct _rh_info {
 27         unsigned int alignment;
 28         int max_blocks;
 29         int empty_slots;
 30         rh_block_t *block;
 31         struct list_head empty_list;
 32         struct list_head free_list;
 33         struct list_head taken_list;
 34         unsigned int flags;
 35 } rh_info_t;
 36 
 37 #define RHIF_STATIC_INFO        0x1
 38 #define RHIF_STATIC_BLOCK       0x2
 39 
 40 typedef struct _rh_stats {
 41         unsigned long start;
 42         int size;
 43         const char *owner;
 44 } rh_stats_t;
 45 
 46 #define RHGS_FREE       0
 47 #define RHGS_TAKEN      1
 48 
 49 /* Create a remote heap dynamically */
 50 extern rh_info_t *rh_create(unsigned int alignment);
 51 
 52 /* Destroy a remote heap, created by rh_create() */
 53 extern void rh_destroy(rh_info_t * info);
 54 
 55 /* Initialize in place a remote info block */
 56 extern void rh_init(rh_info_t * info, unsigned int alignment, int max_blocks,
 57                     rh_block_t * block);
 58 
 59 /* Attach a free region to manage */
 60 extern int rh_attach_region(rh_info_t * info, unsigned long start, int size);
 61 
 62 /* Detach a free region */
 63 extern unsigned long rh_detach_region(rh_info_t * info, unsigned long start, int size);
 64 
 65 /* Allocate the given size from the remote heap (with alignment) */
 66 extern unsigned long rh_alloc_align(rh_info_t * info, int size, int alignment,
 67                 const char *owner);
 68 
 69 /* Allocate the given size from the remote heap */
 70 extern unsigned long rh_alloc(rh_info_t * info, int size, const char *owner);
 71 
 72 /* Allocate the given size from the given address */
 73 extern unsigned long rh_alloc_fixed(rh_info_t * info, unsigned long start, int size,
 74                             const char *owner);
 75 
 76 /* Free the allocated area */
 77 extern int rh_free(rh_info_t * info, unsigned long start);
 78 
 79 /* Get stats for debugging purposes */
 80 extern int rh_get_stats(rh_info_t * info, int what, int max_stats,
 81                         rh_stats_t * stats);
 82 
 83 /* Simple dump of remote heap info */
 84 extern void rh_dump(rh_info_t * info);
 85 
 86 /* Simple dump of remote info block */
 87 void rh_dump_blk(rh_info_t *info, rh_block_t *blk);
 88 
 89 /* Set owner of taken block */
 90 extern int rh_set_owner(rh_info_t * info, unsigned long start, const char *owner);
 91 
 92 #endif                          /* __ASM_PPC_RHEAP_H__ */
 93 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php