Files
hakmem/core/box/smallsegment_v4_box.h

27 lines
1.1 KiB
C
Raw Normal View History

// smallsegment_v4_box.h - Small-object専用 Segment Box の型定義と API 宣言
// Phase v4-mid-0: SmallSegment の型と API だけを先行定義。実装は後フェーズ。
#pragma once
#include <stdint.h>
// Forward declaration for SmallPageMeta
struct small_page_v4;
// SmallSegment: class_idx ごとに小さな segment を管理
// 基本構造: base, page metadata array
typedef struct small_segment_v4 {
uintptr_t base; // Segment base address
uint32_t num_pages; // Number of pages in segment
uint32_t owner_tid; // Thread ID that owns this segment
uint32_t magic; // Magic number for validation
// Page metadata array (flexible, actual size depends on SMALL_PAGE_SIZE / SMALL_SEGMENT_SIZE)
// struct small_page_v4* page_meta[];
} small_segment_v4;
// API: Segment 取得・解放
small_segment_v4* smallsegment_v4_acquire(int class_idx);
void smallsegment_v4_release_if_empty(small_segment_v4* seg, void* page, int class_idx);
// API: ページメタデータの取得
struct small_page_v4* smallsegment_v4_page_meta_of(small_segment_v4* seg, void* ptr);