Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ./../.././../../../../usr/include/vm/util_impl.h
Real path: /usr/include/vm/util_impl.h
Zurück
/* * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. */ #ifndef _VM_UTIL_IMPL_H #define _VM_UTIL_IMPL_H #include <vm/types.h> #include <vm/util.h> #ifdef __cplusplus extern "C" { #endif /* * Eventually, this will have a "sgl_t *sgl_next" field, so that multiple SGLs * can be linked together. */ struct sgl { uint32_t sgl_flags; uint16_t sgl_size; /* sgl_off[] slots allocated */ uint16_t sgl_count; /* sgl_off[] slots used */ u_offset_t sgl_offset[1]; /* flexible array; see note */ }; #define SGL_SIZE(noff) (offsetof(sgl_t, sgl_offset[(noff)])) /* * Offsets in an SGL are [base, base + (1ull << shift)), where shift is * encoded in the low bits of sgl_offset, and is at least SZC_SHIFT(SZC_MIN)). * base must be a multiple of (1ull << shift). */ #define SGL_SHIFT_MASK ((u_offset_t)64 - 1) #define SGL_ENCODE(offset, shift) \ (((offset) & ~SGL_SHIFT_MASK) | ((shift) & SGL_SHIFT_MASK)) #define SGL_DECODE_OFF(v) ((v) & ~SGL_SHIFT_MASK) #define SGL_DECODE_SHIFT(v) ((v) & SGL_SHIFT_MASK) typedef struct offiter_impl { u_offset_t offi_base; /* smallest offset */ u_offset_t offi_bound; /* largest offset */ const sgl_t *offi_sgl; /* sgl we are iterating */ size_t offi_idx; /* slot number we are processing */ } offiter_impl_t; /* * internal-only for now: join two sorted offiters, producing the overlap */ typedef struct offiter_intersect_impl { offiter_t oii_left; offiter_t oii_right; u_offset_t oii_lsoff; /* current range from oii_left */ u_offset_t oii_leoff; u_offset_t oii_rsoff; /* current range from oii_right */ u_offset_t oii_reoff; } offiter_intersect_impl_t; #ifdef __cplusplus } #endif #endif /* _VM_UTIL_IMPL_H */