Documentation Project 1
ContentsIndexHome
PreviousUpNext
sack Namespace

Namespace of custom math routines. (aren't very many of these)

Name 
Description 
This type stores data, it has a self-contained length in bytes of the data stored. 
This is namespace sack::filesys. 
This is namespace sack::image. 
This is namespace sack::logging. 
math 
Namespace for integer fraction math library. Only very basic operations supported. 
This is namespace sack::memory. 
This is namespace sack::timers. 
Name 
Description 
The following table lists functions in this documentation. 
The following table lists types in this documentation. 
The following table lists macros in this documentation. 
 
Name 
Description 
 
Define a routine to call for exit(). This triggers specific code to handle shutdown event registration 
 
This is function sack::is_deadstart_complete. 
Name 
Description 
_32f 
32 bit unsigned decimal output printf format specifier. This would otherwise be defined in <inttypes.h> 
64 bit signed decimal output printf format specifier. This would otherwise be defined in <inttypes.h> 
32 bit hex output printf format specifier. This would otherwise be defined in <inttypes.h> 
32 bit HEX output printf format specifier. This would otherwise be defined in <inttypes.h> 
_64f 
defined( _MSC_VER ) 64 bit unsigned decimal output printf format specifier. This would otherwise be defined in <inttypes.h> as PRIu64 
64 bit signed decimal output printf format specifier. This would otherwise be defined in <inttypes.h> as PRIdFAST64 
64 bit hex output printf format specifier. This would otherwise be defined in <inttypes.h> as PRIxFAST64 
64 bit HEX output printf format specifier. This would otherwise be defined in <inttypes.h> as PRIxFAST64 
Modified WIDE wrapper that actually forces non-unicode string. 
This is macro sack::_WIDE. 
This is macro sack::_WIDE__FILE__. 
format string for output _32 as unsigned decimal. Size changes by platform. Non unicode. 
format string for output _32 as unsigned decimal. Size changes by platform. Non unicode. 
format string for output _32 as unsigned hex. Size changes by platform. Non unicode. 
format string for output _32 as unsigned HEX. Size changes by platform. Non unicode. 
format string for output PTRSZVAL as unsigned hex. Size changes by platform. Non unicode. 
format string for output PTRSZVAL as unsigned hex. Size changes by platform. Non unicode. 
This is macro sack::cWIDE. 
in NDEBUG mode, pass nothing 
in NDEBUG mode, pass nothing 
in NDEBUG mode, pass nothing.

This function allows specification of DBG_RELAY or DBG_SRC under debug compilation. Otherwise, the simple AddLink macro should be used. DBG_RELAY can be used to forward file and line information which has been passed via DBG_PASS declaration in the function parameters.

This is a part of a set of macros which allow additional logging information to be passed.

These 3 are the most commonly used.

DBG_SRC - this passes the current __FILE__, __LINE__ parameters.
DBG_PASS - this is used on a function declaration, is a filename and line number from DBG_SRC or DBG_RELAY.
DBG_RELAY -... more 
in NDEBUG mode, pass nothing 
in NDEBUG mode, pass nothing 
This is macro sack::DBG_VARSRC. 
This is macro sack::DBG_VOIDPASS. 
in NDEBUG mode, pass nothing 
#define DBG_LEADSRC in NDEBUG mode, declare (void) 
#error blah general macros for linking lists using 
exit 
This is macro sack::exit. 
typedef enum { FALSE, TRUE } LOGICAL; // smallest information 
a constant text string that represents the current source filename and line... fourmated as "source.c(11) :" 
specify a consistant macro to format file and line information for printf formated strings. 
#define FILELINE_LEADPASS CTEXTSTR pFile, _32 nLine, specify a consistant macro to define file and line parameters. This are appended parameters, and common usage is to only use these with _DEBUG set. 
specify a consistant macro to forward file and line parameters. This are appended parameters, and common usage is to only use these with _DEBUG set. 
specify a consistant macro to pass current file and line information. This are appended parameters, and common usage is to only use these with _DEBUG set. 
#define FILELINE_NULL , NULL, 0 #define FILELINE_VOIDNULL NULL, 0 define static parameters which are the declaration's current file and line, for stubbing in where debugging is being stripped. usage FILELINE_VARSRC: // declare pFile and nLine variables. 
#define FILELINE_LEADSRC (CTEXTSTR)_WIDE(__FILE__), __LINE__, specify a consistant macro to define file and line parameters, to functions with otherwise void param lists. This are appended parameters, and common usage is to only use these with _DEBUG set. 
specify a consistant macro to forward file and line parameters, to functions which have void parameter lists without this information. This are appended parameters, and common usage is to only use these with _DEBUG set. 
specify a consistant macro to pass current file and line information, to functions which void param lists. This are appended parameters, and common usage is to only use these with _DEBUG set. 
how many bits to add to make sure we round to the next greater index if even 1 bit overflows 
declare a set of flags... 
how big the flag set is in count of FLAGSETTYPEs required in a row ( size of the array of FLAGSETTYPE that contains n bits) 
the default type to use for flag sets - flag sets are arrays of bits which can be toggled on and off by an index. 
the index of the FLAGSETTYPE which contains the bit in question 
the number of bits a specific type is. 
get the value of a field 
This is macro sack::GetMyThreadID. 
This is macro sack::GetMyThreadIDNL. 
this is now always the case it's a safer solution anyhow... 
this has two expressions duplicated... but in being so safe in this expression, the self-circular link needs to be duplicated. GrabThing is used for nodes which are circularly bound 
An index which is not valid; equates to 0xFFFFFFFFUL or negative one cast as an INDEX... ((INDEX)-1). 
Link a node to the end of a list. Link thing inserts the new node as the new head of the list. 
Link a new node into the list. 
put 'Thing' after 'node 
put 'Thing' before 'node'... so (*node->me) = thing 
the mast in the dword shifted to the left to overlap the field in the word 
masks value with the mask size, then applies that mask back to the correct word indexing 
32 bits max for range on mask 
define MAX_MAX_ROUND factor based on MASKSET_READTYPE - how to read it... 
the maximum number of bits storable in a type 
the mask in the dword resulting from shift-right. (gets a mask of X bits in length) 
declare a set of flags... 
round up to the next count of types that fits 1 bit - used as a cieling round factor 
declare a mask set. 
gives a 32 bit mask possible from flagset.. 
The number of bytes the set would be. 
gives byte index... 
byte index of the start of the mask 
how many bits the type specified can hold 
Go to the next node with links declared by DeclareLink 
everything else is called a thing... should probably migrate to using this... 
try and define a way to emit comipler messages... but like no compilers support standard ways to do this accross the board. 
try and define a way to emit comipler messages... but like no compilers support standard ways to do this accross the board. 
This is macro sack::PTRSZVALf. 
format string for output PTRSZVAL as unsigned decimal. Size changes by platform. 
format string for output PTRSZVAL as unsigned hex. Size changes by platform. 
This is macro sack::RelinkThing. 
clear a single flag index 
set a single flag index 
set a field index to a value 
This is macro sack::STRSYM. 
test if a flags is set 
This is macro sack::TOCHR. 
reverse a flag from 1 to 0 and vice versa 
This is macro sack::TOSTR. 
TRUE 
Define TRUE when not previously defined in the platform. TRUE is (!FALSE) so anything not 0 is true. 
Remove a node from a list. Requires only the node. 
WIDE 
This is macro sack::WIDE. 
This is macro sack::WIDE__FILE__. 
Name 
Description 
_16 
Would be otherwise defined in stdint.h as uint16_t 
_64 
have to do this on a per structure basis - otherwise any included headers with structures to use will get FUCKED 
_8 
portability type for porting legacy 16 bit applications. Would be otherwise defined in stdint.h as uint16_t 
#endif
 

  • several compilers are rather picky about the types of data
  • used for bit field declaration, therefore this type
  • should be used instead of _32

 

This is a pointer to constant data. void const *. Compatible with things like char const *. 
constant text string content 
an unsigned type meant to index arrays. (By convention, arrays are not indexed negatively.) An index which is not valid is INVALID_INDEX, which equates to 0xFFFFFFFFUL or negative one cast as an INDEX... ((INDEX)-1). 
Meant to hold boolean and only boolean values. Should be implemented per-platform as appropriate for the bool type the compiler provides. 
P_0 
cannot declare _0 since that overloads the vector library definition for origin (0,0,0,0,...) typedef void _0; // totally unusable to declare 0 size things.
#ifdef __NO_WIN32API__ #define P_0 void* #ifdef __cplusplus_cli // long is 32, int is 64 #define _32 unsigned long #else #define _32 unsigned int #endif #define _8 unsigned char #define P_8 _8 * #define _16 unsigned short #define P_16 _16 * #define P_32 _32 * #define PC_32 const _32 * #define S_8 signed char #define PS_8 S_8 * #define S_16 signed short #define PS_16 S_16 * #define S_32 signed long #define PS_32 S_32 * #define X_8 char... more 
P_16 
Would be otherwise defined in stdint.h as uint16_t 
P_32 
An pointer to an unsigned integer type that is 32 bits long. 
P_64 
A pointer to an unsigned integer type that is 64 bits long. 
P_8 
Would be otherwise defined in stdint.h as uint8_t 
An pointer to a constant unsigned integer type that is 32 bits long. 
char const *const 
This is type sack::pid_t. 
This is a pointer. It is a void*. It is meant to point to a single thing, and cannot be used to reference arrays of bytes without recasting. 
An pointer to a signed integer type that is 16 bits long. 
A pointer to a signed integer type that is 32 bits long. 
A pointer to a signed integer type that is 64 bits long. 
PS_8 
An pointer to a signed integer type that is 8 bits long. 
see PTRSZVAL this just has more letters. 
This is an unsigned integer type that has the same length as a pointer, so that simple byte offset calculations can be performed against an integer. non-standard compiler extensions allow void* to be added with an index and increase in bytes, but void itself is of 0 size, so anything times 0 should be 0, and no offset should apply. So translation of pointers to integer types allows greater flexibility without relying on compiler features which may not exist. 
An pointer to a volatile unsigned integer type that is 32 bits long. 
An pointer to a volatile unsigned integer type that is 64 bits long. 
An pointer to a volatile pointer size type that is as long as a pointer. 
This is a pointer to wchar_t. A 16 bit value that is character data, and is not signed or unsigned. 
PX_8 
A pointer to character type, it is not signed or unsigned. 
S_16 
A signed integer type that is 16 bits long. 
S_32 
A signed integer type that is 32 bits long. 
S_64 
A signed integer type that is 64 bits long. 
S_8 
A signed integer type that is 8 bits long. 
a text 8 bit character 
A non constant array of TEXTCHAR. A pointer to TEXTCHAR. A pointer to non-constant characters. (A non-static string probably) 
This should be for several years a sufficiently large type to represent threads and processes. 
X_16 
may consider changing this to P_16 for unicode... 
X_8 
A character type, it is not signed or unsigned. 
Copyright (c) 2010. All rights reserved.
What do you think about this topic? Send feedback!