Data Structures | Defines | Typedefs | Functions | Variables

ink_queue.h File Reference

A brief file description. More...

#include "ink_platform.h"
#include "ink_defs.h"
#include "ink_apidefs.h"
Include dependency graph for ink_queue.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  head_p
struct  _InkFreeList
struct  _ink_freelist_list
struct  InkAtomicList

Defines

#define INK_QUEUE_LD64(dst, src)   (ink_queue_load_64((void *)&(dst), (void *)&(src)))
#define INK_QUEUE_LD(dst, src)   INK_QUEUE_LD64(dst,src)
#define ZERO_HEAD_P(_x)
#define FROM_PTR(_x)   ((void*)(_x))
#define TO_PTR(_x)   ((void*)(_x))
#define INK_ATOMICLIST_EMPTY(_x)   (!(TO_PTR(FREELIST_POINTER((_x.head)))))

Typedefs

typedef void * void_p
typedef struct _InkFreeList InkFreeList
typedef struct _InkFreeListPInkFreeList
typedef struct _ink_freelist_list ink_freelist_list

Functions

void ink_queue_load_64 (void *dst, void *src)
InkFreeListink_freelist_create (const char *name, uint32_t type_size, uint32_t chunk_size, uint32_t alignment)
inkcoreapi void ink_freelist_init (InkFreeList **fl, const char *name, uint32_t type_size, uint32_t chunk_size, uint32_t alignment)
inkcoreapi void * ink_freelist_new (InkFreeList *f)
inkcoreapi void ink_freelist_free (InkFreeList *f, void *item)
void ink_freelists_dump (FILE *f)
void ink_freelists_dump_baselinerel (FILE *f)
void ink_freelists_snap_baseline ()
inkcoreapi void ink_atomiclist_init (InkAtomicList *l, const char *name, uint32_t offset_to_next)
inkcoreapi void * ink_atomiclist_push (InkAtomicList *l, void *item)
void * ink_atomiclist_pop (InkAtomicList *l)
inkcoreapi void * ink_atomiclist_popall (InkAtomicList *l)
void * ink_atomiclist_remove (InkAtomicList *l, void *item)

Variables

inkcoreapi volatile int64_t fastalloc_mem_in_use
inkcoreapi volatile int64_t fastalloc_mem_total
inkcoreapi volatile int64_t freelist_allocated_mem
ink_freelist_listfreelists

Detailed Description

A brief file description.

License

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file ink_queue.h.


Define Documentation

#define FROM_PTR (   _x  )     ((void*)(_x))
#define INK_ATOMICLIST_EMPTY (   _x  )     (!(TO_PTR(FREELIST_POINTER((_x.head)))))
#define INK_QUEUE_LD (   dst,
  src 
)    INK_QUEUE_LD64(dst,src)
#define INK_QUEUE_LD64 (   dst,
  src 
)    (ink_queue_load_64((void *)&(dst), (void *)&(src)))

Definition at line 70 of file ink_queue.h.

#define TO_PTR (   _x  )     ((void*)(_x))
#define ZERO_HEAD_P (   _x  ) 

Definition at line 117 of file ink_queue.h.


Typedef Documentation

typedef struct _InkFreeList InkFreeList

Definition at line 168 of file ink_queue.h.

typedef struct _InkFreeList * PInkFreeList

Definition at line 168 of file ink_queue.h.

typedef void* void_p

Definition at line 147 of file ink_queue.h.


Function Documentation

inkcoreapi void ink_atomiclist_init ( InkAtomicList l,
const char *  name,
uint32_t  offset_to_next 
)
void* ink_atomiclist_pop ( InkAtomicList l  ) 
inkcoreapi void* ink_atomiclist_popall ( InkAtomicList l  ) 
inkcoreapi void* ink_atomiclist_push ( InkAtomicList l,
void *  item 
)
void* ink_atomiclist_remove ( InkAtomicList l,
void *  item 
)
InkFreeList* ink_freelist_create ( const char *  name,
uint32_t  type_size,
uint32_t  chunk_size,
uint32_t  alignment 
)

Definition at line 119 of file ink_queue.cc.

References ink_freelist_init().

inkcoreapi void ink_freelist_free ( InkFreeList f,
void *  item 
)
inkcoreapi void ink_freelist_init ( InkFreeList **  fl,
const char *  name,
uint32_t  type_size,
uint32_t  chunk_size,
uint32_t  alignment 
)
inkcoreapi void* ink_freelist_new ( InkFreeList f  ) 
void ink_freelists_dump ( FILE *  f  ) 
void ink_freelists_dump_baselinerel ( FILE *  f  ) 
void ink_freelists_snap_baseline (  ) 
void ink_queue_load_64 ( void *  dst,
void *  src 
)

Definition at line 69 of file ink_queue_utils.cc.


Variable Documentation

inkcoreapi volatile int64_t fastalloc_mem_in_use

Definition at line 54 of file ink_queue.cc.

Referenced by ink_freelist_free(), and ink_freelist_new().

inkcoreapi volatile int64_t fastalloc_mem_total

Definition at line 55 of file ink_queue.cc.

Referenced by ink_freelist_new().

inkcoreapi volatile int64_t freelist_allocated_mem

Definition at line 78 of file ink_queue.cc.

Definition at line 76 of file ink_queue.cc.