You've already forked hackerlibultra
mirror of
https://github.com/HackerN64/hackerlibultra.git
synced 2026-01-21 10:37:53 -08:00
* set build options * remove COMPARE and MDOERN_* switches * remove tools makefile * AR patching is gone too since we want a fullly decomped version * AR is modern * remove cwd changes * edit my own tool to fix compile errors * compile files generated with my own tool instead of the originals * inline modern_gcc makefile * port mips toolchain detection logic * add util.mk for find-command * remove forced AR order and strip/mdebug removal commands * add -mabi=32 to as flags * formatting changes * add clang format files * formatting changes * make libgultra CI work * install mips gcc too * add format check tools * Add formatting to CI * Add CI (#4) * make libgultra CI work * install mips gcc too * remove make setup --------- Co-authored-by: someone2639 <someone2639@gmail.com> * we don't use clang-tidy * use 120 width for formatting * a * address clang-tidy messing up * test * align consecutive macros and declarations * only align macros for now * SpaceAfterCStyleCast: false * format headers too * remove cast space switch because its false by default * pointers on left * AlignConsecutiveBitFields: true * install clang-format and clang-tidy on gh actions * and clang-tools * show diff in format check tool * make CI work --------- Co-authored-by: someone2639 <someone2639@gmail.com> 🙏
114 lines
3.1 KiB
C
114 lines
3.1 KiB
C
|
|
/**************************************************************************
|
|
* *
|
|
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
|
* *
|
|
* These coded instructions, statements, and computer programs contain *
|
|
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
|
* are protected by Federal copyright law. They may not be disclosed *
|
|
* to third parties or copied or duplicated in any form, in whole or *
|
|
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
|
* *
|
|
**************************************************************************/
|
|
|
|
/**************************************************************************
|
|
*
|
|
* Module: region.h
|
|
*
|
|
* $Revision: 1.8 $
|
|
* $Date: 1997/11/26 00:30:56 $
|
|
* $Author: mitu $
|
|
* $Source: /exdisk2/cvs/N64OS/Master/cvsmdev2/PR/include/region.h,v $
|
|
*
|
|
* Description:
|
|
* This file contains macros and structure definitions for the region
|
|
* library.
|
|
*
|
|
**************************************************************************/
|
|
|
|
#ifndef _REGION_H_
|
|
#define _REGION_H_
|
|
|
|
#ifdef _LANGUAGE_C_PLUS_PLUS
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <PR/ultratypes.h>
|
|
|
|
/***************************************
|
|
*
|
|
* Global defines
|
|
*
|
|
*/
|
|
/* Alignment sizes */
|
|
#define ALIGNSZ (sizeof(long long)) /* 8 bytes */
|
|
#define ALIGNOFFST (ALIGNSZ - 1)
|
|
|
|
/* size for storing index to free buffer */
|
|
#define BUF_CTRL_SIZE ALIGNSZ
|
|
|
|
/* Max bufcount = 32K */
|
|
#define MAX_BUFCOUNT 0x8000
|
|
/* code for last free buffer */
|
|
#define BUF_FREE_WO_NEXT 0x8000
|
|
|
|
/*
|
|
* Global defines for alignment size (default is 8-byte alignment)
|
|
*/
|
|
#define OS_RG_ALIGN_2B 2 /* 2 bytes = 16-bit alignment */
|
|
#define OS_RG_ALIGN_4B 4 /* 4 bytes = 32-bit alignment */
|
|
#define OS_RG_ALIGN_8B 8 /* 8 bytes = 64-bit alignment */
|
|
#define OS_RG_ALIGN_16B 16 /* 16 bytes = 128-bit alignment */
|
|
|
|
#define OS_RG_ALIGN_DEFAULT OS_RG_ALIGN_8B
|
|
|
|
/***************************************
|
|
*
|
|
* Macro definitions
|
|
*
|
|
*/
|
|
|
|
/* Perform alignment on input 's' */
|
|
#define ALIGN(s, align) (((u32)(s) + ((align) - 1)) & ~((align) - 1))
|
|
|
|
/***************************************
|
|
*
|
|
* Typedefs & structure definitions
|
|
*
|
|
*/
|
|
/*
|
|
* Structure for region header/control area
|
|
*/
|
|
typedef struct _Region_s {
|
|
u8* r_startBufferAddress; /* start address to data buffer */
|
|
u8* r_endAddress; /* end address of region */
|
|
s32 r_bufferSize; /* size of buffers for this region */
|
|
s32 r_bufferCount; /* up to 32K entries; MSB is used for
|
|
setting end-of-list/used */
|
|
u16 r_freeList; /* point to array index of first
|
|
available memory buffer */
|
|
u16 r_alignSize; /* alignment size (# of bytes) */
|
|
} OSRegion;
|
|
|
|
/*
|
|
* Macro to simplify accessing region header structure
|
|
*/
|
|
#define RP(x) rp->r_##x
|
|
|
|
/***************************************
|
|
*
|
|
* Function prototypes
|
|
*
|
|
*/
|
|
extern void* osCreateRegion(void*, u32, u32, u32);
|
|
extern void* osMalloc(void*);
|
|
extern void osFree(void*, void*);
|
|
extern s32 osGetRegionBufCount(void*);
|
|
extern s32 osGetRegionBufSize(void*);
|
|
|
|
#ifdef _LANGUAGE_C_PLUS_PLUS
|
|
}
|
|
#endif
|
|
|
|
#endif /* _REGION_H_ */
|