Defines | Typedefs | Functions | Variables

ink_queue.cc File Reference

A brief file description. More...

#include "ink_config.h"
#include <assert.h>
#include <memory.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/mman.h>
#include "ink_atomic.h"
#include "ink_queue.h"
#include "ink_memory.h"
#include "ink_error.h"
#include "ink_assert.h"
#include "ink_queue_ext.h"
#include "ink_align.h"
Include dependency graph for ink_queue.cc:

Go to the source code of this file.

Defines

#define MEMPROTECT_SIZE   0x200
#define fl_memadd(_x_)   ink_atomic_increment(&freelist_allocated_mem, (int64_t) (_x_));
#define ADDRESS_OF_NEXT(x, offset)   ((void **)((char *)x + offset))

Typedefs

typedef volatile void * volatile_void_p

Functions

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

Variables

inkcoreapi volatile int64_t fastalloc_mem_in_use = 0
inkcoreapi volatile int64_t fastalloc_mem_total = 0
ink_freelist_listfreelists = NULL
inkcoreapi volatile int64_t freelist_allocated_mem = 0
int fastmemtotal = 0

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.cc.


Define Documentation

#define ADDRESS_OF_NEXT (   x,
  offset 
)    ((void **)((char *)x + offset))
#define fl_memadd (   _x_  )     ink_atomic_increment(&freelist_allocated_mem, (int64_t) (_x_));

Definition at line 80 of file ink_queue.cc.

Referenced by ink_freelist_new().

#define MEMPROTECT_SIZE   0x200

Definition at line 70 of file ink_queue.cc.

Referenced by ink_freelist_new().


Typedef Documentation

typedef volatile void* volatile_void_p

Definition at line 241 of file ink_queue.cc.


Function Documentation

void ink_atomiclist_init ( InkAtomicList l,
const char *  name,
uint32_t  offset_to_next 
)
void* ink_atomiclist_pop ( InkAtomicList l  ) 
void* ink_atomiclist_popall ( InkAtomicList l  ) 
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().

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

Variable Documentation

inkcoreapi volatile int64_t fastalloc_mem_in_use = 0

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 = 0

Definition at line 55 of file ink_queue.cc.

Referenced by ink_freelist_new().

int fastmemtotal = 0

Definition at line 134 of file ink_queue.cc.

Referenced by ink_freelist_new(), and SignalContinuation::periodic().

inkcoreapi volatile int64_t freelist_allocated_mem = 0

Definition at line 78 of file ink_queue.cc.

Definition at line 76 of file ink_queue.cc.