diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-03-11 04:52:28 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-03-11 04:55:03 -0400 |
commit | 78a05b522044a50dc2a6811d10b9ee3f7c3e78f8 (patch) | |
tree | 14e0f6715ca1fb3cf4ef5c1912a65d950225028c /include/sound | |
parent | 47e78ecc2adb778c7d2b54924e90433a0182a6ba (diff) |
ALSA: Use define for ioctl definitions
Use define instead of enum for ioctl definitions since strace can't
parse ioctls defined via enum properly.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/asound.h | 171 | ||||
-rw-r--r-- | include/sound/sfnt_info.h | 14 |
2 files changed, 85 insertions, 100 deletions
diff --git a/include/sound/asound.h b/include/sound/asound.h index b6e01e6b3f86..fad3e0c7b932 100644 --- a/include/sound/asound.h +++ b/include/sound/asound.h | |||
@@ -126,12 +126,10 @@ struct snd_hwdep_dsp_image { | |||
126 | unsigned long driver_data; /* W: driver-specific data */ | 126 | unsigned long driver_data; /* W: driver-specific data */ |
127 | }; | 127 | }; |
128 | 128 | ||
129 | enum { | 129 | #define SNDRV_HWDEP_IOCTL_PVERSION _IOR ('H', 0x00, int) |
130 | SNDRV_HWDEP_IOCTL_PVERSION = _IOR ('H', 0x00, int), | 130 | #define SNDRV_HWDEP_IOCTL_INFO _IOR ('H', 0x01, struct snd_hwdep_info) |
131 | SNDRV_HWDEP_IOCTL_INFO = _IOR ('H', 0x01, struct snd_hwdep_info), | 131 | #define SNDRV_HWDEP_IOCTL_DSP_STATUS _IOR('H', 0x02, struct snd_hwdep_dsp_status) |
132 | SNDRV_HWDEP_IOCTL_DSP_STATUS = _IOR('H', 0x02, struct snd_hwdep_dsp_status), | 132 | #define SNDRV_HWDEP_IOCTL_DSP_LOAD _IOW('H', 0x03, struct snd_hwdep_dsp_image) |
133 | SNDRV_HWDEP_IOCTL_DSP_LOAD = _IOW('H', 0x03, struct snd_hwdep_dsp_image) | ||
134 | }; | ||
135 | 133 | ||
136 | /***************************************************************************** | 134 | /***************************************************************************** |
137 | * * | 135 | * * |
@@ -451,40 +449,35 @@ enum { | |||
451 | SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, | 449 | SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, |
452 | }; | 450 | }; |
453 | 451 | ||
454 | enum { | 452 | #define SNDRV_PCM_IOCTL_PVERSION _IOR('A', 0x00, int) |
455 | SNDRV_PCM_IOCTL_PVERSION = _IOR('A', 0x00, int), | 453 | #define SNDRV_PCM_IOCTL_INFO _IOR('A', 0x01, struct snd_pcm_info) |
456 | SNDRV_PCM_IOCTL_INFO = _IOR('A', 0x01, struct snd_pcm_info), | 454 | #define SNDRV_PCM_IOCTL_TSTAMP _IOW('A', 0x02, int) |
457 | SNDRV_PCM_IOCTL_TSTAMP = _IOW('A', 0x02, int), | 455 | #define SNDRV_PCM_IOCTL_TTSTAMP _IOW('A', 0x03, int) |
458 | SNDRV_PCM_IOCTL_TTSTAMP = _IOW('A', 0x03, int), | 456 | #define SNDRV_PCM_IOCTL_HW_REFINE _IOWR('A', 0x10, struct snd_pcm_hw_params) |
459 | SNDRV_PCM_IOCTL_HW_REFINE = _IOWR('A', 0x10, struct snd_pcm_hw_params), | 457 | #define SNDRV_PCM_IOCTL_HW_PARAMS _IOWR('A', 0x11, struct snd_pcm_hw_params) |
460 | SNDRV_PCM_IOCTL_HW_PARAMS = _IOWR('A', 0x11, struct snd_pcm_hw_params), | 458 | #define SNDRV_PCM_IOCTL_HW_FREE _IO('A', 0x12) |
461 | SNDRV_PCM_IOCTL_HW_FREE = _IO('A', 0x12), | 459 | #define SNDRV_PCM_IOCTL_SW_PARAMS _IOWR('A', 0x13, struct snd_pcm_sw_params) |
462 | SNDRV_PCM_IOCTL_SW_PARAMS = _IOWR('A', 0x13, struct snd_pcm_sw_params), | 460 | #define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status) |
463 | SNDRV_PCM_IOCTL_STATUS = _IOR('A', 0x20, struct snd_pcm_status), | 461 | #define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t) |
464 | SNDRV_PCM_IOCTL_DELAY = _IOR('A', 0x21, snd_pcm_sframes_t), | 462 | #define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22) |
465 | SNDRV_PCM_IOCTL_HWSYNC = _IO('A', 0x22), | 463 | #define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr) |
466 | SNDRV_PCM_IOCTL_SYNC_PTR = _IOWR('A', 0x23, struct snd_pcm_sync_ptr), | 464 | #define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info) |
467 | SNDRV_PCM_IOCTL_CHANNEL_INFO = _IOR('A', 0x32, struct snd_pcm_channel_info), | 465 | #define SNDRV_PCM_IOCTL_PREPARE _IO('A', 0x40) |
468 | SNDRV_PCM_IOCTL_PREPARE = _IO('A', 0x40), | 466 | #define SNDRV_PCM_IOCTL_RESET _IO('A', 0x41) |
469 | SNDRV_PCM_IOCTL_RESET = _IO('A', 0x41), | 467 | #define SNDRV_PCM_IOCTL_START _IO('A', 0x42) |
470 | SNDRV_PCM_IOCTL_START = _IO('A', 0x42), | 468 | #define SNDRV_PCM_IOCTL_DROP _IO('A', 0x43) |
471 | SNDRV_PCM_IOCTL_DROP = _IO('A', 0x43), | 469 | #define SNDRV_PCM_IOCTL_DRAIN _IO('A', 0x44) |
472 | SNDRV_PCM_IOCTL_DRAIN = _IO('A', 0x44), | 470 | #define SNDRV_PCM_IOCTL_PAUSE _IOW('A', 0x45, int) |
473 | SNDRV_PCM_IOCTL_PAUSE = _IOW('A', 0x45, int), | 471 | #define SNDRV_PCM_IOCTL_REWIND _IOW('A', 0x46, snd_pcm_uframes_t) |
474 | SNDRV_PCM_IOCTL_REWIND = _IOW('A', 0x46, snd_pcm_uframes_t), | 472 | #define SNDRV_PCM_IOCTL_RESUME _IO('A', 0x47) |
475 | SNDRV_PCM_IOCTL_RESUME = _IO('A', 0x47), | 473 | #define SNDRV_PCM_IOCTL_XRUN _IO('A', 0x48) |
476 | SNDRV_PCM_IOCTL_XRUN = _IO('A', 0x48), | 474 | #define SNDRV_PCM_IOCTL_FORWARD _IOW('A', 0x49, snd_pcm_uframes_t) |
477 | SNDRV_PCM_IOCTL_FORWARD = _IOW('A', 0x49, snd_pcm_uframes_t), | 475 | #define SNDRV_PCM_IOCTL_WRITEI_FRAMES _IOW('A', 0x50, struct snd_xferi) |
478 | SNDRV_PCM_IOCTL_WRITEI_FRAMES = _IOW('A', 0x50, struct snd_xferi), | 476 | #define SNDRV_PCM_IOCTL_READI_FRAMES _IOR('A', 0x51, struct snd_xferi) |
479 | SNDRV_PCM_IOCTL_READI_FRAMES = _IOR('A', 0x51, struct snd_xferi), | 477 | #define SNDRV_PCM_IOCTL_WRITEN_FRAMES _IOW('A', 0x52, struct snd_xfern) |
480 | SNDRV_PCM_IOCTL_WRITEN_FRAMES = _IOW('A', 0x52, struct snd_xfern), | 478 | #define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern) |
481 | SNDRV_PCM_IOCTL_READN_FRAMES = _IOR('A', 0x53, struct snd_xfern), | 479 | #define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int) |
482 | SNDRV_PCM_IOCTL_LINK = _IOW('A', 0x60, int), | 480 | #define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61) |
483 | SNDRV_PCM_IOCTL_UNLINK = _IO('A', 0x61), | ||
484 | }; | ||
485 | |||
486 | /* Trick to make alsa-lib/acinclude.m4 happy */ | ||
487 | #define SNDRV_PCM_IOCTL_REWIND SNDRV_PCM_IOCTL_REWIND | ||
488 | 481 | ||
489 | /***************************************************************************** | 482 | /***************************************************************************** |
490 | * * | 483 | * * |
@@ -538,14 +531,12 @@ struct snd_rawmidi_status { | |||
538 | unsigned char reserved[16]; /* reserved for future use */ | 531 | unsigned char reserved[16]; /* reserved for future use */ |
539 | }; | 532 | }; |
540 | 533 | ||
541 | enum { | 534 | #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int) |
542 | SNDRV_RAWMIDI_IOCTL_PVERSION = _IOR('W', 0x00, int), | 535 | #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info) |
543 | SNDRV_RAWMIDI_IOCTL_INFO = _IOR('W', 0x01, struct snd_rawmidi_info), | 536 | #define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params) |
544 | SNDRV_RAWMIDI_IOCTL_PARAMS = _IOWR('W', 0x10, struct snd_rawmidi_params), | 537 | #define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status) |
545 | SNDRV_RAWMIDI_IOCTL_STATUS = _IOWR('W', 0x20, struct snd_rawmidi_status), | 538 | #define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int) |
546 | SNDRV_RAWMIDI_IOCTL_DROP = _IOW('W', 0x30, int), | 539 | #define SNDRV_RAWMIDI_IOCTL_DRAIN _IOW('W', 0x31, int) |
547 | SNDRV_RAWMIDI_IOCTL_DRAIN = _IOW('W', 0x31, int), | ||
548 | }; | ||
549 | 540 | ||
550 | /* | 541 | /* |
551 | * Timer section - /dev/snd/timer | 542 | * Timer section - /dev/snd/timer |
@@ -654,23 +645,21 @@ struct snd_timer_status { | |||
654 | unsigned char reserved[64]; /* reserved */ | 645 | unsigned char reserved[64]; /* reserved */ |
655 | }; | 646 | }; |
656 | 647 | ||
657 | enum { | 648 | #define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int) |
658 | SNDRV_TIMER_IOCTL_PVERSION = _IOR('T', 0x00, int), | 649 | #define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id) |
659 | SNDRV_TIMER_IOCTL_NEXT_DEVICE = _IOWR('T', 0x01, struct snd_timer_id), | 650 | #define SNDRV_TIMER_IOCTL_TREAD _IOW('T', 0x02, int) |
660 | SNDRV_TIMER_IOCTL_TREAD = _IOW('T', 0x02, int), | 651 | #define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo) |
661 | SNDRV_TIMER_IOCTL_GINFO = _IOWR('T', 0x03, struct snd_timer_ginfo), | 652 | #define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams) |
662 | SNDRV_TIMER_IOCTL_GPARAMS = _IOW('T', 0x04, struct snd_timer_gparams), | 653 | #define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus) |
663 | SNDRV_TIMER_IOCTL_GSTATUS = _IOWR('T', 0x05, struct snd_timer_gstatus), | 654 | #define SNDRV_TIMER_IOCTL_SELECT _IOW('T', 0x10, struct snd_timer_select) |
664 | SNDRV_TIMER_IOCTL_SELECT = _IOW('T', 0x10, struct snd_timer_select), | 655 | #define SNDRV_TIMER_IOCTL_INFO _IOR('T', 0x11, struct snd_timer_info) |
665 | SNDRV_TIMER_IOCTL_INFO = _IOR('T', 0x11, struct snd_timer_info), | 656 | #define SNDRV_TIMER_IOCTL_PARAMS _IOW('T', 0x12, struct snd_timer_params) |
666 | SNDRV_TIMER_IOCTL_PARAMS = _IOW('T', 0x12, struct snd_timer_params), | 657 | #define SNDRV_TIMER_IOCTL_STATUS _IOR('T', 0x14, struct snd_timer_status) |
667 | SNDRV_TIMER_IOCTL_STATUS = _IOR('T', 0x14, struct snd_timer_status), | 658 | /* The following four ioctls are changed since 1.0.9 due to confliction */ |
668 | /* The following four ioctls are changed since 1.0.9 due to confliction */ | 659 | #define SNDRV_TIMER_IOCTL_START _IO('T', 0xa0) |
669 | SNDRV_TIMER_IOCTL_START = _IO('T', 0xa0), | 660 | #define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1) |
670 | SNDRV_TIMER_IOCTL_STOP = _IO('T', 0xa1), | 661 | #define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2) |
671 | SNDRV_TIMER_IOCTL_CONTINUE = _IO('T', 0xa2), | 662 | #define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3) |
672 | SNDRV_TIMER_IOCTL_PAUSE = _IO('T', 0xa3), | ||
673 | }; | ||
674 | 663 | ||
675 | struct snd_timer_read { | 664 | struct snd_timer_read { |
676 | unsigned int resolution; | 665 | unsigned int resolution; |
@@ -847,33 +836,31 @@ struct snd_ctl_tlv { | |||
847 | unsigned int tlv[0]; /* first TLV */ | 836 | unsigned int tlv[0]; /* first TLV */ |
848 | }; | 837 | }; |
849 | 838 | ||
850 | enum { | 839 | #define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int) |
851 | SNDRV_CTL_IOCTL_PVERSION = _IOR('U', 0x00, int), | 840 | #define SNDRV_CTL_IOCTL_CARD_INFO _IOR('U', 0x01, struct snd_ctl_card_info) |
852 | SNDRV_CTL_IOCTL_CARD_INFO = _IOR('U', 0x01, struct snd_ctl_card_info), | 841 | #define SNDRV_CTL_IOCTL_ELEM_LIST _IOWR('U', 0x10, struct snd_ctl_elem_list) |
853 | SNDRV_CTL_IOCTL_ELEM_LIST = _IOWR('U', 0x10, struct snd_ctl_elem_list), | 842 | #define SNDRV_CTL_IOCTL_ELEM_INFO _IOWR('U', 0x11, struct snd_ctl_elem_info) |
854 | SNDRV_CTL_IOCTL_ELEM_INFO = _IOWR('U', 0x11, struct snd_ctl_elem_info), | 843 | #define SNDRV_CTL_IOCTL_ELEM_READ _IOWR('U', 0x12, struct snd_ctl_elem_value) |
855 | SNDRV_CTL_IOCTL_ELEM_READ = _IOWR('U', 0x12, struct snd_ctl_elem_value), | 844 | #define SNDRV_CTL_IOCTL_ELEM_WRITE _IOWR('U', 0x13, struct snd_ctl_elem_value) |
856 | SNDRV_CTL_IOCTL_ELEM_WRITE = _IOWR('U', 0x13, struct snd_ctl_elem_value), | 845 | #define SNDRV_CTL_IOCTL_ELEM_LOCK _IOW('U', 0x14, struct snd_ctl_elem_id) |
857 | SNDRV_CTL_IOCTL_ELEM_LOCK = _IOW('U', 0x14, struct snd_ctl_elem_id), | 846 | #define SNDRV_CTL_IOCTL_ELEM_UNLOCK _IOW('U', 0x15, struct snd_ctl_elem_id) |
858 | SNDRV_CTL_IOCTL_ELEM_UNLOCK = _IOW('U', 0x15, struct snd_ctl_elem_id), | 847 | #define SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS _IOWR('U', 0x16, int) |
859 | SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS = _IOWR('U', 0x16, int), | 848 | #define SNDRV_CTL_IOCTL_ELEM_ADD _IOWR('U', 0x17, struct snd_ctl_elem_info) |
860 | SNDRV_CTL_IOCTL_ELEM_ADD = _IOWR('U', 0x17, struct snd_ctl_elem_info), | 849 | #define SNDRV_CTL_IOCTL_ELEM_REPLACE _IOWR('U', 0x18, struct snd_ctl_elem_info) |
861 | SNDRV_CTL_IOCTL_ELEM_REPLACE = _IOWR('U', 0x18, struct snd_ctl_elem_info), | 850 | #define SNDRV_CTL_IOCTL_ELEM_REMOVE _IOWR('U', 0x19, struct snd_ctl_elem_id) |
862 | SNDRV_CTL_IOCTL_ELEM_REMOVE = _IOWR('U', 0x19, struct snd_ctl_elem_id), | 851 | #define SNDRV_CTL_IOCTL_TLV_READ _IOWR('U', 0x1a, struct snd_ctl_tlv) |
863 | SNDRV_CTL_IOCTL_TLV_READ = _IOWR('U', 0x1a, struct snd_ctl_tlv), | 852 | #define SNDRV_CTL_IOCTL_TLV_WRITE _IOWR('U', 0x1b, struct snd_ctl_tlv) |
864 | SNDRV_CTL_IOCTL_TLV_WRITE = _IOWR('U', 0x1b, struct snd_ctl_tlv), | 853 | #define SNDRV_CTL_IOCTL_TLV_COMMAND _IOWR('U', 0x1c, struct snd_ctl_tlv) |
865 | SNDRV_CTL_IOCTL_TLV_COMMAND = _IOWR('U', 0x1c, struct snd_ctl_tlv), | 854 | #define SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE _IOWR('U', 0x20, int) |
866 | SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE = _IOWR('U', 0x20, int), | 855 | #define SNDRV_CTL_IOCTL_HWDEP_INFO _IOR('U', 0x21, struct snd_hwdep_info) |
867 | SNDRV_CTL_IOCTL_HWDEP_INFO = _IOR('U', 0x21, struct snd_hwdep_info), | 856 | #define SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE _IOR('U', 0x30, int) |
868 | SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE = _IOR('U', 0x30, int), | 857 | #define SNDRV_CTL_IOCTL_PCM_INFO _IOWR('U', 0x31, struct snd_pcm_info) |
869 | SNDRV_CTL_IOCTL_PCM_INFO = _IOWR('U', 0x31, struct snd_pcm_info), | 858 | #define SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE _IOW('U', 0x32, int) |
870 | SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE = _IOW('U', 0x32, int), | 859 | #define SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE _IOWR('U', 0x40, int) |
871 | SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE = _IOWR('U', 0x40, int), | 860 | #define SNDRV_CTL_IOCTL_RAWMIDI_INFO _IOWR('U', 0x41, struct snd_rawmidi_info) |
872 | SNDRV_CTL_IOCTL_RAWMIDI_INFO = _IOWR('U', 0x41, struct snd_rawmidi_info), | 861 | #define SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE _IOW('U', 0x42, int) |
873 | SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE = _IOW('U', 0x42, int), | 862 | #define SNDRV_CTL_IOCTL_POWER _IOWR('U', 0xd0, int) |
874 | SNDRV_CTL_IOCTL_POWER = _IOWR('U', 0xd0, int), | 863 | #define SNDRV_CTL_IOCTL_POWER_STATE _IOR('U', 0xd1, int) |
875 | SNDRV_CTL_IOCTL_POWER_STATE = _IOR('U', 0xd1, int), | ||
876 | }; | ||
877 | 864 | ||
878 | /* | 865 | /* |
879 | * Read interface. | 866 | * Read interface. |
diff --git a/include/sound/sfnt_info.h b/include/sound/sfnt_info.h index 5d1ab9c4950f..1bce7fd1725f 100644 --- a/include/sound/sfnt_info.h +++ b/include/sound/sfnt_info.h | |||
@@ -202,13 +202,11 @@ struct snd_emux_misc_mode { | |||
202 | int value2; /* reserved */ | 202 | int value2; /* reserved */ |
203 | }; | 203 | }; |
204 | 204 | ||
205 | enum { | 205 | #define SNDRV_EMUX_IOCTL_VERSION _IOR('H', 0x80, unsigned int) |
206 | SNDRV_EMUX_IOCTL_VERSION = _IOR('H', 0x80, unsigned int), | 206 | #define SNDRV_EMUX_IOCTL_LOAD_PATCH _IOWR('H', 0x81, struct soundfont_patch_info) |
207 | SNDRV_EMUX_IOCTL_LOAD_PATCH = _IOWR('H', 0x81, struct soundfont_patch_info), | 207 | #define SNDRV_EMUX_IOCTL_RESET_SAMPLES _IO('H', 0x82) |
208 | SNDRV_EMUX_IOCTL_RESET_SAMPLES = _IO('H', 0x82), | 208 | #define SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES _IO('H', 0x83) |
209 | SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES = _IO('H', 0x83), | 209 | #define SNDRV_EMUX_IOCTL_MEM_AVAIL _IOW('H', 0x84, int) |
210 | SNDRV_EMUX_IOCTL_MEM_AVAIL = _IOW('H', 0x84, int), | 210 | #define SNDRV_EMUX_IOCTL_MISC_MODE _IOWR('H', 0x84, struct snd_emux_misc_mode) |
211 | SNDRV_EMUX_IOCTL_MISC_MODE = _IOWR('H', 0x84, struct snd_emux_misc_mode), | ||
212 | }; | ||
213 | 211 | ||
214 | #endif /* __SOUND_SFNT_INFO_H */ | 212 | #endif /* __SOUND_SFNT_INFO_H */ |