ELFSectionProgBits.hxx revision 74f7a939f44d926babd52f59978e6b093e4bb2d0
16ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien#ifndef ELF_SECTION_PROGBITS_HXX 26ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien#define ELF_SECTION_PROGBITS_HXX 36ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien 46ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien#include "ELFTypes.h" 56ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien 66ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien#include <llvm/Support/Format.h> 76ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien#include <llvm/Support/raw_ostream.h> 86ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien 96ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien#include "utils/raw_ostream.h" 106ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien 116ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chientemplate <unsigned Bitwidth> 1274f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chientemplate <typename Archiver> 1374f7a939f44d926babd52f59978e6b093e4bb2d0Logan ChienELFSectionProgBits<Bitwidth> * 1474f7a939f44d926babd52f59978e6b093e4bb2d0Logan ChienELFSectionProgBits<Bitwidth>::read(Archiver &AR, 1574f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chien ELFObjectTy const *owner, 1674f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chien ELFSectionHeaderTy const *sh) { 176ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien 1874f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chien llvm::OwningPtr<ELFSectionProgBits> result(new ELFSectionProgBits()); 196ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien 2074f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chien // FIXME: We should add extra space for stub. 2174f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chien if (!result->chunk.allocate(sh->getSize())) { 2274f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chien return NULL; 2374f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chien } 246ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien 2574f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chien result->sh = sh; 266ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien 2774f7a939f44d926babd52f59978e6b093e4bb2d0Logan Chien return result.take(); 286ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien} 296ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien 306ea6f71f24bc6cf759b2458209f3ef86559c685aLogan Chien#endif // ELF_SECTION_PROGBITS_HXX 31