190190// TODO: support for clang
191191#ifdef __GNUC__
192192# define GGML_DEPRECATED (func , hint ) func __attribute__((deprecated(hint)))
193+ # define GGML_PACKED __attribute__((__packed__))
193194#elif defined(_MSC_VER )
194195# define GGML_DEPRECATED (func , hint ) __declspec(deprecated(hint)) func
195196#else
@@ -317,7 +318,7 @@ extern "C" {
317318 GGML_NORETURN GGML_ATTRIBUTE_FORMAT (3 , 4 )
318319 GGML_API void ggml_abort (const char * file , int line , const char * fmt , ...);
319320
320- enum ggml_status {
321+ enum GGML_PACKED ggml_status {
321322 GGML_STATUS_ALLOC_FAILED = -2 ,
322323 GGML_STATUS_FAILED = -1 ,
323324 GGML_STATUS_SUCCESS = 0 ,
@@ -348,7 +349,7 @@ extern "C" {
348349 struct ggml_cgraph ;
349350
350351 // NOTE: always add types at the end of the enum to keep backward compatibility
351- enum ggml_type {
352+ enum GGML_PACKED ggml_type {
352353 GGML_TYPE_F32 = 0 ,
353354 GGML_TYPE_F16 = 1 ,
354355 GGML_TYPE_Q4_0 = 2 ,
@@ -392,13 +393,13 @@ extern "C" {
392393 };
393394
394395 // precision
395- enum ggml_prec {
396+ enum GGML_PACKED ggml_prec {
396397 GGML_PREC_DEFAULT ,
397398 GGML_PREC_F32 ,
398399 };
399400
400401 // model file types
401- enum ggml_ftype {
402+ enum GGML_PACKED ggml_ftype {
402403 GGML_FTYPE_UNKNOWN = -1 ,
403404 GGML_FTYPE_ALL_F32 = 0 ,
404405 GGML_FTYPE_MOSTLY_F16 = 1 , // except 1d tensors
@@ -426,7 +427,7 @@ extern "C" {
426427 };
427428
428429 // available tensor operations:
429- enum ggml_op {
430+ enum GGML_PACKED ggml_op {
430431 GGML_OP_NONE = 0 ,
431432
432433 GGML_OP_DUP ,
@@ -520,7 +521,7 @@ extern "C" {
520521 GGML_OP_COUNT ,
521522 };
522523
523- enum ggml_unary_op {
524+ enum GGML_PACKED ggml_unary_op {
524525 GGML_UNARY_OP_ABS ,
525526 GGML_UNARY_OP_SGN ,
526527 GGML_UNARY_OP_NEG ,
@@ -539,13 +540,13 @@ extern "C" {
539540 GGML_UNARY_OP_COUNT ,
540541 };
541542
542- enum ggml_object_type {
543+ enum GGML_PACKED ggml_object_type {
543544 GGML_OBJECT_TYPE_TENSOR ,
544545 GGML_OBJECT_TYPE_GRAPH ,
545546 GGML_OBJECT_TYPE_WORK_BUFFER
546547 };
547548
548- enum ggml_log_level {
549+ enum GGML_PACKED ggml_log_level {
549550 GGML_LOG_LEVEL_NONE = 0 ,
550551 GGML_LOG_LEVEL_DEBUG = 1 ,
551552 GGML_LOG_LEVEL_INFO = 2 ,
@@ -555,7 +556,7 @@ extern "C" {
555556 };
556557
557558 // this tensor...
558- enum ggml_tensor_flag {
559+ enum GGML_PACKED ggml_tensor_flag {
559560 GGML_TENSOR_FLAG_INPUT = 1 , // ...is an input for the GGML compute graph
560561 GGML_TENSOR_FLAG_OUTPUT = 2 , // ...is an output for the GGML compute graph
561562 GGML_TENSOR_FLAG_PARAM = 4 , // ...contains trainable parameters
@@ -1678,7 +1679,7 @@ extern "C" {
16781679 struct ggml_tensor * b ,
16791680 int stride );
16801681
1681- enum ggml_op_pool {
1682+ enum GGML_PACKED ggml_op_pool {
16821683 GGML_OP_POOL_MAX ,
16831684 GGML_OP_POOL_AVG ,
16841685 GGML_OP_POOL_COUNT ,
@@ -1717,7 +1718,7 @@ extern "C" {
17171718 float p0 ,
17181719 float p1 );
17191720
1720- enum ggml_scale_mode {
1721+ enum GGML_PACKED ggml_scale_mode {
17211722 GGML_SCALE_MODE_NEAREST = 0 ,
17221723 GGML_SCALE_MODE_BILINEAR = 1 ,
17231724 };
@@ -1767,7 +1768,7 @@ extern "C" {
17671768 int max_period );
17681769
17691770 // sort rows
1770- enum ggml_sort_order {
1771+ enum GGML_PACKED ggml_sort_order {
17711772 GGML_SORT_ORDER_ASC ,
17721773 GGML_SORT_ORDER_DESC ,
17731774 };
@@ -2137,7 +2138,7 @@ extern "C" {
21372138 // the goal should be to create an API that other backends can use move everything to the ggml base
21382139
21392140 // scheduling priorities
2140- enum ggml_sched_priority {
2141+ enum GGML_PACKED ggml_sched_priority {
21412142 GGML_SCHED_PRIO_NORMAL ,
21422143 GGML_SCHED_PRIO_MEDIUM ,
21432144 GGML_SCHED_PRIO_HIGH ,
0 commit comments