mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	 19b392d58d
			
		
	
	19b392d58d
	
	
	
		
			
			Technically the fixed width types come only from iostream and
cstdint/stdint.h headers. memory and vector headers should not provide
these. In GCC 15 the headers are cleaned up and you require the proper
header cstdint.
src/llama-mmap.h:26:5: error: ‘uint32_t’ does not name a type
   26 |     uint32_t read_u32() const;
      |     ^~~~~~~~
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <cstdint>
 | |
| #include <memory>
 | |
| #include <vector>
 | |
| 
 | |
| struct llama_file;
 | |
| struct llama_mmap;
 | |
| struct llama_mlock;
 | |
| 
 | |
| using llama_files  = std::vector<std::unique_ptr<llama_file>>;
 | |
| using llama_mmaps  = std::vector<std::unique_ptr<llama_mmap>>;
 | |
| using llama_mlocks = std::vector<std::unique_ptr<llama_mlock>>;
 | |
| 
 | |
| struct llama_file {
 | |
|     llama_file(const char * fname, const char * mode);
 | |
|     ~llama_file();
 | |
| 
 | |
|     size_t tell() const;
 | |
|     size_t size() const;
 | |
| 
 | |
|     int file_id() const; // fileno overload
 | |
| 
 | |
|     void seek(size_t offset, int whence) const;
 | |
| 
 | |
|     void read_raw(void * ptr, size_t len) const;
 | |
|     uint32_t read_u32() const;
 | |
| 
 | |
|     void write_raw(const void * ptr, size_t len) const;
 | |
|     void write_u32(uint32_t val) const;
 | |
| 
 | |
| private:
 | |
|     struct impl;
 | |
|     std::unique_ptr<impl> pimpl;
 | |
| };
 | |
| 
 | |
| struct llama_mmap {
 | |
|     llama_mmap(const llama_mmap &) = delete;
 | |
|     llama_mmap(struct llama_file * file, size_t prefetch = (size_t) -1, bool numa = false);
 | |
|     ~llama_mmap();
 | |
| 
 | |
|     size_t size() const;
 | |
|     void * addr() const;
 | |
| 
 | |
|     void unmap_fragment(size_t first, size_t last);
 | |
| 
 | |
|     static const bool SUPPORTED;
 | |
| 
 | |
| private:
 | |
|     struct impl;
 | |
|     std::unique_ptr<impl> pimpl;
 | |
| };
 | |
| 
 | |
| struct llama_mlock {
 | |
|     llama_mlock();
 | |
|     ~llama_mlock();
 | |
| 
 | |
|     void init(void * ptr);
 | |
|     void grow_to(size_t target_size);
 | |
| 
 | |
|     static const bool SUPPORTED;
 | |
| 
 | |
| private:
 | |
|     struct impl;
 | |
|     std::unique_ptr<impl> pimpl;
 | |
| };
 | |
| 
 | |
| size_t llama_path_max();
 |