Home | History | Annotate | Download | only in Support

Lines Matching refs:Magic

832 error_code has_magic(const Twine &path, const Twine &magic, bool &result) {
834 StringRef Magic = magic.toStringRef(MagicStorage);
837 if (error_code ec = get_magic(path, Magic.size(), Buffer)) {
839 // Magic.size() > file_size(Path).
846 result = Magic == Buffer;
850 /// @brief Identify the magic in magic.
851 file_magic identify_magic(StringRef Magic) {
852 if (Magic.size() < 4)
854 switch ((unsigned char)Magic[0]) {
856 if (Magic[1] == (char)0xC0 && Magic[2] == (char)0x17 &&
857 Magic[3] == (char)0x0B)
861 if (Magic[1] == 'C' && Magic[2] == (char)0xC0 && Magic[3] == (char)0xDE)
865 if (Magic.size() >= 8)
866 if (memcmp(Magic.data(),"!<arch>\n",8) == 0)
871 if (Magic.size() >= 18 && Magic[1] == 'E' && Magic[2] == 'L' &&
872 Magic[3] == 'F') {
873 bool Data2MSB = Magic[5] == 2;
876 if (Magic[high] == 0)
877 switch (Magic[low]) {
888 if (Magic[1] == char(0xFE) && Magic[2] == char(0xBA) &&
889 Magic[3] == char(0xBE)) {
891 // See the Mach-O section in /usr/share/file/magic for details.
892 if (Magic.size() >= 8 && Magic[7] < 43)
897 // The two magic numbers for mach-o are:
904 if (Magic[0] == char(0xFE) && Magic[1] == char(0xED) &&
905 Magic[2] == char(0xFA) &&
906 (Magic[3] == char(0xCE) || Magic[3] == char(0xCF))) {
908 if (Magic.size() >= 16) type = Magic[14] << 8 | Magic[15];
909 } else if ((Magic[0] == char(0xCE) || Magic[0] == char(0xCF)) &&
910 Magic[1] == char(0xFA) && Magic[2] == char(0xED) &&
911 Magic[3] == char(0xFE)) {
913 if (Magic.size() >= 14) type = Magic[13] << 8 | Magic[12];
936 if (Magic[1] == 0x01)
941 if (Magic[1] == 0x02)
946 if (Magic[1] == 0x5a) {
948 *reinterpret_cast<const support::ulittle32_t*>(Magic.data() + 0x3c);
950 if (off < Magic.size() && memcmp(Magic.data() + off, "PE\0\0",4) == 0)
956 if (Magic[1] == char(0x86))
967 SmallString<32> Magic;
968 error_code ec = get_magic(path, Magic.capacity(), Magic);
972 result = identify_magic(Magic);