Bill Currie
11fee8571c
[zone] Add functions to get and set the tag
...
Getting the tag is possibly useful in general and definitely in
debugging. Setting, I'm not so sure as it should be done when allocated,
but that's not always possible.
Also, correct the return type of z_block_size, though it affected only
Z_Print. While an allocation larger than 4GB is... big for zone, the
blocks do support it, so printing should too.
2022-06-06 12:39:54 +09:00
Bill Currie
2bb0f0c104
[zone] Add support for reference counting to Z_*
...
And use it for Ruamoko object reference counts.
I need reference counts for dealing with block sound buffers since they
can be shared by many channels. I figured I take care of Ruamoko's
reference count location at the same time.
Fixes #27 .
2022-06-06 12:39:54 +09:00
Bill Currie
1be220559a
[zone] Add function to retrieve memory usage
2021-12-27 20:12:03 +09:00
Bill Currie
ad5415a860
[zone] Make zone.h stand-alone
...
ie, including just it from QF will compile.
2021-12-24 06:45:13 +09:00
Bill Currie
39c020908c
[zone] Return the pointer to the global hunk
...
In trying to reduce unnecessary memsets when loading files, I found that
Hunk_RawAllocName already had nonnull on it, so quakefs needed to know
the hunk it was to use. It seemed much better to to go this way (first
step in what is likely to be a lengthy process) than backtracking a
little and removing the nonnull attribute.
2021-12-24 06:45:13 +09:00
Bill Currie
fe98a513bc
[util] Add a function to check hunk pointers
...
Its only real utility is to check that a pointer is not pointing into
freed space.
2021-07-29 15:27:48 +09:00
Bill Currie
8f376a48f8
[util] Add raw versions of hunk alloc and free
...
They do not clear memory and thus are good for situations where speed is
more critical.
2021-07-29 11:44:10 +09:00
Bill Currie
54604d9aa2
[util] Make hunk (optionally) thread-safe
...
For now, the functions check for a null hunk pointer and use the global
hunk (initialized via Memory_Init) if necessary. However, Hunk_Init is
available (and used by Memory_Init) to create a hunk from any arbitrary
memory block. So long as that block is 64-byte aligned, allocations
within the hunk will remain 64-byte aligned.
2021-07-29 11:43:27 +09:00
Bill Currie
c02fcee58a
[util] Make zone functions 64-bit clean
...
This allows nq and qw clients/servers to use over 2GB of memory if
necessary.
2021-07-26 15:43:57 +09:00
Bill Currie
5d1d85f72e
[util] Resurrect Hunk_Print and fix some errors
...
It turned out that Hunk_HighAlloc was not creating a hunk header
(ancient bug by me), and I cleaned up a bunch of name-size issues, along
the way.
2021-02-03 13:21:08 +09:00
Bill Currie
a30433fa9e
Make header protection consistent
...
And delete a couple of useless files.
2020-02-24 12:21:20 +09:00
Bill Currie
9248e8cf01
Update for doxygen 1.8.16
2020-02-11 15:22:42 +09:00
Bill Currie
34bcf7faab
Do a pure/const/noreturn/format attribute pass.
...
I always wanted these, but as gcc now provides warnings for functions that
could do with such attributes, finding all the functions is much easier.
2018-10-09 12:42:21 +09:00
Bill Currie
49ad301d3d
Add improved memory checking to progs.
...
With pr_boundscheck >= 2, pointer access will be checked against allocated
blocks (qfvalgrind?:). Currently extremely basic, but it seems to work.
2012-11-19 20:03:21 +09:00
Bill Currie
bc1b483525
Nuke the rcsid stuff.
...
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie
be9f05ea14
Catch progs zone errors and give a stack dump.
2012-02-06 12:48:22 +09:00
Bill Currie
4432bc0bef
Make the offset in zone dumps more useful.
2011-03-08 22:44:56 +09:00
Bill Currie
4cab5b90e6
new cache allocation scheme. still a couple warts, but at least now there's something to work with, and more importantly, there won't be cache movement anywhere near as often.
2007-03-28 13:09:49 +00:00
Bill Currie
e5b972529b
take a chainsaw to the existing code, cleaning out anything that's obviously unnecessary. preparation for the cache re-write
2007-03-28 09:52:01 +00:00
Bill Currie
818756ace5
add a debug function
2007-03-23 12:36:55 +00:00
Bill Currie
6fbddc3d43
so that's the right way to do groups and subgroups...
2006-12-05 11:40:00 +00:00
Bill Currie
2488465bc9
resurrect Z_Print.
...
This is an imperfect revision of history.
2004-11-14 00:49:00 +00:00
Bill Currie
8770df39e5
start documenting things (progs building still borked)
...
This is an imperfect revision of history.
2004-11-08 23:27:00 +00:00
Bill Currie
ca4b3acd6c
big protototype cleanup. Now, except for a few cases, all non-static
...
prototypes are in headers files.
2002-11-05 19:12:51 +00:00
Bill Currie
a7b5b56a2c
implement Z_Realloc, PR_Zone_Realloc and pr_obj_realloc
2002-05-29 20:58:53 +00:00
Bill Currie
ad8b5670e2
prototype Z_ClearZone
2002-01-23 22:34:46 +00:00
Adam Olsen
9ab9764b7a
- Change QA_alloc to use variable-arguments, allowing for a much more
...
extensible interface.
2001-09-05 18:23:38 +00:00
Adam Olsen
f1a016c8a5
- Refine the Cache_Get callback, to use a void * instead of a char *
...
- Switch alias models over to Cache_Get/Cache_Release
2001-08-31 12:22:45 +00:00
Adam Olsen
6cab8cf4e0
- change Cache_Get calls to Cache_TryGet (which I just added), so they
...
can tollerate failure.
- minor error message tweak (an emptry string is not NULL!)
2001-08-31 03:48:26 +00:00
Adam Olsen
e149094bd2
- rename Qalloc and friends to QA_alloc
...
- add a QA_strdup
- add Cache_{Add,Remove,Get,Release}, for the locking version of the
cache
- Convert libs/audio/* over to locking cache functions
2001-08-30 11:37:50 +00:00
Adam Olsen
f423b8a8e0
Preliminary Qalloc implimentation. Not yet used.
2001-08-29 04:52:03 +00:00
Bill Currie
13ecebd6a0
make Z_Malloc and friends more useful by allowing multiple zones
2001-08-28 05:21:30 +00:00
Bill Currie
2f9fd74a31
zone.c gets its name back
2001-08-28 04:24:40 +00:00
Bill Currie
1c9e1b176f
fear the mighty const correct patch
2001-07-15 07:04:17 +00:00
Bill Currie
f78b973978
move the api headers into include/QF and clean up (most of) the resulting mess.
...
target specific files that I don't build won't compile yet. just put QF/
infront of the offending headers.
Also move ver_check into libqfutils
2001-03-27 20:33:07 +00:00