Merge branch 'master' of git://github.com/erikcharlebois/factor
commit
2b4a55b53a
|
@ -4,7 +4,7 @@ USING: accessors alien alien.c-types alien.libraries arrays
|
|||
assocs classes combinators combinators.short-circuit
|
||||
compiler.units effects grouping kernel parser sequences
|
||||
splitting words fry locals lexer namespaces summary math
|
||||
vocabs.parser ;
|
||||
vocabs.parser words.constant ;
|
||||
IN: alien.parser
|
||||
|
||||
: parse-c-type-name ( name -- word )
|
||||
|
@ -51,14 +51,17 @@ ERROR: *-in-c-type-name name ;
|
|||
dup "*" tail?
|
||||
[ *-in-c-type-name ] when ;
|
||||
|
||||
: CREATE-C-TYPE ( -- word )
|
||||
scan validate-c-type-name current-vocab create {
|
||||
: (CREATE-C-TYPE) ( word -- word )
|
||||
validate-c-type-name current-vocab create {
|
||||
[ fake-definition ]
|
||||
[ set-word ]
|
||||
[ reset-c-type ]
|
||||
[ ]
|
||||
} cleave ;
|
||||
|
||||
: CREATE-C-TYPE ( -- word )
|
||||
scan (CREATE-C-TYPE) ;
|
||||
|
||||
<PRIVATE
|
||||
GENERIC: return-type-name ( type -- name )
|
||||
|
||||
|
@ -72,6 +75,18 @@ M: pointer return-type-name to>> return-type-name CHAR: * suffix ;
|
|||
|
||||
PRIVATE>
|
||||
|
||||
: define-enum-member ( word-string value -- next-value )
|
||||
[ create-in ] dip [ define-constant ] keep 1 + ;
|
||||
|
||||
: parse-enum-member ( word-string value -- next-value )
|
||||
over "{" =
|
||||
[ 2drop scan scan-object define-enum-member "}" expect ]
|
||||
[ define-enum-member ] if ;
|
||||
|
||||
: parse-enum-members ( counter -- )
|
||||
scan dup ";" = not
|
||||
[ swap parse-enum-member parse-enum-members ] [ 2drop ] if ;
|
||||
|
||||
: scan-function-name ( -- return function )
|
||||
scan-c-type scan parse-pointers ;
|
||||
|
||||
|
|
|
@ -58,15 +58,15 @@ HELP: TYPEDEF:
|
|||
{ $notes "This word differs from " { $link typedef } " in that it runs at parse time, to ensure correct ordering of operations when loading source files. Words defined in source files are compiled before top-level forms are run, so if a source file defines C binding words and uses " { $link typedef } ", the type alias won't be available at compile time." } ;
|
||||
|
||||
HELP: C-ENUM:
|
||||
{ $syntax "C-ENUM: words... ;" }
|
||||
{ $values { "words" "a sequence of word names" } }
|
||||
{ $description "Creates a sequence of word definitions in the current vocabulary. Each word pushes an integer according to its index in the enumeration definition. The first word pushes 0." }
|
||||
{ $syntax "C-ENUM: type/f words... ;" }
|
||||
{ $values { "type" "a name to typedef to int or f" } { "words" "a sequence of word names" } }
|
||||
{ $description "Creates a sequence of word definitions in the current vocabulary. Each word pushes an integer according to the rules of C enums." }
|
||||
{ $notes "This word emulates a C-style " { $snippet "enum" } " in Factor. While this feature can be used for any purpose, using integer constants is discouraged unless it is for interfacing with C libraries. Factor code should use " { $link "words.symbol" } " or " { $link "singletons" } " instead." }
|
||||
{ $examples
|
||||
"Here is an example enumeration definition:"
|
||||
{ $code "C-ENUM: red green blue ;" }
|
||||
{ $code "C-ENUM: color_t red { green 3 } blue ;" }
|
||||
"It is equivalent to the following series of definitions:"
|
||||
{ $code "CONSTANT: red 0" "CONSTANT: green 1" "CONSTANT: blue 2" }
|
||||
{ $code "CONSTANT: red 0" "CONSTANT: green 3" "CONSTANT: blue 4" }
|
||||
} ;
|
||||
|
||||
HELP: C-TYPE:
|
||||
|
|
|
@ -25,8 +25,10 @@ SYNTAX: TYPEDEF:
|
|||
scan-c-type CREATE-C-TYPE dup save-location typedef ;
|
||||
|
||||
SYNTAX: C-ENUM:
|
||||
";" parse-tokens
|
||||
[ [ create-in ] dip define-constant ] each-index ;
|
||||
scan dup "f" =
|
||||
[ drop ]
|
||||
[ (CREATE-C-TYPE) dup save-location int swap typedef ] if
|
||||
0 parse-enum-members ;
|
||||
|
||||
SYNTAX: C-TYPE:
|
||||
void CREATE-C-TYPE typedef ;
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
! Copyright (c) 2007 Sampo Vuori
|
||||
! Copyright (c) 2008 Matthew Willis
|
||||
!
|
||||
|
||||
|
||||
! Adapted from cairo.h, version 1.5.14
|
||||
! License: http://factorcode.org/license.txt
|
||||
|
||||
|
@ -44,8 +46,7 @@ TYPEDEF: void* cairo_destroy_func_t
|
|||
STRUCT: cairo_user_data_key_t
|
||||
{ unused int } ;
|
||||
|
||||
TYPEDEF: int cairo_status_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_status_t
|
||||
CAIRO_STATUS_SUCCESS
|
||||
CAIRO_STATUS_NO_MEMORY
|
||||
CAIRO_STATUS_INVALID_RESTORE
|
||||
|
@ -125,8 +126,7 @@ FUNCTION: void
|
|||
cairo_pop_group_to_source ( cairo_t* cr ) ;
|
||||
|
||||
! Modify state
|
||||
TYPEDEF: int cairo_operator_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_operator_t
|
||||
CAIRO_OPERATOR_CLEAR
|
||||
|
||||
CAIRO_OPERATOR_SOURCE
|
||||
|
@ -163,8 +163,7 @@ cairo_set_source_surface ( cairo_t* cr, cairo_surface_t* surface, double x, doub
|
|||
FUNCTION: void
|
||||
cairo_set_tolerance ( cairo_t* cr, double tolerance ) ;
|
||||
|
||||
TYPEDEF: int cairo_antialias_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_antialias_t
|
||||
CAIRO_ANTIALIAS_DEFAULT
|
||||
CAIRO_ANTIALIAS_NONE
|
||||
CAIRO_ANTIALIAS_GRAY
|
||||
|
@ -173,8 +172,7 @@ C-ENUM:
|
|||
FUNCTION: void
|
||||
cairo_set_antialias ( cairo_t* cr, cairo_antialias_t antialias ) ;
|
||||
|
||||
TYPEDEF: int cairo_fill_rule_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_fill_rule_t
|
||||
CAIRO_FILL_RULE_WINDING
|
||||
CAIRO_FILL_RULE_EVEN_ODD ;
|
||||
|
||||
|
@ -184,8 +182,7 @@ cairo_set_fill_rule ( cairo_t* cr, cairo_fill_rule_t fill_rule ) ;
|
|||
FUNCTION: void
|
||||
cairo_set_line_width ( cairo_t* cr, double width ) ;
|
||||
|
||||
TYPEDEF: int cairo_line_cap_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_line_cap_t
|
||||
CAIRO_LINE_CAP_BUTT
|
||||
CAIRO_LINE_CAP_ROUND
|
||||
CAIRO_LINE_CAP_SQUARE ;
|
||||
|
@ -193,8 +190,7 @@ C-ENUM:
|
|||
FUNCTION: void
|
||||
cairo_set_line_cap ( cairo_t* cr, cairo_line_cap_t line_cap ) ;
|
||||
|
||||
TYPEDEF: int cairo_line_join_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_line_join_t
|
||||
CAIRO_LINE_JOIN_MITER
|
||||
CAIRO_LINE_JOIN_ROUND
|
||||
CAIRO_LINE_JOIN_BEVEL ;
|
||||
|
@ -379,35 +375,30 @@ STRUCT: cairo_font_extents_t
|
|||
{ max_x_advance double }
|
||||
{ max_y_advance double } ;
|
||||
|
||||
TYPEDEF: int cairo_font_slant_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_font_slant_t
|
||||
CAIRO_FONT_SLANT_NORMAL
|
||||
CAIRO_FONT_SLANT_ITALIC
|
||||
CAIRO_FONT_SLANT_OBLIQUE ;
|
||||
|
||||
TYPEDEF: int cairo_font_weight_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_font_weight_t
|
||||
CAIRO_FONT_WEIGHT_NORMAL
|
||||
CAIRO_FONT_WEIGHT_BOLD ;
|
||||
|
||||
TYPEDEF: int cairo_subpixel_order_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_subpixel_order_t
|
||||
CAIRO_SUBPIXEL_ORDER_DEFAULT
|
||||
CAIRO_SUBPIXEL_ORDER_RGB
|
||||
CAIRO_SUBPIXEL_ORDER_BGR
|
||||
CAIRO_SUBPIXEL_ORDER_VRGB
|
||||
CAIRO_SUBPIXEL_ORDER_VBGR ;
|
||||
|
||||
TYPEDEF: int cairo_hint_style_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_hint_style_t
|
||||
CAIRO_HINT_STYLE_DEFAULT
|
||||
CAIRO_HINT_STYLE_NONE
|
||||
CAIRO_HINT_STYLE_SLIGHT
|
||||
CAIRO_HINT_STYLE_MEDIUM
|
||||
CAIRO_HINT_STYLE_FULL ;
|
||||
|
||||
TYPEDEF: int cairo_hint_metrics_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_hint_metrics_t
|
||||
CAIRO_HINT_METRICS_DEFAULT
|
||||
CAIRO_HINT_METRICS_OFF
|
||||
CAIRO_HINT_METRICS_ON ;
|
||||
|
@ -527,8 +518,7 @@ cairo_font_face_get_reference_count ( cairo_font_face_t* font_face ) ;
|
|||
FUNCTION: cairo_status_t
|
||||
cairo_font_face_status ( cairo_font_face_t* font_face ) ;
|
||||
|
||||
TYPEDEF: int cairo_font_type_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_font_type_t
|
||||
CAIRO_FONT_TYPE_TOY
|
||||
CAIRO_FONT_TYPE_FT
|
||||
CAIRO_FONT_TYPE_WIN32
|
||||
|
@ -640,8 +630,7 @@ cairo_get_target ( cairo_t* cr ) ;
|
|||
FUNCTION: cairo_surface_t*
|
||||
cairo_get_group_target ( cairo_t* cr ) ;
|
||||
|
||||
TYPEDEF: int cairo_path_data_type_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_path_data_type_t
|
||||
CAIRO_PATH_MOVE_TO
|
||||
CAIRO_PATH_LINE_TO
|
||||
CAIRO_PATH_CURVE_TO
|
||||
|
@ -707,8 +696,7 @@ cairo_surface_get_reference_count ( cairo_surface_t* surface ) ;
|
|||
FUNCTION: cairo_status_t
|
||||
cairo_surface_status ( cairo_surface_t* surface ) ;
|
||||
|
||||
TYPEDEF: int cairo_surface_type_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_surface_type_t
|
||||
CAIRO_SURFACE_TYPE_IMAGE
|
||||
CAIRO_SURFACE_TYPE_PDF
|
||||
CAIRO_SURFACE_TYPE_PS
|
||||
|
@ -771,8 +759,7 @@ cairo_surface_show_page ( cairo_surface_t* surface ) ;
|
|||
|
||||
! Image-surface functions
|
||||
|
||||
TYPEDEF: int cairo_format_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_format_t
|
||||
CAIRO_FORMAT_ARGB32
|
||||
CAIRO_FORMAT_RGB24
|
||||
CAIRO_FORMAT_A8
|
||||
|
@ -844,8 +831,7 @@ cairo_pattern_get_user_data ( cairo_pattern_t* pattern, cairo_user_data_key_t* k
|
|||
FUNCTION: cairo_status_t
|
||||
cairo_pattern_set_user_data ( cairo_pattern_t* pattern, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy ) ;
|
||||
|
||||
TYPEDEF: int cairo_pattern_type_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_pattern_type_t
|
||||
CAIRO_PATTERN_TYPE_SOLID
|
||||
CAIRO_PATTERN_TYPE_SURFACE
|
||||
CAIRO_PATTERN_TYPE_LINEAR
|
||||
|
@ -866,8 +852,7 @@ cairo_pattern_set_matrix ( cairo_pattern_t* pattern, cairo_matrix_t* matrix ) ;
|
|||
FUNCTION: void
|
||||
cairo_pattern_get_matrix ( cairo_pattern_t* pattern, cairo_matrix_t* matrix ) ;
|
||||
|
||||
TYPEDEF: int cairo_extend_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_extend_t
|
||||
CAIRO_EXTEND_NONE
|
||||
CAIRO_EXTEND_REPEAT
|
||||
CAIRO_EXTEND_REFLECT
|
||||
|
@ -879,8 +864,7 @@ cairo_pattern_set_extend ( cairo_pattern_t* pattern, cairo_extend_t extend ) ;
|
|||
FUNCTION: cairo_extend_t
|
||||
cairo_pattern_get_extend ( cairo_pattern_t* pattern ) ;
|
||||
|
||||
TYPEDEF: int cairo_filter_t
|
||||
C-ENUM:
|
||||
C-ENUM: cairo_filter_t
|
||||
CAIRO_FILTER_FAST
|
||||
CAIRO_FILTER_GOOD
|
||||
CAIRO_FILTER_BEST
|
||||
|
|
|
@ -8,7 +8,7 @@ IN: cocoa.application
|
|||
|
||||
: <NSString> ( str -- alien ) <CFString> -> autorelease ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
NSApplicationDelegateReplySuccess
|
||||
NSApplicationDelegateReplyCancel
|
||||
NSApplicationDelegateReplyFailure ;
|
||||
|
|
|
@ -6,8 +6,7 @@ images images.memory core-graphics.types core-foundation.utilities
|
|||
opengl.gl literals ;
|
||||
IN: core-graphics
|
||||
|
||||
! CGImageAlphaInfo
|
||||
C-ENUM:
|
||||
C-ENUM: CGImageAlphaInfo
|
||||
kCGImageAlphaNone
|
||||
kCGImageAlphaPremultipliedLast
|
||||
kCGImageAlphaPremultipliedFirst
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Erik Charlebois
|
|
@ -0,0 +1,7 @@
|
|||
! Copyright (C) 2010 Erik Charlebois.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: images.testing ;
|
||||
IN: images.pgm.tests
|
||||
|
||||
"vocab:images/testing/pgm/radial.binary.pgm" decode-test
|
||||
"vocab:images/testing/pgm/radial.ascii.pgm" decode-test
|
|
@ -0,0 +1,62 @@
|
|||
! Copyright (C) 2010 Erik Charlebois.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors alien.c-types ascii combinators images images.loader
|
||||
io io.encodings.ascii io.encodings.string kernel locals make math
|
||||
math.parser sequences specialized-arrays ;
|
||||
SPECIALIZED-ARRAY: ushort
|
||||
IN: images.pgm
|
||||
|
||||
SINGLETON: pgm-image
|
||||
"pgm" pgm-image register-image-class
|
||||
|
||||
: read-token ( -- token )
|
||||
[ read1 dup blank?
|
||||
[ t ]
|
||||
[ dup CHAR: # =
|
||||
[ "\n" read-until 2drop t ]
|
||||
[ f ] if
|
||||
] if
|
||||
] [ drop ] while
|
||||
" \n\r\t" read-until drop swap
|
||||
prefix ascii decode ;
|
||||
|
||||
: read-number ( -- number )
|
||||
read-token string>number ;
|
||||
|
||||
:: read-numbers ( n lim -- )
|
||||
n lim = [
|
||||
read-number ,
|
||||
n 1 + lim read-numbers
|
||||
] unless ;
|
||||
|
||||
:: read-pgm ( -- image )
|
||||
read-token :> type
|
||||
read-number :> width
|
||||
read-number :> height
|
||||
read-number :> max
|
||||
width height * :> npixels
|
||||
max 256 >= :> wide
|
||||
|
||||
type {
|
||||
{ "P2" [ [ 0 npixels read-numbers ] wide [ ushort-array{ } ] [ B{ } ] if make ] }
|
||||
{ "P5" [ wide [ 2 ] [ 1 ] if npixels * read ] }
|
||||
} case :> data
|
||||
|
||||
image new
|
||||
L >>component-order
|
||||
{ width height } >>dim
|
||||
f >>upside-down?
|
||||
data >>bitmap
|
||||
wide [ ushort-components ] [ ubyte-components ] if >>component-type ;
|
||||
|
||||
M: pgm-image stream>image
|
||||
drop [ read-pgm ] with-input-stream ;
|
||||
|
||||
M: pgm-image image>stream
|
||||
drop {
|
||||
[ drop "P5\n" ascii encode write ]
|
||||
[ dim>> first number>string " " append ascii encode write ]
|
||||
[ dim>> second number>string "\n" append ascii encode write ]
|
||||
[ component-type>> ubyte-components = [ "255\n" ] [ "65535\n" ] if ascii encode write ]
|
||||
[ bitmap>> write ]
|
||||
} cleave ;
|
|
@ -0,0 +1 @@
|
|||
Image loading for PGM image files.
|
|
@ -0,0 +1 @@
|
|||
Erik Charlebois
|
|
@ -0,0 +1,7 @@
|
|||
! Copyright (C) 2010 Erik Charlebois.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: images.testing ;
|
||||
IN: images.ppm.tests
|
||||
|
||||
"vocab:images/testing/ppm/binary.ppm" decode-test
|
||||
"vocab:images/testing/ppm/ascii.ppm" decode-test
|
|
@ -0,0 +1,59 @@
|
|||
! Copyright (C) 2010 Erik Charlebois.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors ascii combinators images images.loader io
|
||||
io.encodings.ascii io.encodings.string kernel locals make math
|
||||
math.parser prettyprint sequences ;
|
||||
IN: images.ppm
|
||||
|
||||
SINGLETON: ppm-image
|
||||
"ppm" ppm-image register-image-class
|
||||
|
||||
: read-token ( -- token )
|
||||
[ read1 dup blank?
|
||||
[ t ]
|
||||
[ dup CHAR: # =
|
||||
[ "\n" read-until 2drop t ]
|
||||
[ f ] if
|
||||
] if
|
||||
] [ drop ] while
|
||||
" \n\r\t" read-until drop swap
|
||||
prefix ascii decode ;
|
||||
|
||||
: read-number ( -- number )
|
||||
read-token string>number ;
|
||||
|
||||
:: read-numbers ( n lim -- )
|
||||
n lim = [
|
||||
read-number ,
|
||||
n 1 + lim read-numbers
|
||||
] unless ;
|
||||
|
||||
:: read-ppm ( -- image )
|
||||
read-token :> type
|
||||
read-number :> width
|
||||
read-number :> height
|
||||
read-number :> max
|
||||
width height 3 * * :> npixels
|
||||
type {
|
||||
{ "P3" [ [ 0 npixels read-numbers ] B{ } make ] }
|
||||
{ "P6" [ npixels read ] }
|
||||
} case :> data
|
||||
|
||||
image new
|
||||
RGB >>component-order
|
||||
{ width height } >>dim
|
||||
f >>upside-down?
|
||||
data >>bitmap
|
||||
ubyte-components >>component-type ;
|
||||
|
||||
M: ppm-image stream>image
|
||||
drop [ read-ppm ] with-input-stream ;
|
||||
|
||||
M: ppm-image image>stream
|
||||
drop {
|
||||
[ drop "P6\n" ascii encode write ]
|
||||
[ dim>> first number>string " " append ascii encode write ]
|
||||
[ dim>> second number>string "\n" append ascii encode write ]
|
||||
[ drop "255\n" ascii encode write ]
|
||||
[ bitmap>> write ]
|
||||
} cleave ;
|
|
@ -0,0 +1 @@
|
|||
Image loading for PPM image files.
|
|
@ -8,8 +8,7 @@ IN: pango.fonts
|
|||
|
||||
LIBRARY: pango
|
||||
|
||||
TYPEDEF: int PangoStyle
|
||||
C-ENUM:
|
||||
C-ENUM: PangoStyle
|
||||
PANGO_STYLE_NORMAL
|
||||
PANGO_STYLE_OBLIQUE
|
||||
PANGO_STYLE_ITALIC ;
|
||||
|
|
|
@ -12,7 +12,7 @@ IN: unicode.breaks
|
|||
<PRIVATE
|
||||
! Grapheme breaks
|
||||
|
||||
C-ENUM: Any L V T LV LVT Extend Control CR LF
|
||||
C-ENUM: f Any L V T LV LVT Extend Control CR LF
|
||||
SpacingMark Prepend graphemes ;
|
||||
|
||||
: jamo-class ( ch -- class )
|
||||
|
@ -131,7 +131,7 @@ VALUE: word-break-table
|
|||
"vocab:unicode/data/WordBreakProperty.txt" load-interval-file
|
||||
to: word-break-table
|
||||
|
||||
C-ENUM: wOther wCR wLF wNewline wExtend wFormat wKatakana wALetter wMidLetter
|
||||
C-ENUM: f wOther wCR wLF wNewline wExtend wFormat wKatakana wALetter wMidLetter
|
||||
wMidNum wMidNumLet wNumeric wExtendNumLet words ;
|
||||
|
||||
: word-break-classes ( -- table ) ! Is there a way to avoid this?
|
||||
|
|
|
@ -34,7 +34,7 @@ STRUCT: vm
|
|||
|
||||
: vm-field-offset ( field -- offset ) vm offset-of ; inline
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
collect-nursery-op
|
||||
collect-aging-op
|
||||
collect-to-tenured-op
|
||||
|
|
|
@ -146,8 +146,7 @@ CONSTANT: TokenSessionReference 14
|
|||
CONSTANT: TokenSandBoxInert 15
|
||||
! } TOKEN_INFORMATION_CLASS;
|
||||
|
||||
TYPEDEF: DWORD ACCESS_MODE
|
||||
C-ENUM:
|
||||
C-ENUM: ACCESS_MODE
|
||||
NOT_USED_ACCESS
|
||||
GRANT_ACCESS
|
||||
SET_ACCESS
|
||||
|
@ -156,21 +155,18 @@ C-ENUM:
|
|||
SET_AUDIT_SUCCESS
|
||||
SET_AUDIT_FAILURE ;
|
||||
|
||||
TYPEDEF: DWORD MULTIPLE_TRUSTEE_OPERATION
|
||||
C-ENUM:
|
||||
C-ENUM: MULTIPLE_TRUSTEE_OPERATION
|
||||
NO_MULTIPLE_TRUSTEE
|
||||
TRUSTEE_IS_IMPERSONATE ;
|
||||
|
||||
TYPEDEF: DWORD TRUSTEE_FORM
|
||||
C-ENUM:
|
||||
C-ENUM: TRUSTEE_FORM
|
||||
TRUSTEE_IS_SID
|
||||
TRUSTEE_IS_NAME
|
||||
TRUSTEE_BAD_FORM
|
||||
TRUSTEE_IS_OBJECTS_AND_SID
|
||||
TRUSTEE_IS_OBJECTS_AND_NAME ;
|
||||
|
||||
TYPEDEF: DWORD TRUSTEE_TYPE
|
||||
C-ENUM:
|
||||
C-ENUM: TRUSTEE_TYPE
|
||||
TRUSTEE_IS_UNKNOWN
|
||||
TRUSTEE_IS_USER
|
||||
TRUSTEE_IS_GROUP
|
||||
|
@ -181,8 +177,7 @@ C-ENUM:
|
|||
TRUSTEE_IS_INVALID
|
||||
TRUSTEE_IS_COMPUTER ;
|
||||
|
||||
TYPEDEF: DWORD SE_OBJECT_TYPE
|
||||
C-ENUM:
|
||||
C-ENUM: SE_OBJECT_TYPE
|
||||
SE_UNKNOWN_OBJECT_TYPE
|
||||
SE_FILE_OBJECT
|
||||
SE_SERVICE
|
||||
|
|
|
@ -206,11 +206,10 @@ CONSTANT: HID_USAGE_DIGITIZER_BARREL_SWITCH HEX: 44
|
|||
CONSTANT: HIDP_LINK_COLLECTION_ROOT -1
|
||||
CONSTANT: HIDP_LINK_COLLECTION_UNSPECIFIED 0
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: HIDP_REPORT_TYPE
|
||||
HidP_Input
|
||||
HidP_Output
|
||||
HidP_Feature ;
|
||||
TYPEDEF: int HIDP_REPORT_TYPE
|
||||
|
||||
STRUCT: USAGE_AND_PAGE
|
||||
{ Usage USAGE }
|
||||
|
@ -608,10 +607,9 @@ HidP_UsageAndPageListDifference (
|
|||
ULONG UsageListLength
|
||||
) ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: HIDP_KEYBOARD_DIRECTION
|
||||
HidP_Keyboard_Break
|
||||
HidP_Keyboard_Make ;
|
||||
TYPEDEF: int HIDP_KEYBOARD_DIRECTION
|
||||
|
||||
STRUCT: HIDP_KEYBOARD_MODIFIER_STATE
|
||||
{ ul ULONG } ;
|
||||
|
|
|
@ -1515,14 +1515,13 @@ FUNCTION: BOOL SetupRemoveFileLogEntryA ( HSPFILELOG FileLogHandle, PCSTR LogSec
|
|||
FUNCTION: BOOL SetupRemoveFileLogEntryW ( HSPFILELOG FileLogHandle, PCWSTR LogSectionName, PCWSTR TargetFilename ) ;
|
||||
ALIAS: SetupRemoveFileLogEntry SetupRemoveFileLogEntryW
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: SetupFileLogInfo
|
||||
SetupFileLogSourceFilename
|
||||
SetupFileLogChecksum
|
||||
SetupFileLogDiskTagfile
|
||||
SetupFileLogDiskDescription
|
||||
SetupFileLogOtherInfo
|
||||
SetupFileLogMax ;
|
||||
TYPEDEF: int SetupFileLogInfo
|
||||
|
||||
FUNCTION: BOOL SetupQueryFileLogA ( HSPFILELOG FileLogHandle, PCSTR LogSectionName, PCSTR TargetFilename, SetupFileLogInfo DesiredInfo, PSTR DataOut, DWORD ReturnBufferSize, PDWORD RequiredSize ) ;
|
||||
FUNCTION: BOOL SetupQueryFileLogW ( HSPFILELOG FileLogHandle, PCWSTR LogSectionName, PCWSTR TargetFilename, SetupFileLogInfo DesiredInfo, PWSTR DataOut, DWORD ReturnBufferSize, PDWORD RequiredSize ) ;
|
||||
|
|
|
@ -22,12 +22,11 @@ STRUCT: USB_INTERFACE_DESCRIPTOR
|
|||
{ iInterface UCHAR } ;
|
||||
TYPEDEF: USB_INTERFACE_DESCRIPTOR* PUSB_INTERFACE_DESCRIPTOR
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: USBD_PIPE_TYPE
|
||||
UsbdPipeTypeControl
|
||||
UsbdPipeTypeIsochronous
|
||||
UsbdPipeTypeBulk
|
||||
UsbdPipeTypeInterrupt ;
|
||||
TYPEDEF: int USBD_PIPE_TYPE
|
||||
|
||||
STRUCT: WINUSB_PIPE_INFORMATION
|
||||
{ PipeType USBD_PIPE_TYPE }
|
||||
|
|
|
@ -24,11 +24,11 @@ CONSTANT: D3D11_RETURN_TYPE_DOUBLE 7
|
|||
CONSTANT: D3D11_RETURN_TYPE_CONTINUED 8
|
||||
TYPEDEF: int D3D11_RESOURCE_RETURN_TYPE
|
||||
|
||||
C-ENUM: D3D11_CT_CBUFFER
|
||||
D3D11_CT_TBUFFER
|
||||
D3D11_CT_INTERFACE_POINTERS
|
||||
D3D11_CT_RESOURCE_BIND_INFO ;
|
||||
TYPEDEF: int D3D11_CBUFFER_TYPE
|
||||
C-ENUM: D3D11_CBUFFER_TYPE
|
||||
D3D11_CT_CBUFFER
|
||||
D3D11_CT_TBUFFER
|
||||
D3D11_CT_INTERFACE_POINTERS
|
||||
D3D11_CT_RESOURCE_BIND_INFO ;
|
||||
TYPEDEF: D3D11_CBUFFER_TYPE* LPD3D11_CBUFFER_TYPE
|
||||
|
||||
STRUCT: D3D11_SIGNATURE_PARAMETER_DESC
|
||||
|
|
|
@ -502,8 +502,7 @@ CONSTANT: MAXD3DDECLUSAGE 13
|
|||
CONSTANT: MAXD3DDECLUSAGEINDEX 15
|
||||
CONSTANT: MAXD3DDECLLENGTH 64
|
||||
|
||||
TYPEDEF: int D3DDECLMETHOD
|
||||
C-ENUM:
|
||||
C-ENUM: D3DDECLMETHOD
|
||||
D3DDECLMETHOD_DEFAULT
|
||||
D3DDECLMETHOD_PARTIALU
|
||||
D3DDECLMETHOD_PARTIALV
|
||||
|
|
|
@ -48,10 +48,9 @@ COM-INTERFACE: ID3DX11FFT IUnknown {b3f7a938-4c93-4310-a675-b30d6de50553}
|
|||
HRESULT ForwardTransform ( ID3D11UnorderedAccessView* pInputBuffer, ID3D11UnorderedAccessView** ppOutputBuffer )
|
||||
HRESULT InverseTransform ( ID3D11UnorderedAccessView* pInputBuffer, ID3D11UnorderedAccessView** ppOutputBuffer ) ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: D3DX11_FFT_DATA_TYPE
|
||||
D3DX11_FFT_DATA_TYPE_REAL
|
||||
D3DX11_FFT_DATA_TYPE_COMPLEX ;
|
||||
TYPEDEF: int D3DX11_FFT_DATA_TYPE
|
||||
|
||||
CONSTANT: D3DX11_FFT_DIM_MASK_1D 1
|
||||
CONSTANT: D3DX11_FFT_DIM_MASK_2D 3
|
||||
|
|
|
@ -41,25 +41,23 @@ STRUCT: D3DXSEMANTIC
|
|||
{ UsageIndex UINT } ;
|
||||
TYPEDEF: D3DXSEMANTIC* LPD3DXSEMANTIC
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: D3DXREGISTER_SET
|
||||
D3DXRS_BOOL
|
||||
D3DXRS_INT4
|
||||
D3DXRS_FLOAT4
|
||||
D3DXRS_SAMPLER ;
|
||||
TYPEDEF: int D3DXREGISTER_SET
|
||||
TYPEDEF: D3DXREGISTER_SET* LPD3DXREGISTER_SET
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: D3DXPARAMETER_CLASS
|
||||
D3DXPC_SCALAR
|
||||
D3DXPC_VECTOR
|
||||
D3DXPC_MATRIX_ROWS
|
||||
D3DXPC_MATRIX_COLUMNS
|
||||
D3DXPC_OBJECT
|
||||
D3DXPC_STRUCT ;
|
||||
TYPEDEF: int D3DXPARAMETER_CLASS
|
||||
TYPEDEF: D3DXPARAMETER_CLASS* LPD3DXPARAMETER_CLASS
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: D3DXPARAMETER_TYPE
|
||||
D3DXPT_VOID
|
||||
D3DXPT_BOOL
|
||||
D3DXPT_INT
|
||||
|
@ -80,7 +78,6 @@ C-ENUM:
|
|||
D3DXPT_PIXELFRAGMENT
|
||||
D3DXPT_VERTEXFRAGMENT
|
||||
D3DXPT_UNSUPPORTED ;
|
||||
TYPEDEF: int D3DXPARAMETER_TYPE
|
||||
TYPEDEF: D3DXPARAMETER_TYPE* LPD3DXPARAMETER_TYPE
|
||||
|
||||
STRUCT: D3DXCONSTANTTABLE_DESC
|
||||
|
@ -161,10 +158,9 @@ COM-INTERFACE: ID3DXTextureShader IUnknown {3E3D67F8-AA7A-405d-A857-BA01D4758426
|
|||
HRESULT SetMatrixTransposeArray ( D3DXHANDLE hConstant, D3DXMATRIX* pMatrix, UINT Count )
|
||||
HRESULT SetMatrixTransposePointerArray ( D3DXHANDLE hConstant, D3DXMATRIX** ppMatrix, UINT Count ) ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: D3DXINCLUDE_TYPE
|
||||
D3DXINC_LOCAL
|
||||
D3DXINC_SYSTEM ;
|
||||
TYPEDEF: int D3DXINCLUDE_TYPE
|
||||
TYPEDEF: D3DXINCLUDE_TYPE* LPD3DXINCLUDE_TYPE
|
||||
|
||||
C-TYPE: ID3DXInclude
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
USING: alien.c-types alien.syntax ;
|
||||
IN: windows.directx.dcommon
|
||||
|
||||
C-ENUM: DWRITE_MEASURING_MODE_NATURAL
|
||||
DWRITE_MEASURING_MODE_GDI_CLASSIC
|
||||
DWRITE_MEASURING_MODE_GDI_NATURAL ;
|
||||
TYPEDEF: int DWRITE_MEASURING_MODE
|
||||
C-ENUM: DWRITE_MEASURING_MODE
|
||||
DWRITE_MEASURING_MODE_NATURAL
|
||||
DWRITE_MEASURING_MODE_GDI_CLASSIC
|
||||
DWRITE_MEASURING_MODE_GDI_NATURAL ;
|
||||
|
|
|
@ -5,7 +5,7 @@ IN: windows.directx.dwrite
|
|||
|
||||
LIBRARY: dwrite
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_FONT_FILE_TYPE
|
||||
DWRITE_FONT_FILE_TYPE_UNKNOWN
|
||||
DWRITE_FONT_FILE_TYPE_CFF
|
||||
DWRITE_FONT_FILE_TYPE_TRUETYPE
|
||||
|
@ -14,9 +14,8 @@ C-ENUM:
|
|||
DWRITE_FONT_FILE_TYPE_TYPE1_PFB
|
||||
DWRITE_FONT_FILE_TYPE_VECTOR
|
||||
DWRITE_FONT_FILE_TYPE_BITMAP ;
|
||||
TYPEDEF: int DWRITE_FONT_FILE_TYPE
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_FONT_FACE_TYPE
|
||||
DWRITE_FONT_FACE_TYPE_CFF
|
||||
DWRITE_FONT_FACE_TYPE_TRUETYPE
|
||||
DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION
|
||||
|
@ -24,51 +23,49 @@ C-ENUM:
|
|||
DWRITE_FONT_FACE_TYPE_VECTOR
|
||||
DWRITE_FONT_FACE_TYPE_BITMAP
|
||||
DWRITE_FONT_FACE_TYPE_UNKNOWN ;
|
||||
TYPEDEF: int DWRITE_FONT_FACE_TYPE
|
||||
|
||||
CONSTANT: DWRITE_FONT_SIMULATIONS_NONE 0
|
||||
CONSTANT: DWRITE_FONT_SIMULATIONS_BOLD 1
|
||||
CONSTANT: DWRITE_FONT_SIMULATIONS_OBLIQUE 2
|
||||
TYPEDEF: int DWRITE_FONT_SIMULATIONS
|
||||
C-ENUM: DWRITE_FONT_SIMULATIONS
|
||||
DWRITE_FONT_SIMULATIONS_NONE
|
||||
DWRITE_FONT_SIMULATIONS_BOLD
|
||||
DWRITE_FONT_SIMULATIONS_OBLIQUE ;
|
||||
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_THIN 100
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_LIGHT 200
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_LIGHT 200
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_LIGHT 300
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_NORMAL 400
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_REGULAR 400
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_MEDIUM 500
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_DEMI_BOLD 600
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_SEMI_BOLD 600
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_BOLD 700
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_BOLD 800
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_BOLD 800
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_BLACK 900
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_HEAVY 900
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_BLACK 950
|
||||
CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_BLACK 950
|
||||
TYPEDEF: int DWRITE_FONT_WEIGHT
|
||||
C-ENUM: DWRITE_FONT_WEIGHT
|
||||
{ DWRITE_FONT_WEIGHT_THIN 100 }
|
||||
{ DWRITE_FONT_WEIGHT_EXTRA_LIGHT 200 }
|
||||
{ DWRITE_FONT_WEIGHT_ULTRA_LIGHT 200 }
|
||||
{ DWRITE_FONT_WEIGHT_LIGHT 300 }
|
||||
{ DWRITE_FONT_WEIGHT_NORMAL 400 }
|
||||
{ DWRITE_FONT_WEIGHT_REGULAR 400 }
|
||||
{ DWRITE_FONT_WEIGHT_MEDIUM 500 }
|
||||
{ DWRITE_FONT_WEIGHT_DEMI_BOLD 600 }
|
||||
{ DWRITE_FONT_WEIGHT_SEMI_BOLD 600 }
|
||||
{ DWRITE_FONT_WEIGHT_BOLD 700 }
|
||||
{ DWRITE_FONT_WEIGHT_EXTRA_BOLD 800 }
|
||||
{ DWRITE_FONT_WEIGHT_ULTRA_BOLD 800 }
|
||||
{ DWRITE_FONT_WEIGHT_BLACK 900 }
|
||||
{ DWRITE_FONT_WEIGHT_HEAVY 900 }
|
||||
{ DWRITE_FONT_WEIGHT_EXTRA_BLACK 950 }
|
||||
{ DWRITE_FONT_WEIGHT_ULTRA_BLACK 950 } ;
|
||||
|
||||
CONSTANT: DWRITE_FONT_STRETCH_UNDEFINED 0
|
||||
CONSTANT: DWRITE_FONT_STRETCH_ULTRA_CONDENSED 1
|
||||
CONSTANT: DWRITE_FONT_STRETCH_EXTRA_CONDENSED 2
|
||||
CONSTANT: DWRITE_FONT_STRETCH_CONDENSED 3
|
||||
CONSTANT: DWRITE_FONT_STRETCH_SEMI_CONDENSED 4
|
||||
CONSTANT: DWRITE_FONT_STRETCH_NORMAL 5
|
||||
CONSTANT: DWRITE_FONT_STRETCH_MEDIUM 5
|
||||
CONSTANT: DWRITE_FONT_STRETCH_SEMI_EXPANDED 6
|
||||
CONSTANT: DWRITE_FONT_STRETCH_EXPANDED 7
|
||||
CONSTANT: DWRITE_FONT_STRETCH_EXTRA_EXPANDED 8
|
||||
CONSTANT: DWRITE_FONT_STRETCH_ULTRA_EXPANDED 9
|
||||
TYPEDEF: int DWRITE_FONT_STRETCH
|
||||
C-ENUM: DWRITE_FONT_STRETCH
|
||||
{ DWRITE_FONT_STRETCH_UNDEFINED 0 }
|
||||
{ DWRITE_FONT_STRETCH_ULTRA_CONDENSED 1 }
|
||||
{ DWRITE_FONT_STRETCH_EXTRA_CONDENSED 2 }
|
||||
{ DWRITE_FONT_STRETCH_CONDENSED 3 }
|
||||
{ DWRITE_FONT_STRETCH_SEMI_CONDENSED 4 }
|
||||
{ DWRITE_FONT_STRETCH_NORMAL 5 }
|
||||
{ DWRITE_FONT_STRETCH_MEDIUM 5 }
|
||||
{ DWRITE_FONT_STRETCH_SEMI_EXPANDED 6 }
|
||||
{ DWRITE_FONT_STRETCH_EXPANDED 7 }
|
||||
{ DWRITE_FONT_STRETCH_EXTRA_EXPANDED 8 }
|
||||
{ DWRITE_FONT_STRETCH_ULTRA_EXPANDED 9 } ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_FONT_STYLE
|
||||
DWRITE_FONT_STYLE_NORMAL
|
||||
DWRITE_FONT_STYLE_OBLIQUE
|
||||
DWRITE_FONT_STYLE_ITALIC ;
|
||||
TYPEDEF: int DWRITE_FONT_STYLE
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_INFORMATIONAL_STRING_ID
|
||||
DWRITE_INFORMATIONAL_STRING_NONE
|
||||
DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE
|
||||
DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS
|
||||
|
@ -85,7 +82,6 @@ C-ENUM:
|
|||
DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES
|
||||
DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES
|
||||
DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT ;
|
||||
TYPEDEF: int DWRITE_INFORMATIONAL_STRING_ID
|
||||
|
||||
STRUCT: DWRITE_FONT_METRICS
|
||||
{ designUnitsPerEm USHORT }
|
||||
|
@ -112,10 +108,9 @@ STRUCT: DWRITE_GLYPH_OFFSET
|
|||
{ advanceOffset FLOAT }
|
||||
{ ascenderOffset FLOAT } ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_FACTORY_TYPE
|
||||
DWRITE_FACTORY_TYPE_SHARED
|
||||
DWRITE_FACTORY_TYPE_ISOLATED ;
|
||||
TYPEDEF: int DWRITE_FACTORY_TYPE
|
||||
|
||||
C-TYPE: IDWriteFontFileStream
|
||||
|
||||
|
@ -138,14 +133,12 @@ COM-INTERFACE: IDWriteFontFile IUnknown {739d886a-cef5-47dc-8769-1a8b41bebbb0}
|
|||
HRESULT GetLoader ( IDWriteFontFileLoader** fontFileLoader )
|
||||
HRESULT Analyze ( BOOL* isSupportedFontType, DWRITE_FONT_FILE_TYPE* fontFileType, DWRITE_FONT_FACE_TYPE* fontFaceType, UINT32* numberOfFaces ) ;
|
||||
|
||||
TYPEDEF: int DWRITE_PIXEL_GEOMETRY
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_PIXEL_GEOMETRY
|
||||
DWRITE_PIXEL_GEOMETRY_FLAT
|
||||
DWRITE_PIXEL_GEOMETRY_RGB
|
||||
DWRITE_PIXEL_GEOMETRY_BGR ;
|
||||
|
||||
TYPEDEF: int DWRITE_RENDERING_MODE
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_RENDERING_MODE
|
||||
DWRITE_RENDERING_MODE_DEFAULT
|
||||
DWRITE_RENDERING_MODE_ALIASED
|
||||
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC
|
||||
|
@ -240,39 +233,32 @@ COM-INTERFACE: IDWriteFont IUnknown {acd16696-8c14-4f5d-877e-fe3fc1d32737}
|
|||
HRESULT HasCharacter ( UINT32 unicodeValue, BOOL* exists )
|
||||
HRESULT CreateFontFace ( IDWriteFontFace** fontFace ) ;
|
||||
|
||||
TYPEDEF: int DWRITE_READING_DIRECTION
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_READING_DRECTION
|
||||
DWRITE_READING_DIRECTION_LEFT_TO_RIGHT
|
||||
DWRITE_READING_DIRECTION_RIGHT_TO_LEFT ;
|
||||
|
||||
TYPEDEF: int DWRITE_FLOW_DIRECTION
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_FLOW_DIRECTION
|
||||
DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM ;
|
||||
|
||||
TYPEDEF: int DWRITE_TEXT_ALIGNMENT
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_TEXT_ALIGNMENT
|
||||
DWRITE_TEXT_ALIGNMENT_LEADING
|
||||
DWRITE_TEXT_ALIGNMENT_TRAILING
|
||||
DWRITE_TEXT_ALIGNMENT_CENTER ;
|
||||
|
||||
TYPEDEF: int DWRITE_PARAGRAPH_ALIGNMENT
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_PARAGRAPH_ALIGNMENT
|
||||
DWRITE_PARAGRAPH_ALIGNMENT_NEAR
|
||||
DWRITE_PARAGRAPH_ALIGNMENT_FAR
|
||||
DWRITE_PARAGRAPH_ALIGNMENT_CENTER ;
|
||||
|
||||
TYPEDEF: int DWRITE_WORD_WRAPPING
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_WORD_WRAPPING
|
||||
DWRITE_WORD_WRAPPING_WRAP
|
||||
DWRITE_WORD_WRAPPING_NO_WRAP ;
|
||||
|
||||
TYPEDEF: int DWRITE_LINE_SPACING_METHOD
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_LINE_SPACING_METHOD
|
||||
DWRITE_LINE_SPACING_METHOD_DEFAULT
|
||||
DWRITE_LINE_SPACING_METHOD_UNIFORM ;
|
||||
|
||||
TYPEDEF: int DWRITE_TRIMMING_GRANULARITY
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_TRIMMING_GRANULARITY
|
||||
DWRITE_TRIMMING_GRANULARITY_NONE
|
||||
DWRITE_TRIMMING_GRANULARITY_CHARACTER
|
||||
DWRITE_TRIMMING_GRANULARITY_WORD ;
|
||||
|
@ -410,31 +396,29 @@ COM-INTERFACE: IDWriteTypography IUnknown {55f1112b-1dc2-4b3c-9541-f46894ed85b6}
|
|||
UINT32 GetFontFeatureCount ( )
|
||||
HRESULT GetFontFeature ( UINT32 fontFeatureIndex, DWRITE_FONT_FEATURE* fontFeature ) ;
|
||||
|
||||
CONSTANT: DWRITE_SCRIPT_SHAPES_DEFAULT 0
|
||||
CONSTANT: DWRITE_SCRIPT_SHAPES_NO_VISUAL 1
|
||||
TYPEDEF: int DWRITE_SCRIPT_SHAPES
|
||||
C-ENUM: DWRITE_SCRIPT_SHAPES
|
||||
DWRITE_SCRIPT_SHAPES_DEFAULT
|
||||
DWRITE_SCRIPT_SHAPES_NO_VISUAL ;
|
||||
|
||||
STRUCT: DWRITE_SCRIPT_ANALYSIS
|
||||
{ script USHORT }
|
||||
{ shapes DWRITE_SCRIPT_SHAPES } ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_BREAK_CONDITION
|
||||
DWRITE_BREAK_CONDITION_NEUTRAL
|
||||
DWRITE_BREAK_CONDITION_CAN_BREAK
|
||||
DWRITE_BREAK_CONDITION_MAY_NOT_BREAK
|
||||
DWRITE_BREAK_CONDITION_MUST_BREAK ;
|
||||
TYPEDEF: int DWRITE_BREAK_CONDITION
|
||||
|
||||
STRUCT: DWRITE_LINE_BREAKPOINT
|
||||
{ data BYTE } ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: DWRITE_NUMBER_SUBSTITUTION_METHOD
|
||||
DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE
|
||||
DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL
|
||||
DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE
|
||||
DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL
|
||||
DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL ;
|
||||
TYPEDEF: int DWRITE_NUMBER_SUBSTITUTION_METHOD
|
||||
|
||||
COM-INTERFACE: IDWriteNumberSubstitution IUnknown {14885CC9-BAB0-4f90-B6ED-5C366A2CD03D} ;
|
||||
|
||||
|
@ -628,9 +612,9 @@ COM-INTERFACE: IDWriteGdiInterop IUnknown {1edd9491-9853-4299-898f-6432983b6f3a}
|
|||
HRESULT CreateFontFaceFromHdc ( HDC hdc, IDWriteFontFace** fontFace )
|
||||
HRESULT CreateBitmapRenderTarget ( HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget** renderTarget ) ;
|
||||
|
||||
C-ENUM: DWRITE_TEXTURE_ALIASED_1x1
|
||||
DWRITE_TEXTURE_CLEARTYPE_3x1 ;
|
||||
TYPEDEF: int DWRITE_TEXTURE_TYPE
|
||||
C-ENUM: DWRITE_TEXTURE_TYPE
|
||||
DWRITE_TEXTURE_ALIASED_1x1
|
||||
DWRITE_TEXTURE_CLEARTYPE_3x1 ;
|
||||
|
||||
CONSTANT: DWRITE_ALPHA_MAX 255
|
||||
|
||||
|
|
|
@ -47,23 +47,23 @@ STRUCT: DXGI_RATIONAL
|
|||
{ Numerator UINT }
|
||||
{ Denominator UINT } ;
|
||||
|
||||
C-ENUM: DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED
|
||||
DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE
|
||||
DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST
|
||||
DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST ;
|
||||
TYPEDEF: int DXGI_MODE_SCANLINE_ORDER
|
||||
C-ENUM: DXGI_MODE_SCANLINE_ORDER
|
||||
DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED
|
||||
DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE
|
||||
DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST
|
||||
DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST ;
|
||||
|
||||
C-ENUM: DXGI_MODE_SCALING_UNSPECIFIED
|
||||
DXGI_MODE_SCALING_CENTERED
|
||||
DXGI_MODE_SCALING_STRETCHED ;
|
||||
TYPEDEF: int DXGI_MODE_SCALING
|
||||
C-ENUM: DXGI_MODE_SCALING
|
||||
DXGI_MODE_SCALING_UNSPECIFIED
|
||||
DXGI_MODE_SCALING_CENTERED
|
||||
DXGI_MODE_SCALING_STRETCHED ;
|
||||
|
||||
C-ENUM: DXGI_MODE_ROTATION_UNSPECIFIED
|
||||
DXGI_MODE_ROTATION_IDENTITY
|
||||
DXGI_MODE_ROTATION_ROTATE90
|
||||
DXGI_MODE_ROTATION_ROTATE180
|
||||
DXGI_MODE_ROTATION_ROTATE270 ;
|
||||
TYPEDEF: int DXGI_MODE_ROTATION
|
||||
C-ENUM: DXGI_MODE_ROTATION
|
||||
DXGI_MODE_ROTATION_UNSPECIFIED
|
||||
DXGI_MODE_ROTATION_IDENTITY
|
||||
DXGI_MODE_ROTATION_ROTATE90
|
||||
DXGI_MODE_ROTATION_ROTATE180
|
||||
DXGI_MODE_ROTATION_ROTATE270 ;
|
||||
|
||||
STRUCT: DXGI_MODE_DESC
|
||||
{ Width UINT }
|
||||
|
|
|
@ -39,10 +39,9 @@ STRUCT: XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS
|
|||
{ pFormat WAVEFORMATEX* }
|
||||
{ MaxFrameCount UINT32 } ;
|
||||
|
||||
C-ENUM:
|
||||
XAPO_BUFFER_SILENT
|
||||
XAPO_BUFFER_VALID ;
|
||||
TYPEDEF: int XAPO_BUFFER_FLAGS
|
||||
C-ENUM: XAPO_BUFFER_FLAGS
|
||||
XAPO_BUFFER_SILENT
|
||||
XAPO_BUFFER_VALID ;
|
||||
|
||||
STRUCT: XAPO_PROCESS_BUFFER_PARAMETERS
|
||||
{ pBuffer void* }
|
||||
|
|
|
@ -133,12 +133,11 @@ STRUCT: XAUDIO2_EFFECT_CHAIN
|
|||
{ EffectCount UINT32 }
|
||||
{ pEffectDescriptors XAUDIO2_EFFECT_DESCRIPTOR* } ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: XAUDIO2_FILTER_TYPE
|
||||
LowPassFilter
|
||||
BandPassFilter
|
||||
HighPassFilter
|
||||
NotchFilter ;
|
||||
TYPEDEF: int XAUDIO2_FILTER_TYPE
|
||||
|
||||
STRUCT: XAUDIO2_FILTER_PARAMETERS
|
||||
{ Type XAUDIO2_FILTER_TYPE }
|
||||
|
|
|
@ -199,7 +199,7 @@ CONSTANT: THREAD_PRIORITY_LOWEST -2
|
|||
CONSTANT: THREAD_PRIORITY_NORMAL 0
|
||||
CONSTANT: THREAD_PRIORITY_TIME_CRITICAL 15
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: COMPUTER_NAME_FORMAT
|
||||
ComputerNameNetBIOS
|
||||
ComputerNameDnsHostname
|
||||
ComputerNameDnsDomain
|
||||
|
@ -210,8 +210,6 @@ C-ENUM:
|
|||
ComputerNamePhysicalDnsFullyQualified
|
||||
ComputerNameMax ;
|
||||
|
||||
TYPEDEF: uint COMPUTER_NAME_FORMAT
|
||||
|
||||
STRUCT: OVERLAPPED
|
||||
{ internal UINT_PTR }
|
||||
{ internal-high UINT_PTR }
|
||||
|
|
|
@ -37,22 +37,23 @@ FUNCTION: HRESULT ScriptLayout (
|
|||
int* piLogicalToVisual
|
||||
) ;
|
||||
|
||||
C-ENUM: SCRIPT_JUSTIFY_NONE
|
||||
SCRIPT_JUSTIFY_ARABIC_BLANK
|
||||
SCRIPT_JUSTIFY_CHARACTER
|
||||
SCRIPT_JUSTIFY_RESERVED1
|
||||
SCRIPT_JUSTIFY_BLANK
|
||||
SCRIPT_JUSTIFY_RESERVED2
|
||||
SCRIPT_JUSTIFY_RESERVED3
|
||||
SCRIPT_JUSTIFY_ARABIC_NORMAL
|
||||
SCRIPT_JUSTIFY_ARABIC_KASHIDA
|
||||
SCRIPT_JUSTIFY_ALEF
|
||||
SCRIPT_JUSTIFY_HA
|
||||
SCRIPT_JUSTIFY_RA
|
||||
SCRIPT_JUSTIFY_BA
|
||||
SCRIPT_JUSTIFY_BARA
|
||||
SCRIPT_JUSTIFY_SEEN
|
||||
SCRIPT_JUSTIFFY_RESERVED4 ;
|
||||
C-ENUM: f
|
||||
SCRIPT_JUSTIFY_NONE
|
||||
SCRIPT_JUSTIFY_ARABIC_BLANK
|
||||
SCRIPT_JUSTIFY_CHARACTER
|
||||
SCRIPT_JUSTIFY_RESERVED1
|
||||
SCRIPT_JUSTIFY_BLANK
|
||||
SCRIPT_JUSTIFY_RESERVED2
|
||||
SCRIPT_JUSTIFY_RESERVED3
|
||||
SCRIPT_JUSTIFY_ARABIC_NORMAL
|
||||
SCRIPT_JUSTIFY_ARABIC_KASHIDA
|
||||
SCRIPT_JUSTIFY_ALEF
|
||||
SCRIPT_JUSTIFY_HA
|
||||
SCRIPT_JUSTIFY_RA
|
||||
SCRIPT_JUSTIFY_BA
|
||||
SCRIPT_JUSTIFY_BARA
|
||||
SCRIPT_JUSTIFY_SEEN
|
||||
SCRIPT_JUSTIFFY_RESERVED4 ;
|
||||
|
||||
STRUCT: SCRIPT_VISATTR
|
||||
{ flags WORD } ;
|
||||
|
|
|
@ -406,4 +406,4 @@ CONSTANT: MSBFirst 1
|
|||
! * EXTENDED WINDOW MANAGER HINTS
|
||||
! *****************************************************************
|
||||
|
||||
C-ENUM: _NET_WM_STATE_REMOVE _NET_WM_STATE_ADD _NET_WM_STATE_TOGGLE ;
|
||||
C-ENUM: f _NET_WM_STATE_REMOVE _NET_WM_STATE_ADD _NET_WM_STATE_TOGGLE ;
|
||||
|
|
|
@ -349,12 +349,11 @@ STRUCT: cpSegmentQueryInfo
|
|||
{ t cpFloat }
|
||||
{ n cpVect } ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: cpShapeType
|
||||
CP_CIRCLE_SHAPE
|
||||
CP_SEGMENT_SHAPE
|
||||
CP_POLY_SHAPE
|
||||
CP_NUM_SHAPES ;
|
||||
TYPEDEF: int cpShapeType
|
||||
|
||||
CALLBACK: cpBB cacheData_cb ( cpShape* shape, cpVect p, cpVect rot ) ;
|
||||
CALLBACK: void destroy_cb ( cpShape* shape ) ;
|
||||
|
@ -483,11 +482,10 @@ STRUCT: cpContact
|
|||
|
||||
FUNCTION: cpContact* cpContactInit ( cpContact* con, cpVect p, cpVect n, cpFloat dist, cpHashValue hash ) ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: cpArbiterState
|
||||
cpArbiterStateNormal
|
||||
cpArbiterStateFirstColl
|
||||
cpArbiterStateIgnore ;
|
||||
TYPEDEF: int cpArbiterState
|
||||
|
||||
STRUCT: cpArbiter
|
||||
{ numContacts int }
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
! Copyright (C) 2010 Erik Charlebois.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.c-types alien.syntax classes.struct ;
|
||||
USING: accessors alien alien.c-types alien.strings alien.syntax arrays
|
||||
classes.struct io.encodings.ascii kernel locals math math.intervals
|
||||
sequences specialized-arrays strings typed ;
|
||||
IN: elf
|
||||
|
||||
! FFI data
|
||||
CONSTANT: EI_NIDENT 16
|
||||
CONSTANT: EI_MAG0 0
|
||||
CONSTANT: EI_MAG1 1
|
||||
|
@ -456,3 +459,154 @@ STRUCT: Elf32_Dyn
|
|||
STRUCT: Elf64_Dyn
|
||||
{ d_tag Elf64_Sxword }
|
||||
{ d_val Elf64_Xword } ;
|
||||
|
||||
! Low-level interface
|
||||
SPECIALIZED-ARRAYS: Elf32_Shdr Elf64_Shdr Elf32_Sym Elf64_Sym Elf32_Phdr Elf64_Phdr uchar ;
|
||||
UNION: Elf32/64_Ehdr Elf32_Ehdr Elf64_Ehdr ;
|
||||
UNION: Elf32/64_Shdr Elf32_Shdr Elf64_Shdr ;
|
||||
UNION: Elf32/64_Shdr-array Elf32_Shdr-array Elf64_Shdr-array ;
|
||||
UNION: Elf32/64_Sym Elf32_Sym Elf64_Sym ;
|
||||
UNION: Elf32/64_Sym-array Elf32_Sym-array Elf64_Sym-array ;
|
||||
UNION: Elf32/64_Phdr Elf32_Phdr Elf64_Phdr ;
|
||||
UNION: Elf32/64_Phdr-array Elf32_Phdr-array Elf64_Phdr-array ;
|
||||
|
||||
TYPED: 64-bit? ( elf: Elf32/64_Ehdr -- ? )
|
||||
e_ident>> EI_CLASS swap nth ELFCLASS64 = ;
|
||||
|
||||
TYPED: elf-header ( c-ptr -- elf: Elf32/64_Ehdr )
|
||||
[ Elf64_Ehdr memory>struct 64-bit? ] keep swap
|
||||
[ Elf64_Ehdr memory>struct ]
|
||||
[ Elf32_Ehdr memory>struct ] if ;
|
||||
|
||||
TYPED:: elf-section-headers ( elf: Elf32/64_Ehdr -- headers: Elf32/64_Shdr-array )
|
||||
elf [ e_shoff>> ] [ e_shnum>> ] bi :> ( off num )
|
||||
off elf >c-ptr <displaced-alien> num
|
||||
elf 64-bit?
|
||||
[ <direct-Elf64_Shdr-array> ]
|
||||
[ <direct-Elf32_Shdr-array> ] if ;
|
||||
|
||||
TYPED:: elf-program-headers ( elf: Elf32/64_Ehdr -- headers: Elf32/64_Phdr-array )
|
||||
elf [ e_phoff>> ] [ e_phnum>> ] bi :> ( off num )
|
||||
off elf >c-ptr <displaced-alien> num
|
||||
elf 64-bit?
|
||||
[ <direct-Elf64_Phdr-array> ]
|
||||
[ <direct-Elf32_Phdr-array> ] if ;
|
||||
|
||||
TYPED: elf-loadable-segments ( headers: Elf32/64_Phdr-array -- headers: Elf32/64_Phdr-array )
|
||||
[ p_type>> PT_LOAD = ] filter ;
|
||||
|
||||
TYPED:: elf-segment-sections ( segment: Elf32/64_Phdr sections: Elf32/64_Shdr-array -- sections )
|
||||
segment [ p_offset>> dup ] [ p_filesz>> + ] bi [a,b) :> segment-interval
|
||||
sections [ dup [ sh_offset>> dup ] [ sh_size>> + ] bi [a,b) 2array ] { } map-as :> section-intervals
|
||||
section-intervals [ second segment-interval interval-intersect empty-interval = not ]
|
||||
filter [ first ] map ;
|
||||
|
||||
TYPED:: virtual-address-segment ( elf: Elf32/64_Ehdr address -- program-header/f )
|
||||
elf elf-program-headers elf-loadable-segments [
|
||||
[ p_vaddr>> dup ] [ p_memsz>> + ] bi [a,b)
|
||||
address swap interval-contains?
|
||||
] filter [ f ] [ first ] if-empty ;
|
||||
|
||||
TYPED:: virtual-address-section ( elf: Elf32/64_Ehdr address -- section-header/f )
|
||||
elf address virtual-address-segment :> segment
|
||||
segment elf elf-section-headers elf-segment-sections :> sections
|
||||
address segment p_vaddr>> - segment p_offset>> + :> faddress
|
||||
sections [
|
||||
[ sh_offset>> dup ] [ sh_size>> + ] bi [a,b)
|
||||
faddress swap interval-contains?
|
||||
] filter [ f ] [ first ] if-empty ;
|
||||
|
||||
TYPED:: elf-segment-data ( elf: Elf32/64_Ehdr header: Elf32/64_Phdr -- uchar-array/f )
|
||||
header [ p_offset>> elf >c-ptr <displaced-alien> ] [ p_filesz>> ] bi <direct-uchar-array> ;
|
||||
|
||||
TYPED:: elf-section-data ( elf: Elf32/64_Ehdr header: Elf32/64_Shdr -- uchar-array/f )
|
||||
header [ sh_offset>> elf >c-ptr <displaced-alien> ] [ sh_size>> ] bi <direct-uchar-array> ;
|
||||
|
||||
TYPED:: elf-section-data-by-index ( elf: Elf32/64_Ehdr index -- header/f uchar-array/f )
|
||||
elf elf-section-headers :> sections
|
||||
index sections nth :> header
|
||||
elf header elf-section-data :> data
|
||||
header data ;
|
||||
|
||||
TYPED:: elf-section-name ( elf: Elf32/64_Ehdr header: Elf32/64_Shdr -- name: string )
|
||||
elf elf e_shstrndx>> elf-section-data-by-index nip >c-ptr :> section-names
|
||||
header sh_name>> section-names <displaced-alien> ascii alien>string ;
|
||||
|
||||
TYPED:: elf-section-data-by-name ( elf: Elf32/64_Ehdr name: string -- header/f uchar-array/f )
|
||||
elf elf-section-headers :> sections
|
||||
elf e_shstrndx>> :> ndx
|
||||
elf ndx sections nth elf-section-data >c-ptr :> section-names
|
||||
sections 1 tail [
|
||||
sh_name>> section-names <displaced-alien> ascii alien>string name =
|
||||
] find nip
|
||||
[ dup elf swap elf-section-data ]
|
||||
[ f f ] if* ;
|
||||
|
||||
TYPED:: elf-sections ( elf: Elf32/64_Ehdr -- sections )
|
||||
elf elf-section-headers :> sections
|
||||
elf elf e_shstrndx>> elf-section-data-by-index nip >c-ptr :> section-names
|
||||
sections [
|
||||
[ sh_name>> section-names <displaced-alien>
|
||||
ascii alien>string ] keep 2array
|
||||
] { } map-as ;
|
||||
|
||||
TYPED:: elf-symbols ( elf: Elf32/64_Ehdr section-data: uchar-array -- symbols )
|
||||
elf ".strtab" elf-section-data-by-name nip >c-ptr :> strings
|
||||
section-data [ >c-ptr ] [ length ] bi
|
||||
elf 64-bit?
|
||||
[ Elf64_Sym heap-size / <direct-Elf64_Sym-array> ]
|
||||
[ Elf32_Sym heap-size / <direct-Elf32_Sym-array> ] if
|
||||
[ [ st_name>> strings <displaced-alien> ascii alien>string ] keep 2array ] { } map-as ;
|
||||
|
||||
! High level interface
|
||||
TUPLE: elf elf-header ;
|
||||
TUPLE: section name elf-header section-header data ;
|
||||
TUPLE: segment elf-header program-header data ;
|
||||
TUPLE: symbol name elf-header sym data ;
|
||||
|
||||
GENERIC: sections ( obj -- sections )
|
||||
|
||||
: <elf> ( c-ptr -- elf )
|
||||
elf-header elf boa ;
|
||||
|
||||
M:: elf sections ( elf -- sections )
|
||||
elf elf-header>> elf-sections
|
||||
[
|
||||
first2 :> ( name header )
|
||||
elf elf-header>> header elf-section-data :> data
|
||||
name elf elf-header>> header data section boa
|
||||
] { } map-as ;
|
||||
|
||||
:: segments ( elf -- segments )
|
||||
elf elf-header>> elf-program-headers
|
||||
[| header |
|
||||
elf elf-header>> header elf-segment-data :> data
|
||||
elf elf-header>> header data segment boa
|
||||
] { } map-as ;
|
||||
|
||||
M:: segment sections ( segment -- sections )
|
||||
segment program-header>>
|
||||
segment elf-header>> elf-section-headers
|
||||
elf-segment-sections
|
||||
|
||||
[| header |
|
||||
segment elf-header>> header elf-section-name :> name
|
||||
segment elf-header>> header elf-section-data :> data
|
||||
name segment elf-header>> header data section boa
|
||||
] { } map-as ;
|
||||
|
||||
:: symbols ( section -- symbols )
|
||||
section elf-header>>
|
||||
section data>>
|
||||
elf-symbols
|
||||
[
|
||||
first2 :> ( name sym )
|
||||
name section elf-header>> sym f symbol boa
|
||||
] { } map-as ;
|
||||
|
||||
:: symbol-data ( symbol -- data )
|
||||
symbol [ elf-header>> ] [ sym>> st_value>> ] bi virtual-address-segment :> segment
|
||||
symbol sym>> st_value>> segment p_vaddr>> - segment p_offset>> + :> faddress
|
||||
faddress symbol elf-header>> >c-ptr <displaced-alien>
|
||||
symbol sym>> st_size>> <direct-uchar-array> ;
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Erik Charlebois
|
Binary file not shown.
|
@ -0,0 +1,142 @@
|
|||
! Copyright (C) 2010 Erik Charlebois.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors arrays classes.struct destructors game.loop
|
||||
game.worlds gpu gpu.buffers gpu.effects.blur gpu.framebuffers
|
||||
gpu.render gpu.shaders gpu.state gpu.textures gpu.util images
|
||||
images.loader kernel literals locals make math math.rectangles
|
||||
math.vectors namespaces opengl.gl sequences specialized-arrays
|
||||
ui.gadgets.worlds ui.gestures ui.pixel-formats gpu.effects.step
|
||||
images.pgm images.ppm ;
|
||||
FROM: alien.c-types => float ;
|
||||
SPECIALIZED-ARRAY: float
|
||||
IN: fluids
|
||||
|
||||
STRUCT: float2_t
|
||||
{ x float }
|
||||
{ y float } ;
|
||||
|
||||
: f2+ ( lhs rhs -- res )
|
||||
[ [ x>> ] bi@ + ]
|
||||
[ [ y>> ] bi@ + ]
|
||||
2bi float2_t <struct-boa> ; inline
|
||||
|
||||
: f2- ( lhs rhs -- res )
|
||||
[ [ x>> ] bi@ - ]
|
||||
[ [ y>> ] bi@ - ]
|
||||
2bi float2_t <struct-boa> ; inline
|
||||
|
||||
: f2*n ( lhs rhs -- res )
|
||||
[ [ x>> ] dip * ]
|
||||
[ [ y>> ] dip * ]
|
||||
2bi float2_t <struct-boa> ; inline
|
||||
|
||||
STRUCT: particle_t
|
||||
{ p float2_t }
|
||||
{ p' float2_t }
|
||||
{ m float } ;
|
||||
SPECIALIZED-ARRAY: particle_t
|
||||
|
||||
CONSTANT: gravity S{ float2_t f 0.0 -0.1 }
|
||||
|
||||
:: verlet-integrate-particle ( p dt -- p' )
|
||||
p p>> 2.0 f2*n :> v1
|
||||
p p'>> :> v2
|
||||
gravity dt dt * 1.0 p m>> 2.0 * / * f2*n :> v3
|
||||
v1 v2 f2- v3 f2+
|
||||
p p m>> particle_t <struct-boa> ; inline
|
||||
|
||||
CONSTANT: initial-particles
|
||||
particle_t-array{
|
||||
S{ particle_t f S{ float2_t f 0.5 0.6 } S{ float2_t f 0.499 0.599 } 1.0 }
|
||||
S{ particle_t f S{ float2_t f 0.5 0.6 } S{ float2_t f 0.501 0.599 } 3.0 }
|
||||
|
||||
S{ particle_t f S{ float2_t f 0.5 0.5 } S{ float2_t f 0.5 0.5 } 2.0 }
|
||||
S{ particle_t f S{ float2_t f 0.5 0.6 } S{ float2_t f 0.5 0.599 } 1.0 }
|
||||
S{ particle_t f S{ float2_t f 0.6 0.5 } S{ float2_t f 0.6 0.5 } 3.0 }
|
||||
S{ particle_t f S{ float2_t f 0.7 0.5 } S{ float2_t f 0.7 0.5 } 1.0 }
|
||||
S{ particle_t f S{ float2_t f 0.1 0.5 } S{ float2_t f 0.1 0.5 } 5.0 }
|
||||
S{ particle_t f S{ float2_t f 0.2 0.5 } S{ float2_t f 0.2 0.5 } 1.0 }
|
||||
S{ particle_t f S{ float2_t f 0.3 0.3 } S{ float2_t f 0.3 0.3 } 4.0 }
|
||||
S{ particle_t f S{ float2_t f 0.5 0.15 } S{ float2_t f 0.5 0.15 } 1.0 }
|
||||
S{ particle_t f S{ float2_t f 0.5 0.1 } S{ float2_t f 0.5 0.1 } 9.0 }
|
||||
}
|
||||
|
||||
: integrate-particles! ( particles dt -- particles )
|
||||
[ verlet-integrate-particle ] curry map! ;
|
||||
|
||||
TUPLE: fluids-world < game-world
|
||||
particles texture ramp { paused boolean initial: f } ;
|
||||
|
||||
: make-texture ( pathname -- texture )
|
||||
load-image
|
||||
[
|
||||
[ component-order>> ]
|
||||
[ component-type>> ] bi
|
||||
T{ texture-parameters
|
||||
{ wrap clamp-texcoord-to-edge }
|
||||
{ min-filter filter-nearest }
|
||||
{ mag-filter filter-nearest }
|
||||
{ min-mipmap-filter f } }
|
||||
<texture-2d>
|
||||
]
|
||||
[
|
||||
0 swap [ allocate-texture-image ] 3keep 2drop
|
||||
] bi ;
|
||||
|
||||
SYMBOL: fluid
|
||||
|
||||
: integrate ( world -- )
|
||||
particles>> $[ 60 fps 1000000 /f ] integrate-particles! drop ;
|
||||
|
||||
: pause ( -- )
|
||||
fluid get [ not ] change-paused drop ;
|
||||
|
||||
: step ( -- )
|
||||
fluid get paused>> [ fluid get integrate ] when ;
|
||||
|
||||
M: fluids-world begin-game-world
|
||||
dup fluid set
|
||||
init-gpu
|
||||
initial-particles clone >>particles
|
||||
"resource:extra/fluids/particle2.pgm" make-texture >>texture
|
||||
"resource:extra/fluids/colors.ppm" make-texture >>ramp
|
||||
drop ;
|
||||
|
||||
M: fluids-world end-game-world
|
||||
drop ;
|
||||
|
||||
M: fluids-world tick-game-world
|
||||
dup paused>> [ drop ] [ integrate ] if ;
|
||||
|
||||
M:: fluids-world draw-world* ( world -- )
|
||||
world particles>> [
|
||||
[ p>> [ x>> , ] [ y>> , ] bi ] each
|
||||
] curry float-array{ } make :> verts
|
||||
|
||||
[
|
||||
verts world texture>> 50.0 { 320 240 } blended-point-sprite-batch &dispose
|
||||
|
||||
blend-state new set-gpu-state
|
||||
|
||||
gaussian-blur &dispose world ramp>> { 1024 768 } step-texture &dispose
|
||||
{ 1024 768 } draw-texture
|
||||
] with-destructors
|
||||
;
|
||||
|
||||
GAME: fluids {
|
||||
{ world-class fluids-world }
|
||||
{ title "Fluids Test" }
|
||||
{ pixel-format-attributes {
|
||||
windowed double-buffered T{ depth-bits { value 24 } } } }
|
||||
{ pref-dim { 1024 768 } }
|
||||
{ tick-interval-micros $[ 60 fps ] }
|
||||
} ;
|
||||
|
||||
MAIN: fluids
|
||||
|
||||
fluids-world H{
|
||||
{ T{ button-down } [ [
|
||||
hand-loc get { 1024 768 } v/ 2 v*n 1 v-n { 1 -1 } v* first2 float2_t <struct-boa>
|
||||
dup 2.0 particle_t <struct-boa> suffix
|
||||
] change-particles drop ] }
|
||||
} set-gestures
|
Binary file not shown.
|
@ -176,14 +176,14 @@ FUNCTION: FT_Error FT_Set_Char_Size ( face* face, FT_F26Dot6 char_width, FT_F26D
|
|||
|
||||
FUNCTION: FT_Error FT_Load_Char ( face* face, FT_ULong charcode, FT_Int32 load_flags ) ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
FT_RENDER_MODE_NORMAL
|
||||
FT_RENDER_MODE_LIGHT
|
||||
FT_RENDER_MODE_MONO
|
||||
FT_RENDER_MODE_LCD
|
||||
FT_RENDER_MODE_LCD_V ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
FT_PIXEL_MODE_NONE
|
||||
FT_PIXEL_MODE_MONO
|
||||
FT_PIXEL_MODE_GRAY
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Erik Charlebois
|
|
@ -0,0 +1,82 @@
|
|||
! Copyright (C) 2010 Erik Charlebois.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays destructors fry gpu.framebuffers gpu.render gpu.shaders
|
||||
gpu.state gpu.textures gpu.util images kernel locals math
|
||||
math.rectangles sequences ;
|
||||
IN: gpu.effects.blur
|
||||
|
||||
GLSL-SHADER: blur-fragment-shader fragment-shader
|
||||
uniform sampler2D texture;
|
||||
uniform bool horizontal;
|
||||
uniform float blurSize;
|
||||
varying vec2 texcoord;
|
||||
void main()
|
||||
{
|
||||
vec4 col = 0.16 * texture2D(texture, texcoord);
|
||||
if (horizontal)
|
||||
{
|
||||
vec2 blurX1 = vec2(blurSize, 0.0);
|
||||
vec2 blurX2 = vec2(blurSize * 2.0, 0.0);
|
||||
vec2 blurX3 = vec2(blurSize * 3.0, 0.0);
|
||||
vec2 blurX4 = vec2(blurSize * 4.0, 0.0);
|
||||
col += 0.15 * ( texture2D(texture, texcoord - blurX1)
|
||||
+ texture2D(texture, texcoord + blurX1));
|
||||
col += 0.12 * ( texture2D(texture, texcoord - blurX2)
|
||||
+ texture2D(texture, texcoord + blurX2));
|
||||
col += 0.09 * ( texture2D(texture, texcoord - blurX3)
|
||||
+ texture2D(texture, texcoord + blurX3));
|
||||
col += 0.05 * ( texture2D(texture, texcoord - blurX4)
|
||||
+ texture2D(texture, texcoord + blurX4));
|
||||
}
|
||||
else
|
||||
{
|
||||
vec2 blurY1 = vec2(0.0, blurSize);
|
||||
vec2 blurY2 = vec2(0.0, blurSize * 2.0);
|
||||
vec2 blurY3 = vec2(0.0, blurSize * 3.0);
|
||||
vec2 blurY4 = vec2(0.0, blurSize * 4.0);
|
||||
col += 0.15 * ( texture2D(texture, texcoord - blurY1)
|
||||
+ texture2D(texture, texcoord + blurY1));
|
||||
col += 0.12 * ( texture2D(texture, texcoord - blurY2)
|
||||
+ texture2D(texture, texcoord + blurY2));
|
||||
col += 0.09 * ( texture2D(texture, texcoord - blurY3)
|
||||
+ texture2D(texture, texcoord + blurY3));
|
||||
col += 0.05 * ( texture2D(texture, texcoord - blurY4)
|
||||
+ texture2D(texture, texcoord + blurY4));
|
||||
}
|
||||
gl_FragColor = col;
|
||||
}
|
||||
;
|
||||
|
||||
UNIFORM-TUPLE: blur-uniforms
|
||||
{ "texture" texture-uniform f }
|
||||
{ "horizontal" bool-uniform f }
|
||||
{ "blurSize" float-uniform f } ;
|
||||
|
||||
GLSL-PROGRAM: blur-program window-vertex-shader blur-fragment-shader window-vertex-format ;
|
||||
|
||||
:: (blur) ( texture horizontal? framebuffer dim -- )
|
||||
{ 0 0 } dim <rect> <viewport-state> set-gpu-state
|
||||
texture horizontal? 1.0 dim horizontal? [ first ] [ second ] if / blur-uniforms boa framebuffer {
|
||||
{ "primitive-mode" [ 2drop triangle-strip-mode ] }
|
||||
{ "uniforms" [ drop ] }
|
||||
{ "vertex-array" [ 2drop blur-program <program-instance> <window-vertex-array> &dispose ] }
|
||||
{ "indexes" [ 2drop T{ index-range f 0 4 } ] }
|
||||
{ "framebuffer" [ nip ] }
|
||||
} 2<render-set> render ;
|
||||
|
||||
:: blur ( texture horizontal? -- texture )
|
||||
texture 0 texture-dim :> dim
|
||||
dim RGB float-components <2d-render-texture> :> ( target-framebuffer target-texture )
|
||||
texture horizontal? target-framebuffer dim (blur)
|
||||
target-framebuffer dispose
|
||||
target-texture ;
|
||||
|
||||
: horizontal-blur ( texture -- texture ) t blur ; inline
|
||||
|
||||
: vertical-blur ( texture -- texture ) f blur ; inline
|
||||
|
||||
: discompose ( quot1 quot2 -- compose )
|
||||
'[ @ &dispose @ ] with-destructors ; inline
|
||||
|
||||
: gaussian-blur ( texture -- texture )
|
||||
[ horizontal-blur ] [ vertical-blur ] discompose ;
|
|
@ -0,0 +1 @@
|
|||
Blur effects for textures.
|
|
@ -0,0 +1 @@
|
|||
Erik Charlebois
|
|
@ -0,0 +1,40 @@
|
|||
! Copyright (C) 2010 Erik Charlebois.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: destructors gpu.render gpu.shaders gpu.state gpu.textures
|
||||
gpu.util images kernel locals math.rectangles ;
|
||||
IN: gpu.effects.step
|
||||
|
||||
GLSL-SHADER: step-fragment-shader fragment-shader
|
||||
const vec4 luminance = vec4(0.3, 0.59, 0.11, 0.0);
|
||||
uniform sampler2D texture;
|
||||
uniform sampler2D ramp;
|
||||
varying vec2 texcoord;
|
||||
void main()
|
||||
{
|
||||
vec4 col = texture2D(texture, texcoord);
|
||||
float l = dot(col, luminance);
|
||||
gl_FragColor = texture2D(ramp, vec2(l, 0.0));
|
||||
}
|
||||
;
|
||||
|
||||
UNIFORM-TUPLE: step-uniforms
|
||||
{ "texture" texture-uniform f }
|
||||
{ "ramp" texture-uniform f } ;
|
||||
|
||||
GLSL-PROGRAM: step-program window-vertex-shader step-fragment-shader window-vertex-format ;
|
||||
|
||||
: (step-texture) ( texture ramp texture dim -- )
|
||||
{ 0 0 } swap <rect> <viewport-state> set-gpu-state
|
||||
[ step-uniforms boa ] dip {
|
||||
{ "primitive-mode" [ 2drop triangle-strip-mode ] }
|
||||
{ "uniforms" [ drop ] }
|
||||
{ "vertex-array" [ 2drop <window-vertex-buffer> step-program <program-instance> <vertex-array> ] }
|
||||
{ "indexes" [ 2drop T{ index-range f 0 4 } ] }
|
||||
{ "framebuffer" [ nip ] }
|
||||
} 2<render-set> render ;
|
||||
|
||||
:: step-texture ( texture ramp dim -- texture )
|
||||
dim RGB float-components <2d-render-texture> :> ( target-framebuffer target-texture )
|
||||
texture ramp target-framebuffer dim (step-texture)
|
||||
target-framebuffer dispose
|
||||
target-texture ;
|
|
@ -0,0 +1 @@
|
|||
Render a quad with a step texture.
|
|
@ -1,6 +1,7 @@
|
|||
! (c)2009 Joe Groff bsd license
|
||||
USING: gpu.buffers gpu.render gpu.shaders gpu.textures images kernel
|
||||
specialized-arrays ;
|
||||
USING: arrays destructors gpu.buffers gpu.framebuffers gpu.render
|
||||
gpu.shaders gpu.state gpu.textures images kernel locals math
|
||||
math.rectangles opengl.gl sequences specialized-arrays ;
|
||||
FROM: alien.c-types => float ;
|
||||
SPECIALIZED-ARRAY: float
|
||||
IN: gpu.util
|
||||
|
@ -44,10 +45,59 @@ CONSTANT: environment-cube-map-mv-matrices
|
|||
{ 0.0 0.0 0.0 1.0 }
|
||||
} }
|
||||
}
|
||||
|
||||
GLSL-SHADER: window-vertex-shader vertex-shader
|
||||
attribute vec2 vertex;
|
||||
varying vec2 texcoord;
|
||||
void main()
|
||||
{
|
||||
texcoord = vertex * vec2(0.5) + vec2(0.5);
|
||||
gl_Position = vec4(vertex, 0.0, 1.0);
|
||||
}
|
||||
;
|
||||
|
||||
VERTEX-FORMAT: window-vertex
|
||||
GLSL-SHADER: window-fragment-shader fragment-shader
|
||||
uniform sampler2D texture;
|
||||
varying vec2 texcoord;
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = texture2D(texture, texcoord);
|
||||
}
|
||||
;
|
||||
|
||||
VERTEX-FORMAT: window-vertex-format
|
||||
{ "vertex" float-components 2 f } ;
|
||||
|
||||
UNIFORM-TUPLE: window-uniforms
|
||||
{ "texture" texture-uniform f } ;
|
||||
|
||||
GLSL-PROGRAM: window-program window-vertex-shader window-fragment-shader window-vertex-format ;
|
||||
|
||||
GLSL-SHADER: window-point-vertex-shader vertex-shader
|
||||
uniform float point_size;
|
||||
attribute vec2 vertex;
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(vertex, 0.0, 1.0);
|
||||
gl_PointSize = point_size;
|
||||
}
|
||||
;
|
||||
|
||||
GLSL-SHADER: window-point-fragment-shader fragment-shader
|
||||
#version 120
|
||||
uniform sampler2D texture;
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = texture2D(texture, gl_PointCoord);
|
||||
}
|
||||
;
|
||||
|
||||
UNIFORM-TUPLE: window-point-uniforms
|
||||
{ "texture" texture-uniform f }
|
||||
{ "point_size" float-uniform f } ;
|
||||
|
||||
GLSL-PROGRAM: window-point-program window-point-vertex-shader window-point-fragment-shader window-vertex-format ;
|
||||
|
||||
CONSTANT: window-vertexes
|
||||
float-array{
|
||||
-1.0 -1.0
|
||||
|
@ -62,4 +112,47 @@ CONSTANT: window-vertexes
|
|||
byte-array>buffer ; inline
|
||||
|
||||
: <window-vertex-array> ( program-instance -- vertex-array )
|
||||
[ <window-vertex-buffer> ] dip window-vertex <vertex-array*> ; inline
|
||||
[ <window-vertex-buffer> ] dip window-vertex-format <vertex-array*> ; inline
|
||||
|
||||
:: <2d-render-texture> ( dim order type -- renderbuffer texture )
|
||||
order type
|
||||
T{ texture-parameters
|
||||
{ wrap clamp-texcoord-to-edge }
|
||||
{ min-filter filter-linear }
|
||||
{ min-mipmap-filter f } }
|
||||
<texture-2d> [
|
||||
0 <texture-2d-attachment> 1array f f dim <framebuffer>
|
||||
dup { { default-attachment { 0 0 0 } } } clear-framebuffer
|
||||
] keep ;
|
||||
|
||||
: draw-texture ( texture dim -- )
|
||||
{ 0 0 } swap <rect> <viewport-state> set-gpu-state
|
||||
{
|
||||
{ "primitive-mode" [ drop triangle-strip-mode ] }
|
||||
{ "uniforms" [ window-uniforms boa ] }
|
||||
{ "vertex-array" [ drop window-program <program-instance> <window-vertex-array> &dispose ] }
|
||||
{ "indexes" [ drop T{ index-range f 0 4 } ] }
|
||||
} <render-set> render ;
|
||||
|
||||
:: <streamed-vertex-array> ( verts program-instance -- vertex-array )
|
||||
verts stream-upload draw-usage vertex-buffer byte-array>buffer &dispose
|
||||
program-instance <vertex-array> &dispose ;
|
||||
|
||||
: (blended-point-sprite-batch) ( verts framebuffer texture point-size dim -- )
|
||||
f eq-add func-one func-one <blend-mode> dup <blend-state> set-gpu-state
|
||||
f origin-upper-left 1.0 <point-state> set-gpu-state
|
||||
GL_POINT_SPRITE glEnable
|
||||
{ 0 0 } swap <rect> <viewport-state> set-gpu-state
|
||||
window-point-uniforms boa {
|
||||
{ "primitive-mode" [ 3drop points-mode ] }
|
||||
{ "uniforms" [ 2nip ] }
|
||||
{ "vertex-array" [ 2drop window-point-program <program-instance> <streamed-vertex-array> ] }
|
||||
{ "indexes" [ 2drop length 2 / 0 swap <index-range> ] }
|
||||
{ "framebuffer" [ drop nip ] }
|
||||
} 3<render-set> render ;
|
||||
|
||||
:: blended-point-sprite-batch ( verts texture point-size dim -- texture )
|
||||
dim RGB float-components <2d-render-texture> :> ( target-framebuffer target-texture )
|
||||
verts target-framebuffer texture point-size dim (blended-point-sprite-batch)
|
||||
target-framebuffer dispose
|
||||
target-texture ;
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
|
@ -191,7 +191,7 @@ CONSTANT: LIBUSB_ERROR_NOT_SUPPORTED -12
|
|||
CONSTANT: LIBUSB_ERROR_OTHER -99
|
||||
TYPEDEF: int libusb_error
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: libusb_transfer_status
|
||||
LIBUSB_TRANSFER_COMPLETED
|
||||
LIBUSB_TRANSFER_ERROR
|
||||
LIBUSB_TRANSFER_TIMED_OUT
|
||||
|
@ -199,7 +199,6 @@ C-ENUM:
|
|||
LIBUSB_TRANSFER_STALL
|
||||
LIBUSB_TRANSFER_NO_DEVICE
|
||||
LIBUSB_TRANSFER_OVERFLOW ;
|
||||
TYPEDEF: int libusb_transfer_status
|
||||
|
||||
CONSTANT: LIBUSB_TRANSFER_SHORT_NOT_OK 1
|
||||
CONSTANT: LIBUSB_TRANSFER_FREE_BUFFER 2
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2009 Matthew Willis.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.libraries alien.syntax system sequences combinators kernel ;
|
||||
USING: alien.libraries alien.syntax system sequences combinators kernel alien.c-types ;
|
||||
|
||||
IN: llvm.core
|
||||
|
||||
|
@ -28,20 +28,20 @@ LIBRARY: LLVMCore
|
|||
TYPEDEF: uint unsigned
|
||||
TYPEDEF: unsigned enum
|
||||
|
||||
CONSTANT: LLVMZExtAttribute BIN: 1
|
||||
CONSTANT: LLVMSExtAttribute BIN: 10
|
||||
CONSTANT: LLVMNoReturnAttribute BIN: 100
|
||||
CONSTANT: LLVMInRegAttribute BIN: 1000
|
||||
CONSTANT: LLVMStructRetAttribute BIN: 10000
|
||||
CONSTANT: LLVMNoUnwindAttribute BIN: 100000
|
||||
CONSTANT: LLVMNoAliasAttribute BIN: 1000000
|
||||
CONSTANT: LLVMByValAttribute BIN: 10000000
|
||||
CONSTANT: LLVMNestAttribute BIN: 100000000
|
||||
CONSTANT: LLVMReadNoneAttribute BIN: 1000000000
|
||||
CONSTANT: LLVMReadOnlyAttribute BIN: 10000000000
|
||||
TYPEDEF: enum LLVMAttribute;
|
||||
C-ENUM: LLVMAttribute
|
||||
{ LLVMZExtAttribute BIN: 1 }
|
||||
{ LLVMSExtAttribute BIN: 10 }
|
||||
{ LLVMNoReturnAttribute BIN: 100 }
|
||||
{ LLVMInRegAttribute BIN: 1000 }
|
||||
{ LLVMStructRetAttribute BIN: 10000 }
|
||||
{ LLVMNoUnwindAttribute BIN: 100000 }
|
||||
{ LLVMNoAliasAttribute BIN: 1000000 }
|
||||
{ LLVMByValAttribute BIN: 10000000 }
|
||||
{ LLVMNestAttribute BIN: 100000000 }
|
||||
{ LLVMReadNoneAttribute BIN: 1000000000 }
|
||||
{ LLVMReadOnlyAttribute BIN: 10000000000 } ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: LLVMTypeKind
|
||||
LLVMVoidTypeKind
|
||||
LLVMFloatTypeKind
|
||||
LLVMDoubleTypeKind
|
||||
|
@ -57,9 +57,8 @@ C-ENUM:
|
|||
LLVMPointerTypeKind
|
||||
LLVMOpaqueTypeKind
|
||||
LLVMVectorTypeKind ;
|
||||
TYPEDEF: enum LLVMTypeKind
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: LLVMLinkage
|
||||
LLVMExternalLinkage
|
||||
LLVMLinkOnceLinkage
|
||||
LLVMWeakLinkage
|
||||
|
@ -69,34 +68,32 @@ C-ENUM:
|
|||
LLVMDLLExportLinkage
|
||||
LLVMExternalWeakLinkage
|
||||
LLVMGhostLinkage ;
|
||||
TYPEDEF: enum LLVMLinkage
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: LLVMVisibility
|
||||
LLVMDefaultVisibility
|
||||
LLVMHiddenVisibility
|
||||
LLVMProtectedVisibility ;
|
||||
TYPEDEF: enum LLVMVisibility
|
||||
|
||||
CONSTANT: LLVMCCallConv 0
|
||||
CONSTANT: LLVMFastCallConv 8
|
||||
CONSTANT: LLVMColdCallConv 9
|
||||
CONSTANT: LLVMX86StdcallCallConv 64
|
||||
CONSTANT: LLVMX86FastcallCallConv 65
|
||||
TYPEDEF: enum LLVMCallConv
|
||||
C-ENUM: LLVMCallConv
|
||||
{ LLVMCCallConv 0 }
|
||||
{ LLVMFastCallConv 8 }
|
||||
{ LLVMColdCallConv 9 }
|
||||
{ LLVMX86StdcallCallConv 64 }
|
||||
{ LLVMX86FastcallCallConv 65 } ;
|
||||
|
||||
CONSTANT: LLVMIntEQ 32
|
||||
CONSTANT: LLVMIntNE 33
|
||||
CONSTANT: LLVMIntUGT 34
|
||||
CONSTANT: LLVMIntUGE 35
|
||||
CONSTANT: LLVMIntULT 36
|
||||
CONSTANT: LLVMIntULE 37
|
||||
CONSTANT: LLVMIntSGT 38
|
||||
CONSTANT: LLVMIntSGE 39
|
||||
CONSTANT: LLVMIntSLT 40
|
||||
CONSTANT: LLVMIntSLE 41
|
||||
TYPEDEF: enum LLVMIntPredicate
|
||||
C-ENUM: LLVMIntPredicate
|
||||
{ LLVMIntEQ 32 }
|
||||
{ LLVMIntNE 33 }
|
||||
{ LLVMIntUGT 34 }
|
||||
{ LLVMIntUGE 35 }
|
||||
{ LLVMIntULT 36 }
|
||||
{ LLVMIntULE 37 }
|
||||
{ LLVMIntSGT 38 }
|
||||
{ LLVMIntSGE 39 }
|
||||
{ LLVMIntSLT 40 }
|
||||
{ LLVMIntSLE 41 } ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: LLVMRealPredicate
|
||||
LLVMRealPredicateFalse
|
||||
LLVMRealOEQ
|
||||
LLVMRealOGT
|
||||
|
@ -113,7 +110,6 @@ C-ENUM:
|
|||
LLVMRealULE
|
||||
LLVMRealUNE
|
||||
LLVMRealPredicateTrue ;
|
||||
TYPEDEF: enum LLVMRealPredicate
|
||||
|
||||
! Opaque Types
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Erik Charlebois
|
|
@ -0,0 +1,807 @@
|
|||
! Copyright (C) 2010 Erik Charlebois.
|
||||
! See http:// factorcode.org/license.txt for BSD license.
|
||||
USING: alien.c-types alien.syntax classes.struct kernel literals math
|
||||
unix.types ;
|
||||
IN: macho
|
||||
|
||||
TYPEDEF: int integer_t
|
||||
TYPEDEF: int vm_prot_t
|
||||
TYPEDEF: integer_t cpu_type_t
|
||||
TYPEDEF: integer_t cpu_subtype_t
|
||||
TYPEDEF: integer_t cpu_threadtype_t
|
||||
|
||||
CONSTANT: VM_PROT_NONE HEX: 00
|
||||
CONSTANT: VM_PROT_READ HEX: 01
|
||||
CONSTANT: VM_PROT_WRITE HEX: 02
|
||||
CONSTANT: VM_PROT_EXECUTE HEX: 04
|
||||
CONSTANT: VM_PROT_DEFAULT HEX: 03
|
||||
CONSTANT: VM_PROT_ALL HEX: 07
|
||||
CONSTANT: VM_PROT_NO_CHANGE HEX: 08
|
||||
CONSTANT: VM_PROT_COPY HEX: 10
|
||||
CONSTANT: VM_PROT_WANTS_COPY HEX: 10
|
||||
|
||||
! loader.h
|
||||
STRUCT: mach_header
|
||||
{ magic uint32_t }
|
||||
{ cputype cpu_type_t }
|
||||
{ cpusubtype cpu_subtype_t }
|
||||
{ filetype uint32_t }
|
||||
{ ncmds uint32_t }
|
||||
{ sizeofcmds uint32_t }
|
||||
{ flags uint32_t } ;
|
||||
|
||||
CONSTANT: MH_MAGIC HEX: feedface
|
||||
CONSTANT: MH_CIGAM HEX: cefaedfe
|
||||
|
||||
STRUCT: mach_header_64
|
||||
{ magic uint32_t }
|
||||
{ cputype cpu_type_t }
|
||||
{ cpusubtype cpu_subtype_t }
|
||||
{ filetype uint32_t }
|
||||
{ ncmds uint32_t }
|
||||
{ sizeofcmds uint32_t }
|
||||
{ flags uint32_t }
|
||||
{ reserved uint32_t } ;
|
||||
|
||||
CONSTANT: MH_MAGIC_64 HEX: feedfacf
|
||||
CONSTANT: MH_CIGAM_64 HEX: cffaedfe
|
||||
|
||||
CONSTANT: MH_OBJECT HEX: 1
|
||||
CONSTANT: MH_EXECUTE HEX: 2
|
||||
CONSTANT: MH_FVMLIB HEX: 3
|
||||
CONSTANT: MH_CORE HEX: 4
|
||||
CONSTANT: MH_PRELOAD HEX: 5
|
||||
CONSTANT: MH_DYLIB HEX: 6
|
||||
CONSTANT: MH_DYLINKER HEX: 7
|
||||
CONSTANT: MH_BUNDLE HEX: 8
|
||||
CONSTANT: MH_DYLIB_STUB HEX: 9
|
||||
CONSTANT: MH_DSYM HEX: a
|
||||
CONSTANT: MH_KEXT_BUNDLE HEX: b
|
||||
|
||||
CONSTANT: MH_NOUNDEFS HEX: 1
|
||||
CONSTANT: MH_INCRLINK HEX: 2
|
||||
CONSTANT: MH_DYLDLINK HEX: 4
|
||||
CONSTANT: MH_BINDATLOAD HEX: 8
|
||||
CONSTANT: MH_PREBOUND HEX: 10
|
||||
CONSTANT: MH_SPLIT_SEGS HEX: 20
|
||||
CONSTANT: MH_LAZY_INIT HEX: 40
|
||||
CONSTANT: MH_TWOLEVEL HEX: 80
|
||||
CONSTANT: MH_FORCE_FLAT HEX: 100
|
||||
CONSTANT: MH_NOMULTIDEFS HEX: 200
|
||||
CONSTANT: MH_NOFIXPREBINDING HEX: 400
|
||||
CONSTANT: MH_PREBINDABLE HEX: 800
|
||||
CONSTANT: MH_ALLMODSBOUND HEX: 1000
|
||||
CONSTANT: MH_SUBSECTIONS_VIA_SYMBOLS HEX: 2000
|
||||
CONSTANT: MH_CANONICAL HEX: 4000
|
||||
CONSTANT: MH_WEAK_DEFINES HEX: 8000
|
||||
CONSTANT: MH_BINDS_TO_WEAK HEX: 10000
|
||||
CONSTANT: MH_ALLOW_STACK_EXECUTION HEX: 20000
|
||||
CONSTANT: MH_DEAD_STRIPPABLE_DYLIB HEX: 400000
|
||||
CONSTANT: MH_ROOT_SAFE HEX: 40000
|
||||
CONSTANT: MH_SETUID_SAFE HEX: 80000
|
||||
CONSTANT: MH_NO_REEXPORTED_DYLIBS HEX: 100000
|
||||
CONSTANT: MH_PIE HEX: 200000
|
||||
|
||||
STRUCT: load_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t } ;
|
||||
|
||||
CONSTANT: LC_REQ_DYLD HEX: 80000000
|
||||
|
||||
CONSTANT: LC_SEGMENT HEX: 1
|
||||
CONSTANT: LC_SYMTAB HEX: 2
|
||||
CONSTANT: LC_SYMSEG HEX: 3
|
||||
CONSTANT: LC_THREAD HEX: 4
|
||||
CONSTANT: LC_UNIXTHREAD HEX: 5
|
||||
CONSTANT: LC_LOADFVMLIB HEX: 6
|
||||
CONSTANT: LC_IDFVMLIB HEX: 7
|
||||
CONSTANT: LC_IDENT HEX: 8
|
||||
CONSTANT: LC_FVMFILE HEX: 9
|
||||
CONSTANT: LC_PREPAGE HEX: a
|
||||
CONSTANT: LC_DYSYMTAB HEX: b
|
||||
CONSTANT: LC_LOAD_DYLIB HEX: c
|
||||
CONSTANT: LC_ID_DYLIB HEX: d
|
||||
CONSTANT: LC_LOAD_DYLINKER HEX: e
|
||||
CONSTANT: LC_ID_DYLINKER HEX: f
|
||||
CONSTANT: LC_PREBOUND_DYLIB HEX: 10
|
||||
CONSTANT: LC_ROUTINES HEX: 11
|
||||
CONSTANT: LC_SUB_FRAMEWORK HEX: 12
|
||||
CONSTANT: LC_SUB_UMBRELLA HEX: 13
|
||||
CONSTANT: LC_SUB_CLIENT HEX: 14
|
||||
CONSTANT: LC_SUB_LIBRARY HEX: 15
|
||||
CONSTANT: LC_TWOLEVEL_HINTS HEX: 16
|
||||
CONSTANT: LC_PREBIND_CKSUM HEX: 17
|
||||
CONSTANT: LC_LOAD_WEAK_DYLIB HEX: 80000018
|
||||
CONSTANT: LC_SEGMENT_64 HEX: 19
|
||||
CONSTANT: LC_ROUTINES_64 HEX: 1a
|
||||
CONSTANT: LC_UUID HEX: 1b
|
||||
CONSTANT: LC_RPATH HEX: 8000001c
|
||||
CONSTANT: LC_CODE_SIGNATURE HEX: 1d
|
||||
CONSTANT: LC_SEGMENT_SPLIT_INFO HEX: 1e
|
||||
CONSTANT: LC_REEXPORT_DYLIB HEX: 8000001f
|
||||
CONSTANT: LC_LAZY_LOAD_DYLIB HEX: 20
|
||||
CONSTANT: LC_ENCRYPTION_INFO HEX: 21
|
||||
CONSTANT: LC_DYLD_INFO HEX: 22
|
||||
CONSTANT: LC_DYLD_INFO_ONLY HEX: 80000022
|
||||
|
||||
UNION-STRUCT: lc_str
|
||||
{ offset uint32_t }
|
||||
{ ptr char* } ;
|
||||
|
||||
STRUCT: segment_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ segname char[16] }
|
||||
{ vmaddr uint32_t }
|
||||
{ vmsize uint32_t }
|
||||
{ fileoff uint32_t }
|
||||
{ filesize uint32_t }
|
||||
{ maxprot vm_prot_t }
|
||||
{ initprot vm_prot_t }
|
||||
{ nsects uint32_t }
|
||||
{ flags uint32_t } ;
|
||||
|
||||
STRUCT: segment_command_64
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ segname char[16] }
|
||||
{ vmaddr uint64_t }
|
||||
{ vmsize uint64_t }
|
||||
{ fileoff uint64_t }
|
||||
{ filesize uint64_t }
|
||||
{ maxprot vm_prot_t }
|
||||
{ initprot vm_prot_t }
|
||||
{ nsects uint32_t }
|
||||
{ flags uint32_t } ;
|
||||
|
||||
CONSTANT: SG_HIGHVM HEX: 1
|
||||
CONSTANT: SG_FVMLIB HEX: 2
|
||||
CONSTANT: SG_NORELOC HEX: 4
|
||||
CONSTANT: SG_PROTECTED_VERSION_1 HEX: 8
|
||||
|
||||
STRUCT: section
|
||||
{ sectname char[16] }
|
||||
{ segname char[16] }
|
||||
{ addr uint32_t }
|
||||
{ size uint32_t }
|
||||
{ offset uint32_t }
|
||||
{ align uint32_t }
|
||||
{ reloff uint32_t }
|
||||
{ nreloc uint32_t }
|
||||
{ flags uint32_t }
|
||||
{ reserved1 uint32_t }
|
||||
{ reserved2 uint32_t } ;
|
||||
|
||||
STRUCT: section_64
|
||||
{ sectname char[16] }
|
||||
{ segname char[16] }
|
||||
{ addr uint64_t }
|
||||
{ size uint64_t }
|
||||
{ offset uint32_t }
|
||||
{ align uint32_t }
|
||||
{ reloff uint32_t }
|
||||
{ nreloc uint32_t }
|
||||
{ flags uint32_t }
|
||||
{ reserved1 uint32_t }
|
||||
{ reserved2 uint32_t }
|
||||
{ reserved3 uint32_t } ;
|
||||
|
||||
CONSTANT: SECTION_TYPE HEX: 000000ff
|
||||
CONSTANT: SECTION_ATTRIBUTES HEX: ffffff00
|
||||
|
||||
CONSTANT: S_REGULAR HEX: 0
|
||||
CONSTANT: S_ZEROFILL HEX: 1
|
||||
CONSTANT: S_CSTRING_LITERALS HEX: 2
|
||||
CONSTANT: S_4BYTE_LITERALS HEX: 3
|
||||
CONSTANT: S_8BYTE_LITERALS HEX: 4
|
||||
CONSTANT: S_LITERAL_POINTERS HEX: 5
|
||||
CONSTANT: S_NON_LAZY_SYMBOL_POINTERS HEX: 6
|
||||
CONSTANT: S_LAZY_SYMBOL_POINTERS HEX: 7
|
||||
CONSTANT: S_SYMBOL_STUBS HEX: 8
|
||||
CONSTANT: S_MOD_INIT_FUNC_POINTERS HEX: 9
|
||||
CONSTANT: S_MOD_TERM_FUNC_POINTERS HEX: a
|
||||
CONSTANT: S_COALESCED HEX: b
|
||||
CONSTANT: S_GB_ZEROFILL HEX: c
|
||||
CONSTANT: S_INTERPOSING HEX: d
|
||||
CONSTANT: S_16BYTE_LITERALS HEX: e
|
||||
CONSTANT: S_DTRACE_DOF HEX: f
|
||||
CONSTANT: S_LAZY_DYLIB_SYMBOL_POINTERS HEX: 10
|
||||
|
||||
CONSTANT: SECTION_ATTRIBUTES_USR HEX: ff000000
|
||||
CONSTANT: S_ATTR_PURE_INSTRUCTIONS HEX: 80000000
|
||||
CONSTANT: S_ATTR_NO_TOC HEX: 40000000
|
||||
CONSTANT: S_ATTR_STRIP_STATIC_SYMS HEX: 20000000
|
||||
CONSTANT: S_ATTR_NO_DEAD_STRIP HEX: 10000000
|
||||
CONSTANT: S_ATTR_LIVE_SUPPORT HEX: 08000000
|
||||
CONSTANT: S_ATTR_SELF_MODIFYING_CODE HEX: 04000000
|
||||
CONSTANT: S_ATTR_DEBUG HEX: 02000000
|
||||
CONSTANT: SECTION_ATTRIBUTES_SYS HEX: 00ffff00
|
||||
CONSTANT: S_ATTR_SOME_INSTRUCTIONS HEX: 00000400
|
||||
CONSTANT: S_ATTR_EXT_RELOC HEX: 00000200
|
||||
CONSTANT: S_ATTR_LOC_RELOC HEX: 00000100
|
||||
|
||||
CONSTANT: SEG_PAGEZERO "__PAGEZERO"
|
||||
CONSTANT: SEG_TEXT "__TEXT"
|
||||
CONSTANT: SECT_TEXT "__text"
|
||||
CONSTANT: SECT_FVMLIB_INIT0 "__fvmlib_init0"
|
||||
CONSTANT: SECT_FVMLIB_INIT1 "__fvmlib_init1"
|
||||
CONSTANT: SEG_DATA "__DATA"
|
||||
CONSTANT: SECT_DATA "__data"
|
||||
CONSTANT: SECT_BSS "__bss"
|
||||
CONSTANT: SECT_COMMON "__common"
|
||||
CONSTANT: SEG_OBJC "__OBJC"
|
||||
CONSTANT: SECT_OBJC_SYMBOLS "__symbol_table"
|
||||
CONSTANT: SECT_OBJC_MODULES "__module_info"
|
||||
CONSTANT: SECT_OBJC_STRINGS "__selector_strs"
|
||||
CONSTANT: SECT_OBJC_REFS "__selector_refs"
|
||||
CONSTANT: SEG_ICON "__ICON"
|
||||
CONSTANT: SECT_ICON_HEADER "__header"
|
||||
CONSTANT: SECT_ICON_TIFF "__tiff"
|
||||
CONSTANT: SEG_LINKEDIT "__LINKEDIT"
|
||||
CONSTANT: SEG_UNIXSTACK "__UNIXSTACK"
|
||||
CONSTANT: SEG_IMPORT "__IMPORT"
|
||||
|
||||
STRUCT: fvmlib
|
||||
{ name lc_str }
|
||||
{ minor_version uint32_t }
|
||||
{ header_addr uint32_t } ;
|
||||
|
||||
STRUCT: fvmlib_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ fvmlib fvmlib } ;
|
||||
|
||||
STRUCT: dylib
|
||||
{ name lc_str }
|
||||
{ timestamp uint32_t }
|
||||
{ current_version uint32_t }
|
||||
{ compatibility_version uint32_t } ;
|
||||
|
||||
STRUCT: dylib_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ dylib dylib } ;
|
||||
|
||||
STRUCT: sub_framework_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ umbrella lc_str } ;
|
||||
|
||||
STRUCT: sub_client_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ client lc_str } ;
|
||||
|
||||
STRUCT: sub_umbrella_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ sub_umbrella lc_str } ;
|
||||
|
||||
STRUCT: sub_library_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ sub_library lc_str } ;
|
||||
|
||||
STRUCT: prebound_dylib_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ name lc_str }
|
||||
{ nmodules uint32_t }
|
||||
{ linked_modules lc_str } ;
|
||||
|
||||
STRUCT: dylinker_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ name lc_str } ;
|
||||
|
||||
STRUCT: thread_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t } ;
|
||||
|
||||
STRUCT: routines_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ init_address uint32_t }
|
||||
{ init_module uint32_t }
|
||||
{ reserved1 uint32_t }
|
||||
{ reserved2 uint32_t }
|
||||
{ reserved3 uint32_t }
|
||||
{ reserved4 uint32_t }
|
||||
{ reserved5 uint32_t }
|
||||
{ reserved6 uint32_t } ;
|
||||
|
||||
STRUCT: routines_command_64
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ init_address uint64_t }
|
||||
{ init_module uint64_t }
|
||||
{ reserved1 uint64_t }
|
||||
{ reserved2 uint64_t }
|
||||
{ reserved3 uint64_t }
|
||||
{ reserved4 uint64_t }
|
||||
{ reserved5 uint64_t }
|
||||
{ reserved6 uint64_t } ;
|
||||
|
||||
STRUCT: symtab_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ symoff uint32_t }
|
||||
{ nsyms uint32_t }
|
||||
{ stroff uint32_t }
|
||||
{ strsize uint32_t } ;
|
||||
|
||||
STRUCT: dysymtab_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ ilocalsym uint32_t }
|
||||
{ nlocalsym uint32_t }
|
||||
{ iextdefsym uint32_t }
|
||||
{ nextdefsym uint32_t }
|
||||
{ iundefsym uint32_t }
|
||||
{ nundefsym uint32_t }
|
||||
{ tocoff uint32_t }
|
||||
{ ntoc uint32_t }
|
||||
{ modtaboff uint32_t }
|
||||
{ nmodtab uint32_t }
|
||||
{ extrefsymoff uint32_t }
|
||||
{ nextrefsyms uint32_t }
|
||||
{ indirectsymoff uint32_t }
|
||||
{ nindirectsyms uint32_t }
|
||||
{ extreloff uint32_t }
|
||||
{ nextrel uint32_t }
|
||||
{ locreloff uint32_t }
|
||||
{ nlocrel uint32_t } ;
|
||||
|
||||
CONSTANT: INDIRECT_SYMBOL_LOCAL HEX: 80000000
|
||||
CONSTANT: INDIRECT_SYMBOL_ABS HEX: 40000000
|
||||
|
||||
STRUCT: dylib_table_of_contents
|
||||
{ symbol_index uint32_t }
|
||||
{ module_index uint32_t } ;
|
||||
|
||||
STRUCT: dylib_module
|
||||
{ module_name uint32_t }
|
||||
{ iextdefsym uint32_t }
|
||||
{ nextdefsym uint32_t }
|
||||
{ irefsym uint32_t }
|
||||
{ nrefsym uint32_t }
|
||||
{ ilocalsym uint32_t }
|
||||
{ nlocalsym uint32_t }
|
||||
{ iextrel uint32_t }
|
||||
{ nextrel uint32_t }
|
||||
{ iinit_iterm uint32_t }
|
||||
{ ninit_nterm uint32_t }
|
||||
{ objc_module_info_addr uint32_t }
|
||||
{ objc_module_info_size uint32_t } ;
|
||||
|
||||
STRUCT: dylib_module_64
|
||||
{ module_name uint32_t }
|
||||
{ iextdefsym uint32_t }
|
||||
{ nextdefsym uint32_t }
|
||||
{ irefsym uint32_t }
|
||||
{ nrefsym uint32_t }
|
||||
{ ilocalsym uint32_t }
|
||||
{ nlocalsym uint32_t }
|
||||
{ iextrel uint32_t }
|
||||
{ nextrel uint32_t }
|
||||
{ iinit_iterm uint32_t }
|
||||
{ ninit_nterm uint32_t }
|
||||
{ objc_module_info_size uint32_t }
|
||||
{ objc_module_info_addr uint64_t } ;
|
||||
|
||||
STRUCT: dylib_reference
|
||||
{ isym_flags uint32_t } ;
|
||||
|
||||
STRUCT: twolevel_hints_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ offset uint32_t }
|
||||
{ nhints uint32_t } ;
|
||||
|
||||
STRUCT: twolevel_hint
|
||||
{ isub_image_itoc uint32_t } ;
|
||||
|
||||
STRUCT: prebind_cksum_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ cksum uint32_t } ;
|
||||
|
||||
STRUCT: uuid_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ uuid uint8_t[16] } ;
|
||||
|
||||
STRUCT: rpath_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ path lc_str } ;
|
||||
|
||||
STRUCT: linkedit_data_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ dataoff uint32_t }
|
||||
{ datasize uint32_t } ;
|
||||
|
||||
STRUCT: encryption_info_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ cryptoff uint32_t }
|
||||
{ cryptsize uint32_t }
|
||||
{ cryptid uint32_t } ;
|
||||
|
||||
STRUCT: dyld_info_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ rebase_off uint32_t }
|
||||
{ rebase_size uint32_t }
|
||||
{ bind_off uint32_t }
|
||||
{ bind_size uint32_t }
|
||||
{ weak_bind_off uint32_t }
|
||||
{ weak_bind_size uint32_t }
|
||||
{ lazy_bind_off uint32_t }
|
||||
{ lazy_bind_size uint32_t }
|
||||
{ export_off uint32_t }
|
||||
{ export_size uint32_t } ;
|
||||
|
||||
CONSTANT: REBASE_TYPE_POINTER 1
|
||||
CONSTANT: REBASE_TYPE_TEXT_ABSOLUTE32 2
|
||||
CONSTANT: REBASE_TYPE_TEXT_PCREL32 3
|
||||
|
||||
CONSTANT: REBASE_OPCODE_MASK HEX: F0
|
||||
CONSTANT: REBASE_IMMEDIATE_MASK HEX: 0F
|
||||
CONSTANT: REBASE_OPCODE_DONE HEX: 00
|
||||
CONSTANT: REBASE_OPCODE_SET_TYPE_IMM HEX: 10
|
||||
CONSTANT: REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB HEX: 20
|
||||
CONSTANT: REBASE_OPCODE_ADD_ADDR_ULEB HEX: 30
|
||||
CONSTANT: REBASE_OPCODE_ADD_ADDR_IMM_SCALED HEX: 40
|
||||
CONSTANT: REBASE_OPCODE_DO_REBASE_IMM_TIMES HEX: 50
|
||||
CONSTANT: REBASE_OPCODE_DO_REBASE_ULEB_TIMES HEX: 60
|
||||
CONSTANT: REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB HEX: 70
|
||||
CONSTANT: REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB HEX: 80
|
||||
|
||||
CONSTANT: BIND_TYPE_POINTER 1
|
||||
CONSTANT: BIND_TYPE_TEXT_ABSOLUTE32 2
|
||||
CONSTANT: BIND_TYPE_TEXT_PCREL32 3
|
||||
|
||||
CONSTANT: BIND_SPECIAL_DYLIB_SELF 0
|
||||
CONSTANT: BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE -1
|
||||
CONSTANT: BIND_SPECIAL_DYLIB_FLAT_LOOKUP -2
|
||||
|
||||
CONSTANT: BIND_SYMBOL_FLAGS_WEAK_IMPORT HEX: 1
|
||||
CONSTANT: BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION HEX: 8
|
||||
|
||||
CONSTANT: BIND_OPCODE_MASK HEX: F0
|
||||
CONSTANT: BIND_IMMEDIATE_MASK HEX: 0F
|
||||
CONSTANT: BIND_OPCODE_DONE HEX: 00
|
||||
CONSTANT: BIND_OPCODE_SET_DYLIB_ORDINAL_IMM HEX: 10
|
||||
CONSTANT: BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB HEX: 20
|
||||
CONSTANT: BIND_OPCODE_SET_DYLIB_SPECIAL_IMM HEX: 30
|
||||
CONSTANT: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM HEX: 40
|
||||
CONSTANT: BIND_OPCODE_SET_TYPE_IMM HEX: 50
|
||||
CONSTANT: BIND_OPCODE_SET_ADDEND_SLEB HEX: 60
|
||||
CONSTANT: BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB HEX: 70
|
||||
CONSTANT: BIND_OPCODE_ADD_ADDR_ULEB HEX: 80
|
||||
CONSTANT: BIND_OPCODE_DO_BIND HEX: 90
|
||||
CONSTANT: BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB HEX: A0
|
||||
CONSTANT: BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED HEX: B0
|
||||
CONSTANT: BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB HEX: C0
|
||||
|
||||
CONSTANT: EXPORT_SYMBOL_FLAGS_KIND_MASK HEX: 03
|
||||
CONSTANT: EXPORT_SYMBOL_FLAGS_KIND_REGULAR HEX: 00
|
||||
CONSTANT: EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL HEX: 01
|
||||
CONSTANT: EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION HEX: 04
|
||||
CONSTANT: EXPORT_SYMBOL_FLAGS_INDIRECT_DEFINITION HEX: 08
|
||||
CONSTANT: EXPORT_SYMBOL_FLAGS_HAS_SPECIALIZATIONS HEX: 10
|
||||
|
||||
STRUCT: symseg_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ offset uint32_t }
|
||||
{ size uint32_t } ;
|
||||
|
||||
STRUCT: ident_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t } ;
|
||||
|
||||
STRUCT: fvmfile_command
|
||||
{ cmd uint32_t }
|
||||
{ cmdsize uint32_t }
|
||||
{ name lc_str }
|
||||
{ header_addr uint32_t } ;
|
||||
|
||||
! machine.h
|
||||
CONSTANT: CPU_STATE_MAX 4
|
||||
CONSTANT: CPU_STATE_USER 0
|
||||
CONSTANT: CPU_STATE_SYSTEM 1
|
||||
CONSTANT: CPU_STATE_IDLE 2
|
||||
CONSTANT: CPU_STATE_NICE 3
|
||||
|
||||
CONSTANT: CPU_ARCH_MASK HEX: ff000000
|
||||
CONSTANT: CPU_ARCH_ABI64 HEX: 01000000
|
||||
|
||||
CONSTANT: CPU_TYPE_ANY -1
|
||||
CONSTANT: CPU_TYPE_VAX 1
|
||||
CONSTANT: CPU_TYPE_MC680x0 6
|
||||
CONSTANT: CPU_TYPE_X86 7
|
||||
CONSTANT: CPU_TYPE_I386 $ CPU_TYPE_X86
|
||||
CONSTANT: CPU_TYPE_X86_64 $[ CPU_TYPE_X86 CPU_ARCH_ABI64 bitor ]
|
||||
CONSTANT: CPU_TYPE_MC98000 10
|
||||
CONSTANT: CPU_TYPE_HPPA 11
|
||||
CONSTANT: CPU_TYPE_ARM 12
|
||||
CONSTANT: CPU_TYPE_MC88000 13
|
||||
CONSTANT: CPU_TYPE_SPARC 14
|
||||
CONSTANT: CPU_TYPE_I860 15
|
||||
CONSTANT: CPU_TYPE_POWERPC 18
|
||||
CONSTANT: CPU_TYPE_POWERPC64 $[ $ CPU_TYPE_POWERPC CPU_ARCH_ABI64 bitor ]
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_MASK HEX: ff000000
|
||||
CONSTANT: CPU_SUBTYPE_LIB64 HEX: 80000000
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_MULTIPLE -1
|
||||
CONSTANT: CPU_SUBTYPE_LITTLE_ENDIAN 0
|
||||
CONSTANT: CPU_SUBTYPE_BIG_ENDIAN 1
|
||||
|
||||
CONSTANT: CPU_THREADTYPE_NONE 0
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_VAX_ALL 0
|
||||
CONSTANT: CPU_SUBTYPE_VAX780 1
|
||||
CONSTANT: CPU_SUBTYPE_VAX785 2
|
||||
CONSTANT: CPU_SUBTYPE_VAX750 3
|
||||
CONSTANT: CPU_SUBTYPE_VAX730 4
|
||||
CONSTANT: CPU_SUBTYPE_UVAXI 5
|
||||
CONSTANT: CPU_SUBTYPE_UVAXII 6
|
||||
CONSTANT: CPU_SUBTYPE_VAX8200 7
|
||||
CONSTANT: CPU_SUBTYPE_VAX8500 8
|
||||
CONSTANT: CPU_SUBTYPE_VAX8600 9
|
||||
CONSTANT: CPU_SUBTYPE_VAX8650 10
|
||||
CONSTANT: CPU_SUBTYPE_VAX8800 11
|
||||
CONSTANT: CPU_SUBTYPE_UVAXIII 12
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_MC680x0_ALL 1
|
||||
CONSTANT: CPU_SUBTYPE_MC68030 1
|
||||
CONSTANT: CPU_SUBTYPE_MC68040 2
|
||||
CONSTANT: CPU_SUBTYPE_MC68030_ONLY 3
|
||||
|
||||
: CPU_SUBTYPE_INTEL ( f m -- subtype ) 4 shift + ; inline
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_I386_ALL 3
|
||||
CONSTANT: CPU_SUBTYPE_386 3
|
||||
CONSTANT: CPU_SUBTYPE_486 4
|
||||
CONSTANT: CPU_SUBTYPE_486SX 132
|
||||
CONSTANT: CPU_SUBTYPE_586 5
|
||||
CONSTANT: CPU_SUBTYPE_PENT 5
|
||||
CONSTANT: CPU_SUBTYPE_PENTPRO 22
|
||||
CONSTANT: CPU_SUBTYPE_PENTII_M3 54
|
||||
CONSTANT: CPU_SUBTYPE_PENTII_M5 86
|
||||
CONSTANT: CPU_SUBTYPE_CELERON 103
|
||||
CONSTANT: CPU_SUBTYPE_CELERON_MOBILE 119
|
||||
CONSTANT: CPU_SUBTYPE_PENTIUM_3 8
|
||||
CONSTANT: CPU_SUBTYPE_PENTIUM_3_M 24
|
||||
CONSTANT: CPU_SUBTYPE_PENTIUM_3_XEON 40
|
||||
CONSTANT: CPU_SUBTYPE_PENTIUM_M 9
|
||||
CONSTANT: CPU_SUBTYPE_PENTIUM_4 10
|
||||
CONSTANT: CPU_SUBTYPE_PENTIUM_4_M 26
|
||||
CONSTANT: CPU_SUBTYPE_ITANIUM 11
|
||||
CONSTANT: CPU_SUBTYPE_ITANIUM_2 27
|
||||
CONSTANT: CPU_SUBTYPE_XEON 12
|
||||
CONSTANT: CPU_SUBTYPE_XEON_MP 28
|
||||
|
||||
: CPU_SUBTYPE_INTEL_FAMILY ( x -- family ) 15 bitand ; inline
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_INTEL_FAMILY_MAX 15
|
||||
|
||||
: CPU_SUBTYPE_INTEL_MODEL ( x -- model ) -4 shift ; inline
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_INTEL_MODEL_ALL 0
|
||||
CONSTANT: CPU_SUBTYPE_X86_ALL 3
|
||||
CONSTANT: CPU_SUBTYPE_X86_64_ALL 3
|
||||
CONSTANT: CPU_SUBTYPE_X86_ARCH1 4
|
||||
CONSTANT: CPU_THREADTYPE_INTEL_HTT 1
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_MIPS_ALL 0
|
||||
CONSTANT: CPU_SUBTYPE_MIPS_R2300 1
|
||||
CONSTANT: CPU_SUBTYPE_MIPS_R2600 2
|
||||
CONSTANT: CPU_SUBTYPE_MIPS_R2800 3
|
||||
CONSTANT: CPU_SUBTYPE_MIPS_R2000a 4
|
||||
CONSTANT: CPU_SUBTYPE_MIPS_R2000 5
|
||||
CONSTANT: CPU_SUBTYPE_MIPS_R3000a 6
|
||||
CONSTANT: CPU_SUBTYPE_MIPS_R3000 7
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_MC98000_ALL 0
|
||||
CONSTANT: CPU_SUBTYPE_MC98601 1
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_HPPA_ALL 0
|
||||
CONSTANT: CPU_SUBTYPE_HPPA_7100 0
|
||||
CONSTANT: CPU_SUBTYPE_HPPA_7100LC 1
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_MC88000_ALL 0
|
||||
CONSTANT: CPU_SUBTYPE_MC88100 1
|
||||
CONSTANT: CPU_SUBTYPE_MC88110 2
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_SPARC_ALL 0
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_I860_ALL 0
|
||||
CONSTANT: CPU_SUBTYPE_I860_860 1
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_ALL 0
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_601 1
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_602 2
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_603 3
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_603e 4
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_603ev 5
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_604 6
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_604e 7
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_620 8
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_750 9
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_7400 10
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_7450 11
|
||||
CONSTANT: CPU_SUBTYPE_POWERPC_970 100
|
||||
|
||||
CONSTANT: CPU_SUBTYPE_ARM_ALL 0
|
||||
CONSTANT: CPU_SUBTYPE_ARM_V4T 5
|
||||
CONSTANT: CPU_SUBTYPE_ARM_V6 6
|
||||
CONSTANT: CPU_SUBTYPE_ARM_V5TEJ 7
|
||||
CONSTANT: CPU_SUBTYPE_ARM_XSCALE 8
|
||||
CONSTANT: CPU_SUBTYPE_ARM_V7 9
|
||||
|
||||
CONSTANT: CPUFAMILY_UNKNOWN 0
|
||||
CONSTANT: CPUFAMILY_POWERPC_G3 HEX: cee41549
|
||||
CONSTANT: CPUFAMILY_POWERPC_G4 HEX: 77c184ae
|
||||
CONSTANT: CPUFAMILY_POWERPC_G5 HEX: ed76d8aa
|
||||
CONSTANT: CPUFAMILY_INTEL_6_13 HEX: aa33392b
|
||||
CONSTANT: CPUFAMILY_INTEL_6_14 HEX: 73d67300
|
||||
CONSTANT: CPUFAMILY_INTEL_6_15 HEX: 426f69ef
|
||||
CONSTANT: CPUFAMILY_INTEL_6_23 HEX: 78ea4fbc
|
||||
CONSTANT: CPUFAMILY_INTEL_6_26 HEX: 6b5a4cd2
|
||||
CONSTANT: CPUFAMILY_ARM_9 HEX: e73283ae
|
||||
CONSTANT: CPUFAMILY_ARM_11 HEX: 8ff620d8
|
||||
CONSTANT: CPUFAMILY_ARM_XSCALE HEX: 53b005f5
|
||||
CONSTANT: CPUFAMILY_ARM_13 HEX: 0cc90e64
|
||||
|
||||
CONSTANT: CPUFAMILY_INTEL_YONAH $ CPUFAMILY_INTEL_6_14
|
||||
CONSTANT: CPUFAMILY_INTEL_MEROM $ CPUFAMILY_INTEL_6_15
|
||||
CONSTANT: CPUFAMILY_INTEL_PENRYN $ CPUFAMILY_INTEL_6_23
|
||||
CONSTANT: CPUFAMILY_INTEL_NEHALEM $ CPUFAMILY_INTEL_6_26
|
||||
|
||||
CONSTANT: CPUFAMILY_INTEL_CORE $ CPUFAMILY_INTEL_6_14
|
||||
CONSTANT: CPUFAMILY_INTEL_CORE2 $ CPUFAMILY_INTEL_6_15
|
||||
|
||||
! fat.h
|
||||
CONSTANT: FAT_MAGIC HEX: cafebabe
|
||||
CONSTANT: FAT_CIGAM HEX: bebafeca
|
||||
|
||||
STRUCT: fat_header
|
||||
{ magic uint32_t }
|
||||
{ nfat_arch uint32_t } ;
|
||||
|
||||
STRUCT: fat_arch
|
||||
{ cputype cpu_type_t }
|
||||
{ cpusubtype cpu_subtype_t }
|
||||
{ offset uint32_t }
|
||||
{ size uint32_t }
|
||||
{ align uint32_t } ;
|
||||
|
||||
! nlist.h
|
||||
STRUCT: nlist
|
||||
{ n_strx int32_t }
|
||||
{ n_type uint8_t }
|
||||
{ n_sect uint8_t }
|
||||
{ n_desc int16_t }
|
||||
{ n_value uint32_t } ;
|
||||
|
||||
STRUCT: nlist_64
|
||||
{ n_strx uint32_t }
|
||||
{ n_type uint8_t }
|
||||
{ n_sect uint8_t }
|
||||
{ n_desc uint16_t }
|
||||
{ n_value uint64_t } ;
|
||||
|
||||
CONSTANT: N_STAB HEX: e0
|
||||
CONSTANT: N_PEXT HEX: 10
|
||||
CONSTANT: N_TYPE HEX: 0e
|
||||
CONSTANT: N_EXT HEX: 01
|
||||
|
||||
CONSTANT: N_UNDF HEX: 0
|
||||
CONSTANT: N_ABS HEX: 2
|
||||
CONSTANT: N_SECT HEX: e
|
||||
CONSTANT: N_PBUD HEX: c
|
||||
CONSTANT: N_INDR HEX: a
|
||||
|
||||
CONSTANT: NO_SECT 0
|
||||
CONSTANT: MAX_SECT 255
|
||||
|
||||
: GET_COMM_ALIGN ( n_desc -- align )
|
||||
-8 shift HEX: 0f bitand ; inline
|
||||
|
||||
: SET_COMM_ALIGN ( n_desc align -- n_desc )
|
||||
[ HEX: f0ff bitand ]
|
||||
[ HEX: 000f bitand 8 shift ] bi* bitor ; inline
|
||||
|
||||
CONSTANT: REFERENCE_TYPE 7
|
||||
CONSTANT: REFERENCE_FLAG_UNDEFINED_NON_LAZY 0
|
||||
CONSTANT: REFERENCE_FLAG_UNDEFINED_LAZY 1
|
||||
CONSTANT: REFERENCE_FLAG_DEFINED 2
|
||||
CONSTANT: REFERENCE_FLAG_PRIVATE_DEFINED 3
|
||||
CONSTANT: REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY 4
|
||||
CONSTANT: REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY 5
|
||||
|
||||
CONSTANT: REFERENCED_DYNAMICALLY HEX: 0010
|
||||
|
||||
: GET_LIBRARY_ORDINAL ( n_desc -- ordinal )
|
||||
-8 shift HEX: ff bitand ; inline
|
||||
|
||||
: SET_LIBRARY_ORDINAL ( n_desc ordinal -- n_desc )
|
||||
[ HEX: 00ff bitand ]
|
||||
[ HEX: 00ff bitand 8 shift ] bi* bitor ; inline
|
||||
|
||||
CONSTANT: SELF_LIBRARY_ORDINAL HEX: 0
|
||||
CONSTANT: MAX_LIBRARY_ORDINAL HEX: fd
|
||||
CONSTANT: DYNAMIC_LOOKUP_ORDINAL HEX: fe
|
||||
CONSTANT: EXECUTABLE_ORDINAL HEX: ff
|
||||
|
||||
CONSTANT: N_NO_DEAD_STRIP HEX: 0020
|
||||
CONSTANT: N_DESC_DISCARDED HEX: 0020
|
||||
CONSTANT: N_WEAK_REF HEX: 0040
|
||||
CONSTANT: N_WEAK_DEF HEX: 0080
|
||||
CONSTANT: N_REF_TO_WEAK HEX: 0080
|
||||
CONSTANT: N_ARM_THUMB_DEF HEX: 0008
|
||||
|
||||
! ranlib.h
|
||||
CONSTANT: SYMDEF "__.SYMDEF"
|
||||
CONSTANT: SYMDEF_SORTED "__.SYMDEF SORTED"
|
||||
|
||||
STRUCT: ranlib
|
||||
{ ran_strx uint32_t }
|
||||
{ ran_off uint32_t } ;
|
||||
|
||||
! reloc.h
|
||||
STRUCT: relocation_info
|
||||
{ r_address int32_t }
|
||||
{ r_symbolnum_pcrel_length_extern_type uint32_t } ;
|
||||
|
||||
CONSTANT: R_ABS 0
|
||||
CONSTANT: R_SCATTERED HEX: 80000000
|
||||
|
||||
STRUCT: scattered_relocation_info_big_endian
|
||||
{ r_scattered_pcrel_length_type_address uint32_t }
|
||||
{ r_value int32_t } ;
|
||||
|
||||
STRUCT: scattered_relocation_info_little_endian
|
||||
{ r_address_type_length_pcrel_scattered uint32_t }
|
||||
{ r_value int32_t } ;
|
||||
|
||||
C-ENUM: reloc_type_generic
|
||||
GENERIC_RELOC_VANILLA
|
||||
GENERIC_RELOC_PAIR
|
||||
GENERIC_RELOC_SECTDIFF
|
||||
GENERIC_RELOC_PB_LA_PTR
|
||||
GENERIC_RELOC_LOCAL_SECTDIFF ;
|
||||
|
||||
C-ENUM: reloc_type_x86_64
|
||||
X86_64_RELOC_UNSIGNED
|
||||
X86_64_RELOC_SIGNED
|
||||
X86_64_RELOC_BRANCH
|
||||
X86_64_RELOC_GOT_LOAD
|
||||
X86_64_RELOC_GOT
|
||||
X86_64_RELOC_SUBTRACTOR
|
||||
X86_64_RELOC_SIGNED_1
|
||||
X86_64_RELOC_SIGNED_2
|
||||
X86_64_RELOC_SIGNED_4 ;
|
||||
|
||||
C-ENUM: reloc_type_ppc
|
||||
PPC_RELOC_VANILLA
|
||||
PPC_RELOC_PAIR
|
||||
PPC_RELOC_BR14
|
||||
PPC_RELOC_BR24
|
||||
PPC_RELOC_HI16
|
||||
PPC_RELOC_LO16
|
||||
PPC_RELOC_HA16
|
||||
PPC_RELOC_LO14
|
||||
PPC_RELOC_SECTDIFF
|
||||
PPC_RELOC_PB_LA_PTR
|
||||
PPC_RELOC_HI16_SECTDIFF
|
||||
PPC_RELOC_LO16_SECTDIFF
|
||||
PPC_RELOC_HA16_SECTDIFF
|
||||
PPC_RELOC_JBSR
|
||||
PPC_RELOC_LO14_SECTDIFF
|
||||
PPC_RELOC_LOCAL_SECTDIFF ;
|
|
@ -0,0 +1 @@
|
|||
Constants and structs related to the Mach object format.
|
|
@ -9,7 +9,7 @@ LIBRARY: tokyocabinet
|
|||
|
||||
TYPEDEF: void* TCADB
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
ADBOVOID
|
||||
ADBOMDB
|
||||
ADBONDB
|
||||
|
|
|
@ -27,7 +27,7 @@ CONSTANT: BDBOTSYNC 64
|
|||
|
||||
TYPEDEF: void* BDBCUR
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
BDBCPCURRENT
|
||||
BDBCPBEFORE
|
||||
BDBCPAFTER ;
|
||||
|
|
|
@ -25,7 +25,7 @@ C-TYPE: TCRDB
|
|||
! { timeout double }
|
||||
! { opts int } ;
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
TTESUCCESS
|
||||
TTEINVALID
|
||||
TTENOHOST
|
||||
|
|
|
@ -27,7 +27,7 @@ CONSTANT: TDBONOLCK 16
|
|||
CONSTANT: TDBOLCKNB 32
|
||||
CONSTANT: TDBOTSYNC 64
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
TDBITLEXICAL
|
||||
TDBITDECIMAL ;
|
||||
|
||||
|
@ -38,7 +38,7 @@ CONSTANT: TDBITKEEP 16777216
|
|||
C-TYPE: TDBCOND
|
||||
C-TYPE: TDBQRY
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
TDBQCSTREQ
|
||||
TDBQCSTRINC
|
||||
TDBQCSTRBW
|
||||
|
@ -58,7 +58,7 @@ C-ENUM:
|
|||
CONSTANT: TDBQCNEGATE 16777216
|
||||
CONSTANT: TDBQCNOIDX 33554432
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
TDBQOSTRASC
|
||||
TDBQOSTRDESC
|
||||
TDBQONUMASC
|
||||
|
|
|
@ -12,7 +12,7 @@ IN: tokyo.alien.tcutil
|
|||
|
||||
LIBRARY: tokyocabinet
|
||||
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
TCDBTHASH
|
||||
TCDBTBTREE
|
||||
TCDBTFIXED
|
||||
|
|
|
@ -126,6 +126,10 @@
|
|||
(,fuel-syntax--type-definition-regex 2 'factor-font-lock-type-name)
|
||||
(,fuel-syntax--method-definition-regex (1 'factor-font-lock-type-name)
|
||||
(2 'factor-font-lock-word))
|
||||
(,fuel-syntax--before-definition-regex (1 'factor-font-lock-type-name)
|
||||
(2 'factor-font-lock-word))
|
||||
(,fuel-syntax--after-definition-regex (1 'factor-font-lock-type-name)
|
||||
(2 'factor-font-lock-word))
|
||||
(,fuel-syntax--tuple-decl-regex 2 'factor-font-lock-type-name)
|
||||
(,fuel-syntax--constructor-regex . 'factor-font-lock-constructor)
|
||||
(,fuel-syntax--setter-regex . 'factor-font-lock-setter-word)
|
||||
|
|
|
@ -44,8 +44,8 @@
|
|||
|
||||
(defconst fuel-syntax--parsing-words
|
||||
'(":" "::" ";" "&:" "<<" "<PRIVATE" ">>"
|
||||
"ABOUT:" "ALIAS:" "ALIEN:" "ARTICLE:"
|
||||
"B" "BIN:"
|
||||
"ABOUT:" "AFTER:" "ALIAS:" "ALIEN:" "ARTICLE:"
|
||||
"B" "BEFORE:" "BIN:"
|
||||
"C:" "CALLBACK:" "C-ENUM:" "C-STRUCT:" "C-TYPE:" "C-UNION:" "CHAR:" "COM-INTERFACE:" "CONSTANT:" "call-next-method"
|
||||
"DEFER:"
|
||||
"EBNF:" ";EBNF" "ERROR:" "EXCLUDE:"
|
||||
|
@ -88,6 +88,12 @@
|
|||
(defconst fuel-syntax--method-definition-regex
|
||||
"^M::? +\\([^ ]+\\) +\\([^ ]+\\)")
|
||||
|
||||
(defconst fuel-syntax--before-definition-regex
|
||||
"^BEFORE: +\\([^ ]+\\) +\\([^ ]+\\)")
|
||||
|
||||
(defconst fuel-syntax--after-definition-regex
|
||||
"^AFTER: +\\([^ ]+\\) +\\([^ ]+\\)")
|
||||
|
||||
(defconst fuel-syntax--integer-regex
|
||||
"\\_<-?[0-9]+\\_>")
|
||||
|
||||
|
@ -112,7 +118,7 @@
|
|||
(format "\\_<\\(%s\\)?: +\\_<\\(\\w+\\)\\_>"
|
||||
(regexp-opt
|
||||
'(":" "GENERIC" "DEFER" "HOOK" "MAIN" "MATH" "POSTPONE"
|
||||
"SYMBOL" "SYNTAX" "TYPED" "RENAME"))))
|
||||
"SYMBOL" "SYNTAX" "TYPED" "TYPED:" "RENAME"))))
|
||||
|
||||
(defconst fuel-syntax--alias-definition-regex
|
||||
"^ALIAS: +\\(\\_<.+?\\_>\\) +\\(\\_<.+?\\_>\\)")
|
||||
|
@ -157,6 +163,7 @@
|
|||
"\\_<CALLBACK: \\(\\w+\\) \\(\\w+\\)")
|
||||
|
||||
(defconst fuel-syntax--indent-def-starts '("" ":"
|
||||
"AFTER" "BEFORE"
|
||||
"C-ENUM" "C-STRUCT" "C-UNION" "COM-INTERFACE"
|
||||
"FROM" "FUNCTION:"
|
||||
"INTERSECTION:"
|
||||
|
|
|
@ -878,7 +878,7 @@ TYPEDEF: int CRYPT_KEYID_TYPE
|
|||
! Internal keyset options
|
||||
! (As _NONE but open for exclusive access, _CRYPT_DEFINED
|
||||
! Last possible key option type, _CRYPT_DEFINED Last external keyset option)
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
CRYPT_KEYOPT_NONE
|
||||
CRYPT_KEYOPT_READONLY
|
||||
CRYPT_KEYOPT_CREATE
|
||||
|
|
|
@ -24,7 +24,7 @@ IN: pdf.libhpdf
|
|||
: HPDF_COMP_MASK HEX: FF ; inline
|
||||
|
||||
! page mode
|
||||
C-ENUM:
|
||||
C-ENUM: f
|
||||
HPDF_PAGE_MODE_USE_NONE
|
||||
HPDF_PAGE_MODE_USE_OUTLINE
|
||||
HPDF_PAGE_MODE_USE_THUMBS
|
||||
|
|
Loading…
Reference in New Issue